{
  "openapi": "3.0.3",
  "info": {
    "title": "Stuck at VLSI Public API",
    "description": "Production REST API and Agent Interfaces for Stuck at VLSI (https://stuckatvlsi.com). Programmatic access to authentic semiconductor job listings, curated VLSI study resources, career roadmaps, and MCP agent integration.\n\n### API Versioning & Deprecation Policy\n- **Current API Version**: `1.0.0` (accessible via `/api/v1/` and `/api/`).\n- **Versioning Strategy**: Path-based versioning (`/api/v1/*`) with standard `API-Version: 1.0.0` header on all responses.\n- **Deprecation Policy**: Breaking changes are announced with at least 6 months advance notice via standard `Sunset` and `Deprecation` HTTP headers and changelog updates in `llms.txt`.\n\n### Rate Limits & Self-Throttle Guidelines\n- Standard tier: 120 requests/minute per client IP.\n- Rate limit response headers: `RateLimit-Limit`, `RateLimit-Remaining`, and `RateLimit-Reset`.\n- In the event of 429 status, clients should inspect the `Retry-After` header before retrying.\n\n### Self-Serve & Sandbox Access\n- All public read endpoints (`/jobs`, `/resources`, `/job-details`, `/mcp`) are self-serve with zero API key barriers for autonomous AI agents.",
    "version": "1.0.0",
    "contact": {
      "name": "Stuck at VLSI Engineering Team",
      "email": "stuck.at.vlsi@gmail.com",
      "url": "https://stuckatvlsi.com/contact"
    },
    "license": {
      "name": "MIT",
      "url": "https://opensource.org/licenses/MIT"
    }
  },
  "servers": [
    {
      "url": "https://stuckatvlsi.com/api/v1",
      "description": "Production Server (v1)"
    },
    {
      "url": "https://stuckatvlsi.com/api",
      "description": "Production Server (Latest Default)"
    },
    {
      "url": "http://localhost:5173/api",
      "description": "Local Development Server"
    }
  ],
  "paths": {
    "/jobs": {
      "get": {
        "operationId": "searchVlsiJobs",
        "summary": "Search verified VLSI and semiconductor job openings",
        "description": "Returns paginated list of authentic semiconductor openings from 58+ direct ATS career portals (NVIDIA, Intel, Qualcomm, TI, Synopsys, Cadence, ARM, etc.), filtered by engineering discipline, experience tier, and location.",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "Keyword search across job title, company name, or description (e.g., 'RTL', 'UVM', 'STA', 'Physical Design')",
            "required": false,
            "schema": { "type": "string" }
          },
          {
            "name": "domain",
            "in": "query",
            "description": "Core engineering discipline filter",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "rtl_design",
                "verification",
                "physical_design",
                "dft",
                "analog_layout",
                "analog_circuit",
                "silicon_validation",
                "embedded_firmware",
                "pcb_hardware"
              ]
            }
          },
          {
            "name": "experienceLevel",
            "in": "query",
            "description": "Target experience tier",
            "required": false,
            "schema": {
              "type": "string",
              "enum": ["Internship", "Fresher", "Mid-Level", "Senior"]
            }
          },
          {
            "name": "location",
            "in": "query",
            "description": "Geographic location filter (e.g., 'Bengaluru', 'Hyderabad', 'Noida', 'Remote')",
            "required": false,
            "schema": { "type": "string" }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of results per page (1-100, default 20)",
            "required": false,
            "schema": { "type": "integer", "minimum": 1, "maximum": 100, "default": 20 }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number (1-indexed)",
            "required": false,
            "schema": { "type": "integer", "minimum": 1, "default": 1 }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful retrieval of job openings",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": { "type": "boolean", "example": true },
                    "total": { "type": "integer", "example": 1479 },
                    "page": { "type": "integer", "example": 1 },
                    "limit": { "type": "integer", "example": 20 },
                    "count": { "type": "integer", "example": 20 },
                    "data": {
                      "type": "array",
                      "items": { "$ref": "#/components/schemas/JobListing" }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ErrorResponse" }
              }
            }
          }
        }
      }
    },
    "/job-details": {
      "get": {
        "operationId": "getJobDetails",
        "summary": "Fetch full authentic job description and metadata",
        "description": "Returns the complete formatted job description, responsibilities, requirements, and direct application link for a given job external ID or UUID.",
        "parameters": [
          {
            "name": "externalId",
            "in": "query",
            "description": "The unique external ID (e.g., 'linkedin-4404654586' or job UUID)",
            "required": true,
            "schema": { "type": "string" }
          }
        ],
        "responses": {
          "200": {
            "description": "Job details retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": { "type": "boolean", "example": true },
                    "description": { "type": "string" },
                    "postedDate": { "type": "string", "example": "2 weeks ago" }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Missing required parameter",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ErrorResponse" }
              }
            }
          }
        }
      }
    },
    "/resources": {
      "get": {
        "operationId": "getVlsiResources",
        "summary": "Retrieve curated study notes, interview guides, and roadmaps",
        "description": "Access categorized educational materials and PDFs uploaded for semiconductor engineers.",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "description": "Resource type filter",
            "required": false,
            "schema": {
              "type": "string",
              "enum": ["notes", "roadmaps", "books", "interviews", "articles", "all"]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Number of resources to retrieve (1-100)",
            "required": false,
            "schema": { "type": "integer", "default": 50 }
          }
        ],
        "responses": {
          "200": {
            "description": "Resource collection retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": { "type": "boolean", "example": true },
                    "count": { "type": "integer", "example": 40 },
                    "data": {
                      "type": "array",
                      "items": { "$ref": "#/components/schemas/ResourceItem" }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/mcp": {
      "post": {
        "operationId": "callMcpRpc",
        "summary": "Model Context Protocol (MCP) JSON-RPC 2.0 Handler",
        "description": "Executes MCP tools and reads MCP resources via Streamable HTTP JSON-RPC 2.0 transport.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["jsonrpc", "method"],
                "properties": {
                  "jsonrpc": { "type": "string", "example": "2.0" },
                  "id": { "type": "string", "example": "1" },
                  "method": { "type": "string", "example": "tools/call" },
                  "params": { "type": "object" }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "MCP RPC response",
            "content": {
              "application/json": {
                "schema": { "type": "object" }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "JobListing": {
        "type": "object",
        "properties": {
          "id": { "type": "string", "format": "uuid" },
          "external_id": { "type": "string", "example": "linkedin-4404654586" },
          "title": { "type": "string", "example": "Design Verification Engineer" },
          "company": { "type": "string", "example": "NVIDIA" },
          "location": { "type": "string", "example": "Bengaluru, Karnataka, India" },
          "type": { "type": "string", "example": "Full-time" },
          "experience_level": { "type": "string", "example": "Mid-Level" },
          "domain": { "type": "string", "example": "verification" },
          "posted_date": { "type": "string", "example": "2 days ago" },
          "apply_link": { "type": "string", "format": "uri" },
          "skills": { "type": "array", "items": { "type": "string" } }
        }
      },
      "ResourceItem": {
        "type": "object",
        "properties": {
          "id": { "type": "string" },
          "title": { "type": "string", "example": "Digital Design & Verilog Roadmap" },
          "type": { "type": "string", "example": "notes" },
          "file_url": { "type": "string", "format": "uri" },
          "downloads": { "type": "integer", "example": 1713 }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": { "type": "string", "example": "INVALID_PARAMETER" },
              "message": { "type": "string", "example": "The provided parameter is invalid." },
              "resolution": { "type": "string", "example": "Check the API documentation at https://stuckatvlsi.com/openapi.json." }
            }
          }
        }
      }
    }
  }
}
