{"openapi":"3.1.0","info":{"title":"Vaibhav Jha portfolio browser-agent API","version":"1.0.0","description":"These are the existing browser endpoints, not an anonymous machine API. Complete Google sign-in on the portfolio, keep its HttpOnly session in that browser, and call from the same origin. Browser WebMCP is the preferred agent interface. Do not copy cookies or supply an OpenAI API key. Calls use shared account credits and require explicit invocation; page loads do not run assessments."},"servers":[{"url":"https://about-vaibhav-jha.me"}],"security":[{"browserSession":[]}],"components":{"securitySchemes":{"browserSession":{"type":"apiKey","in":"cookie","name":"portfolio_session","description":"Set by Google sign-in; available only in the authenticated portfolio browser. The server also requires the exact portfolio Origin and application/json for POST."}}},"paths":{"/api/match":{"post":{"operationId":"assessRoleFit","summary":"Compare a role directly with public career evidence using Decisions API scoring.","parameters":[{"in":"header","name":"Origin","required":true,"schema":{"type":"string","const":"https://about-vaibhav-jha.me"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["role","posting"],"properties":{"role":{"type":"string","minLength":1,"maxLength":160},"posting":{"type":"string","minLength":40,"maxLength":12000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Public evidence assessment with score (0–100), level, summary, dimensions, cited strengths, gaps, methodology, and a separate compensation signal. No visitor profile or monetary budget is returned.","content":{"application/json":{"schema":{"type":"object","properties":{"score":{"type":"integer","minimum":0,"maximum":100},"level":{"type":"string"},"summary":{"type":"string"},"dimensions":{"type":"array","items":{"type":"object"}},"strengths":{"type":"array","items":{"type":"object"}},"gaps":{"type":"array","items":{"type":"string"}},"methodology":{"type":"string"},"compensation":{"type":["object","null"]}}}}}},"400":{"description":"Invalid title, description, or salary."},"401":{"description":"SIGN_IN_REQUIRED: complete Google sign-in in this browser."},"403":{"description":"Wrong origin or a request outside the public career scope."},"413":{"description":"Input or conversation is too large."},"429":{"description":"Credits or rate allowance exhausted. Honor Retry-After."},"503":{"description":"AI or scope confirmation is unavailable."},"504":{"description":"The assessment timed out."}}}},"/api/job/import":{"post":{"operationId":"importPublicJobListing","summary":"Extract title, requirements, and evidenced salary from a public job listing before assessment.","description":"This is a separate AI operation using the same account credits. Private/reserved destinations and unsafe redirects are rejected. If a page blocks fetching, paste the description instead.","parameters":[{"in":"header","name":"Origin","required":true,"schema":{"type":"string","const":"https://about-vaibhav-jha.me"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https://"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Extracted role, posting, sourceURL, salary and evidence notes; inspect the fields before relying on the assessment."},"400":{"description":"Invalid title, description, or salary."},"401":{"description":"SIGN_IN_REQUIRED: complete Google sign-in in this browser."},"403":{"description":"Wrong origin or a request outside the public career scope."},"413":{"description":"Input or conversation is too large."},"429":{"description":"Credits or rate allowance exhausted. Honor Retry-After."},"503":{"description":"AI or scope confirmation is unavailable."},"504":{"description":"The assessment timed out."}}}}}}