DEVELOPER DOCUMENTATION
Update Job
Edit a live (published) job. Edits are re-moderated.
/api/public/v1/jobs/{id}Patches a published, open job — same field keys and types as PATCH /job-drafts/{jobId} (the authoritative key list is draft.updateKeys in capabilities). For unpublished drafts use the draft endpoint instead; this one requires the job to be OPEN.
Every edit to a live job is re-moderated. If moderation rejects the edited content, the update is still applied but the job is unpublished back to DRAFT — fix the flagged content and publish again.
Requirements: jobs:write scope + the public_api_job_publishing feature. The job must be yours and OPEN.
Request
Section titled “Request”idstringpathrequiredThe published job’s ID.
Body: a JSON object with one or more job fields — identical schema to the draft update endpoint. Unknown keys → 400 with zod issue details.
Response
Section titled “Response”okbooleantrue on success.
jobIdstringThe job ID.
statusstringOPEN — the job stayed live.
moderationobject{decision: "ALLOW", reasons: []} when the edit passed moderation.
Errors
Section titled “Errors”| Status | code | Meaning |
|---|---|---|
400 | BAD_REQUEST | Empty body, invalid JSON, unknown keys, or wrong types (details carries zod issues) |
401 | UNAUTHORIZED | Missing or invalid token |
403 | FORBIDDEN | Missing jobs:write scope or feature disabled |
404 | NOT_FOUND | No such job, or not yours |
409 | CONFLICT | Job is not OPEN — details: {jobId, status, requiredStatus: "OPEN"}; for DRAFT jobs the message points you to PATCH /job-drafts/{jobId} |
409 | CONFLICT | Moderation rejected the edit — the update was applied but the job was unpublished to DRAFT; details: {jobId, reason: "moderation_blocked", reasons: [...], status: "DRAFT"} |