RResumezBeta
POSTLive

Generate artifact

Generates an artifact from the canonical profile and target constraints.

/v1/artifacts:generate

Authorization

Credential

oauth_user

Required scopes

ai:generateartifacts:write

Request body

JSON · application/json

kindstringrequired

resume · cover-letter · bio · recruiter-brief

targetRolestring
jobIdstring
jobDescriptionstring

Implementation note

Requires a populated profile (check `me.profileReadiness`; fails with `profile_incomplete` otherwise). When `jobId` references a saved job the caller owns, the generated artifact links to it and (for cover letters) targets its role/company; a `jobId` that resolves to nothing is a 404. `targetRole` overrides the job's role.

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.

409Profile incomplete

The canonical career profile is missing required fields for generation; `missingRequired` lists them and `remedy` says how to fix it. Onboard the user first: import an existing resume (import-create → import-apply) or fill the gaps via profile-update / experiences-create, then retry. Check `me.profileReadiness` to detect this before calling.