v1
latestOpenAPI 3.1.02026-07-261770816.7 KBUpdate job post
Edit a job post in place — change its public title, replace its HTML body, or transition its publication status between draft and live. Content updates route to internal_content for internal posts and to content for external posts automatically. Transitioning to live only publishes the post on its job board if the board itself is also live; otherwise the post is marked live but its public_url will not be reachable until the board is enabled.
Path parameters
Request body
New public-facing title for the post. Limited to 255 characters.
Replacement HTML body for the post. For internal posts this updates internal_content; for external posts it updates content. Sanitized server-side — only a limited element/attribute allowlist (including iframe, video, source) survives.
Deprecated. This field is no longer in use. A post's internal/external visibility is fixed by the job board it belongs to.
Transition the post's publication status. live publishes the post (subject to its job board also being live); draft returns it to an unpublished working state.
Response
Successful
Public-facing title shown to candidates on the job board (e.g. Senior Backend Engineer, Remote). Distinct from the internal job.name — a single job can have several posts with different titles, one per board, language, or geography.
If true, the post lives on an internal job board and is visible only to existing employees signed in to the internal board. If false, the post is external and lives on a public-facing job_board. Set by the board the post is associated with at create time.
If true, the post has not been deleted. Deleted posts are excluded by default; pass active=false on the list endpoint to retrieve them.
If true, the post is published (job_application_status is live) and its job board is also live. A post on an unpublished board is not live — its public_url returns a 404 until the board is enabled.
If true, the post is currently featured on the organization's internal job board and surfaces in the weekly internal-jobs email. Only internal posts can be featured, and at most three can be featured at a time.
Timestamp the post first transitioned to live, in ISO 8601. null for posts that have never been published.
HTML body of the post shown to candidates on the job board. For internal posts this returns the internal_content instead. Sanitized server-side — only a limited element/attribute allowlist (including iframe, video, source) survives. null while the post is still being scaffolded.
HTML body shown on the internal job board when the post is also configured as internal. null for external-only posts. Same sanitization rules as content.
ISO 639-1 locale of the post, used to render the candidate-facing application form in the matching language (e.g. en, fr, ja). null when no locale has been chosen.
Canonical public URL of the post on its job board, including the gh_jid tracking parameter. null when the post has no associated job board or the board has no public URL configured.
Id of the demographic question set surfaced to candidates on this post for diversity, equity, and inclusion (DE&I) reporting. null when the post does not collect demographic data.
Id of the parent job (requisition) this post belongs to. A single job can have multiple posts; the job is the source of truth for the hiring team, openings, and interview plan.
Id of the job_board this post is published to. Resolves to either an external (careers site, syndicated board) or internal job board depending on internal. Each post belongs to exactly one board at a time.