Syncing data to/from Greenhouse
In this section, we cover the process for setting up data syncs between ChartHop and Greenhouse.
With the Greenhouse app enabled, ChartHop's open jobs list becomes the single source of truth for open jobs. Recruiters, hiring managers, financial planners, and team leads can all look at ChartHop for a realtime view of which roles are open and how recruiting is going, without needing access to Greenhouse.
When a new open job in ChartHop is set to Active recruiting status, a req will automatically be created in Greenhouse. That same opening will be closed in Greenhouse if the open job is set back to an inactive status.
After the ChartHop job is created and set to Active, if you wish to have your job set as either Draft or Open in Greenhouse, be sure to configure those settings in your linked job template.
Greenhouse jobs and openings are matched to ChartHop open roles either through the use of explicit job id and opening id values, or via the location and name of the open role.
By default, ChartHop jobs are matched to Greenhouse jobs by job code. If no job codes exist, or Match Jobs By Job Code is disabled in the Greenhouse app settings, the initial mappings will, instead, be determined by your Group Job Openings settings (e.g., Title, Title and Location, or None). Once the initial mappings are set, they will be explicitly tied through the job id and opening id values.
ChartHop stores both the job id and opening id in the greenhouseId custom field, separated by a slash.
For example, if greenhouseId has a value of 123/456, that means job id has a value of 123 and opening id has a value of 456.
If an open job in ChartHop does not have a greenhouseId field set, the app will match jobs by comparing name and location.
For example, an open role in ChartHop with the name 'Software Engineer', in New York, will be matched with a job in Greenhouse with the same name and location. If such a job does not exist in Greenhouse, it will be created automatically.
Once an open role is hired in Greenhouse, the job opening in ChartHop is set to pending status, and the hired candidate is scheduled as a hire for that job on their start date.
If you're using a fresh Greenhouse account without any open roles, or you plan to purge open roles from Greenhouse and start over in ChartHop, you can skip this section.
If you've been using a Greenhouse account with open roles that need to remain intact, you can still use ChartHop as the system of record for open roles. To do this, you will need to export open roles from Greenhouse, import them into ChartHop manually, then the sync can take over with automatic updates.
The export process described below requires that the Greenhouse ATS app be installed and configured beforehand.
Follow the steps below to import your open roles from Greenhouse to ChartHop. You will only need to do this once:
Select the Export Greenhouse Jobs button on the Greenhouse app page, and save the CSV. Open it in Excel or Google Sheets.
- Remove any roles that are not on your hiring plan, for example: test jobs and inactive roles
- Ensure that every role has a value for Manager. You should also set target comp (base and variable) for the roles if possible.
- Save the edited file as a CSV, and upload it from the Import CSV page under the hiring plan tab
Once the upload is complete, all open jobs in ChartHop will mirror open jobs in Greenhouse. From this point forward, use ChartHop as the system of record for open roles.
Once the Greenhouse ATS app has been properly set up, ChartHop will be able to pull Greenhouse data into your ChartHop Org.
The table below lists all fields that are synced from Greenhouse to ChartHop during a sync. In the first column, we list the name of the field in ChartHop, and in the second column, we list the name of the field in Greenhouse.
candidate.email_addresses[?(@.type == 'personal' || @.type == 'other')].value.first()
candidate.email_addresses[?(@.type == 'work')].value.first()
offer.custom_fields.bonus.value, offer.custom_fields.bonus, offer.custom_fields.variable_compensation.value, offer.custom_fields.variable_compensation, offer.custom_fields.variable.value, offer.custom_fields.variable
offer.custom_fields.stock_option.value, offer.custom_fields.stock_option, offer.custom_fields.equity.value, offer.custom_fields.equity
You may run into data inconsistencies between your ATS and ChartHop due to conditions such as sync failures or changes in custom field mapping. To handle such cases, you can enable the Greenhouse app's Reconciliation feature.
When enabled, the reconciliation performs an evaluation, and amends any discrepancies in open jobs between ChartHop and Greenhouse along with the fields (e.g., Department, Hiring Manager, or mapped custom fields) to existing mapped jobs.
If the Run Daily option is enabled, reconciliations are triggered on a daily basis. You can manually trigger a sync by selecting the Sync Greenhouse Jobs button located at the base of the Greenhouse app settings page.