In some cases, your organization may need to initiate job creation in Greenhouse Recruiting and subsequently update the Greenhouse Recruiting job with information that is hosted in an HRIS.
This article outlines the workflow and API requests needed in order to update a job in Greenhouse Recruiting and import certain job information from an external HRIS by utilizing Greenhouse Recruiting's 'job created' webhook and the Greenhouse Harvest API.
Web hook initiated job import workflow
When building a jobs integration between an HRIS and Greenhouse Recruiting, your organization may find that the HRIS is the source of truth for key data associated with particular roles, but doesn’t account for position/requisition creation and/or approval.
In these situations, your team may need to initiate job creation in Greenhouse Recruiting, and subsequently update the Greenhouse Recruiting job with information that is hosted in the HRIS.
1. Create a job in Greenhouse Recruiting.
2. Enter the job code, job profile, and/or level (whatever serves as the key identifier for the job attributes in the HRIS) on the Greenhouse Recruiting job.
3. The integration will receive the 'job created' web hook.
4. The integration will use the HRIS Job Code to retrieve job information from the external system (HRIS/HCM).
5. The integration will then update the Greenhouse Recruiting job with information from the HRIS.
Web hook initiated job import diagram
Technical workflow: Catch the 'job created' web hook
The 'job created' web hook will send a payload of job data, including the HRIS Job Code, as soon as a job is created in Greenhouse Recruiting. This can then be used to gather the job information associated with that HRIS Job Code values in the HRIS.
1. Configure the 'job created' web hook to send to the web hook listener in the integration layer/middleware.
2. Catch the 'job created' web hook in the integration layer.
3. After catching the 'job created' web hook, the integration will use the HRIS Job Code value included in the web hook payload to retrieve the appropriate data from the HRIS (e.g. salary range, cost center, and other attributes associated with said Job Code in the HRIS). The integration should also store the Greenhouse Recruiting job ID included in the web hook.
4. Once the HRIS attribute values associated with HRIS Job Code are retrieved, the integration should use the stored Greenhouse Recruiting job ID in an API request to update the Greenhouse job’s corresponding custom field values.
Update or add default/custom job field values to existing jobs
Using the web hook initiated job import integration workflow, you may need to add or update default and custom job field values on existing jobs.
To make a PATCH request to update custom job field values:
1. Use the Harvest API endpoint GET: List Custom Fields to retrieve all custom job field name keys and available option values for single and multi-select fields.
2. Once you have retrieved all custom job field name keys and available option values for single and multi-select fields, use the PATCH: Update job request to PATCH an existing job's custom field values.
3. If you would like to incorporate updates to HRIS Job Code attributes so that any updates in the HRIS push over to the relevant Greenhouse Recruiting jobs, you may want to incorporate a scheduled cadence to check for updates, for example at the end of each day.
A.) Use the Harvest API endpoint GET List Jobs for all open or draft jobs in Greenhouse Recruiting, and store the Greenhouse Recruiting job ID and HRIS Job Code value.
B.) Cycle through each HRIS Job Code to retrieve the latest corresponding HRIS attribute values.
C.) For each HRIS Job Code, cycle through each Greenhouse Recruiting job with its respective HRIS Job Code value and use the Harvest API endpoint PATCH Update Job to overwrite the values that exist in Greenhouse Recruiting with the latest information from the HRIS.