Update a job post with Harvest API

Permissions:

Product tier: Available for all subscription tiers

Greenhouse Recruiting allows you to edit and update job posts in-app to create engaging career sites with advanced text formatting, images, video embeds, and more.

You can also use Harvest API to programmatically update your job posts over time. You'll need internal developers to help make these changes, and you'll need to be aware of the available options and limitations.

Update a job post with Harvest API

In-app on Greenhouse Recruiting, you can use advanced rich text formatting in your job posts, like headers, blocks and alignments, as well as image, video and link embedding. Learn how.

Harvest API allows your team to programmatically update some job post information over time.

To get started:

  • You'll need to authenticate each API request with a valid, active Harvest API key.
  • You'll need to validate each API request with an on-behalf-of header containing the user ID of a Greenhouse Recruiting user who has permission to perform the request. Learn more.

Title

You can update your job post title using Harvest API. This is the job title that candidates see on your careers page – not to be confused with the internal job name.

To update a job post title, use the Harvest API endpointPATCH: Update job postwhere {id} is the job post ID you wish to update.

https://harvest.greenhouse.io/v2/job_posts/{id}

Tip: You can retrieve a job post ID using the endpoint GET: List job posts. Use pagination to sort. If you need to find a job post by a specific job, use GET: List job posts by job where ID is the job ID.

Next, send a PATCH request to the endpoint, authenticating with your API key and validating with your on-behalf-of header.

Enter the new job title as a string.

Example request

curl -X PATCH \
'https://harvest.greenhouse.io/v2/job_posts/123
-H 'Authorization: Basic *******' \
-H 'on-behalf-of: 0123456' \
-d ‘{
"title": "Engineering Manager"
}’

Example response

{
"success": true
}

Location

You can update your job post location using Harvest API.

To update a job post location, use the Harvest API endpointPATCH: Update job postwhere {id} is the job post ID you wish to update.

https://harvest.greenhouse.io/v2/job_posts/{id}

Send a PATCH request to the endpoint, authenticating with your API key and validating with your on-behalf-of header.

Enter the new job post location as a string.

Example request

curl -X PATCH \
'https://harvest.greenhouse.io/v2/job_posts/123
-H 'Authorization: Basic *******' \
-H 'on-behalf-of: 0123456' \
-d ‘{
"location": "Portland, Oregon, United States"
}’

Example response

{
"success": true
}

Location.office.id

If your organization limits job post locations by offices, you can also update your job post location.office.id using Harvest API.

Use the Harvest API endpointPATCH: Update job postwhere {id} is the job post ID you wish to update.

https://harvest.greenhouse.io/v2/job_posts/{id}

Send a PATCH request to the endpoint, authenticating with your API key and validating with your on-behalf-of header.

Enter the new job post location as an integer – the office ID. 

Example request

curl -X PATCH \
'https://harvest.greenhouse.io/v2/job_posts/123
-H 'Authorization: Basic *******' \
-H 'on-behalf-of: 0123456' \
-d ‘{
"location.office.id": "1234567890"
}’

Example response

{
"success": true
}

Location.custom_location.id

If your organization limits job post locations by a custom list of locations, you can also update your job post location.custom_location.id using Harvest API.

Use the Harvest API endpointPATCH: Update job postwhere {id} is the job post ID you wish to update.

https://harvest.greenhouse.io/v2/job_posts/{id}

Send a PATCH request to the endpoint, authenticating with your API key and validating with your on-behalf-of header.

Enter the new job post location as an integer – the custom location ID.

Example request

curl -X PATCH \
'https://harvest.greenhouse.io/v2/job_posts/123
-H 'Authorization: Basic *******' \
-H 'on-behalf-of: 0123456' \
-d ‘{
"location.custom_location.id": "0987654321"
}’

Example response

{
"success": true
}

Content

You can update your job post content / description using Harvest API.

Note: Due to JSON restrictions, the HTML body of the job post content should be a single line, with no newline characters and with all double quotes escaped. If your job post content requires significant formatting, we recommend using the in-app job post editor.

Use the Harvest API endpointPATCH: Update job postwhere {id} is the job post ID you wish to update.

https://harvest.greenhouse.io/v2/job_posts/{id}

Send a PATCH request to the endpoint, authenticating with your API key and validating with your on-behalf-of header.

Enter the new job post content as a string on a single line.

Example request

curl -X PATCH \
'https://harvest.greenhouse.io/v2/job_posts/123
-H 'Authorization: Basic *******' \
-H 'on-behalf-of: 0123456' \
-d ‘{
"content": "<p>This job is now open to remote applicants!</p>"
}’

Example response

{
"success": true
}