RResumezBeta
POSTLive

Parse job description

Extracts role, skills, seniority, and keywords from a job description.

/v1/jobs:parse

Authorization

Credential

oauth_user_or_client

Required scopes

jobs:analyze

Request body

JSON · application/json

jobDescriptionstringrequired

Implementation note

Async (AIP-151): responds 202 with a pending Operation; poll `operation-get` until terminal. On success, `resultData` is a JSON-encoded analysis: `{ "kind": "job", "confidence", "extraction": { "title", "company", "location", "seniority", "employmentType", "summary", "responsibilities", "requiredSkills", "niceToHave", "keywords" } }`, `{ "kind": "not-a-job", "reason", "confidence" }`, or `{ "kind": "flagged", "moderation" }`. A model or transport failure ends the operation `failed` with `error` set.

Error responses

400Invalid request

The request body was missing, malformed, or failed schema validation. Field-level problems are listed under `issues`.

401Authentication required

No valid credentials were supplied. Attach a Bearer access token and retry.

402Upgrade required

The authenticated user's plan does not include this capability. `feature` names the gated capability, `requiredPlan` the cheapest plan that unlocks it, `currentPlan` the user's plan today, and `upgradeUrl` links to checkout. This is a plan gate, not a transient error — retrying without upgrading fails again; surface `upgradeUrl` to the user instead. Dormant until a plan that grants the feature is active, so a route that documents it may not currently return it.

403Insufficient scope

The token is valid but lacks the OAuth scope (or token kind) this endpoint requires.

404Resource not found

The addressed resource does not exist, or is not visible to the caller.

429Rate limit exceeded

The caller has hit the request budget for this AI-backed operation. Wait for the window to reset and retry.