v1

latestOpenAPI 3.1.02026-07-261770816.7 KB
Jobs

Update job

Patch an existing job's editable fields. Only the keys included in the request body are modified; omitted keys are left untouched. office_ids / external_office_ids and custom_fields replace their existing collections wholesale — send the full desired list, not a delta. Department and office can be set either by Greenhouse id or by partner external_id; the two forms are mutually exclusive. To open, close, or re-open a job, modify its openings through /v3/openings — the job's status and opened_at/closed_at follow automatically.

patch/v3/jobs/{id}

Path parameters

idinteger required

Request body

namestring

Internal job title shown to the hiring team in Greenhouse.

notesstring

Internal HTML notes about the job. Replaces the existing value when supplied.

anywhereboolean nullable

If true, the job is marked as remote-anywhere and office_ids is cleared. Mutually exclusive with supplying office_ids or external_office_ids.

requisition_idstring nullable

Partner-supplied external identifier for the requisition. Pass null to clear the value.

team_and_responsibilitiesstring

Internal description of the team and the role's responsibilities, shown to the hiring team in the Greenhouse UI.

how_to_sell_this_jobstring

Internal selling-points note used by recruiters when pitching the role, shown to the hiring team in the Greenhouse UI.

office_idsinteger[] nullable

Replace the job's office assignments with these office ids. Send the full desired list, not a delta. Mutually exclusive with external_office_ids and with anywhere: true.

external_office_idsstring[] nullable

Replace the job's office assignments by partner-supplied office external_id values. Each entry is resolved to a Greenhouse office_id in the caller's organization; unknown values are rejected. Mutually exclusive with office_ids.

department_idinteger nullable

Set the job's department by Greenhouse id. Pass null to clear. Mutually exclusive with external_department_id.

external_department_idstring nullable

Set the job's department by partner-supplied department external_id. Resolved to a Greenhouse department_id in the caller's organization; unknown values are rejected. Mutually exclusive with department_id.

Response

Successful

idinteger
created_atstring date-time
updated_atstring date-time
namestring

Internal job title shown to the hiring team in Greenhouse (e.g. Senior Backend Engineer). Distinct from the external-facing title on each job_post.

requisition_idstring nullable

Partner-supplied external identifier for the requisition (e.g. an HRIS or ATS code). Free-form string, not unique across the organization, and null when no external id has been set.

notesstring nullable

Internal HTML notes about the job, surfaced to the hiring team in the Greenhouse UI. Not exposed on public job posts.

confidentialboolean

If true, the job is restricted to users explicitly granted access on the Hiring Team. The legacy Confidential Jobs feature has been sunset — this flag cannot be set on new jobs and is preserved for jobs that already had it enabled.

status'open' | 'draft' | 'closed'

Lifecycle status of the job. draft while it is being scaffolded, open once it has at least one open opening, and closed after every opening is closed. A job moves to closed automatically when its last open opening is closed via PATCH /v3/openings/{id}.

opened_atstring date-time nullable

Timestamp the job first transitioned to open, in ISO 8601. null while the job is still in draft.

closed_atstring date-time nullable

Timestamp the job most recently transitioned to closed, in ISO 8601. null for jobs that are still open or draft.

is_templateboolean nullable

If true, this job is a template used as the source for new jobs rather than a real requisition. Templates do not accept applications; reference them via template_job_id on POST /v3/jobs.

copied_from_idinteger nullable

Id of the job (typically a template) this job was copied from on creation. null when the job was not created from another job.

department_idinteger nullable

Id of the department this job is assigned to. null when no department is set.

office_idsinteger[] nullable

Ids of the offices this job is assigned to. A job can span multiple offices; empty array or null when no offices are set.

custom_fieldsobject nullable