Coming soon- Greenhouse-V3
charthop <> greenhouse charthop is a people intelligence platform your headcount plan, org chart, and employee data all live together in one place, so hr, finance, and leadership work from the same numbers teams use charthop to model next fiscal year, plan a reorganization, and approve roles before recruiting starts, then keep employee data current across the rest of their hr stack charthop's integration with greenhouse recruiting allows users to keep open roles and new hires in sync between the two systems you choose which system owns open jobs charthop can push approved headcount to greenhouse as requisitions and openings, or greenhouse can send its open jobs into charthop in both directions, charthop pulls recruiting metrics onto the role, and when a candidate is marked as hired in greenhouse, charthop creates the new hire and updates the org chart your recruiting and hr teams stop keeping two lists of open roles, and nobody retypes a new hire's details in this article , you can find information on how to use oauth to update your greenhouse integration, how to install a new greenhouse app in charthop, and how to choose the workflow you want before you start requirement details greenhouse permissions a user who can manage all organization's api credentials this is a developer permission rather than a role, so it can be granted to a basic user and above to authorize with a service account, the user completing the flow must be a site admin greenhouse product tier harvest v3 partner integrations are available for new subscription tiers core, plus, and pro check with your greenhouse account team if you are on an earlier tier charthop permissions a charthop role with permission to install and configure apps charthop plan the greenhouse integration is included with charthop plans that support applicant tracking integrations your charthop implementation specialist confirms this during setup charthop recommends setting this integration up with help from your charthop implementation specialist job data can flow in from greenhouse, or a bidirectional sync with webhook, and the direction you pick determines which system owns your open roles talk through that choice before you connect configure the charthop integration setting up the integration takes four steps install the charthop greenhouse app in charthop authorize the connection to greenhouse using oauth choose your job data direction and sync settings turn on the new hire webhook in greenhouse step 1 install the greenhouse app in charthop in charthop, select apps & bundles from the left sidebar select apps from the sub menu select the available apps tab find the greenhouse app and select install select install again on the app install page to confirm step 2 authorize the connection to greenhouse charthop connects to greenhouse with harvest v3 and oauth 2 0 you will not enter an api key or a subdomain on the charthop greenhouse app page, open the settings tab in the connection section, select connect with greenhouse charthop opens the greenhouse authorization screen review the permissions charthop requests, then log in to greenhouse you must authorize via oauth for this integration select authorize using a service account , which is available to site admins a service account keeps the connection alive when the person who set it up changes roles or leaves, and it labels integration activity in greenhouse as the service account rather than a named user complete the authorization greenhouse returns you to charthop, and the connection section shows the connected account per user authorization and reconnecting each charthop user who works with the integration can authorize with their own greenhouse account charthop then acts with that person's greenhouse permissions, and greenhouse attributes their activity to them rather than to a shared connection use reconnect in the connection section to authorize, or to reauthorize after a password change, a permission change, or a revoked connection the organization level connection is what runs scheduled syncs keep that one on a service account, and use per user authorization for people taking action in the app permissions charthop requests charthop requests the harvest v3 scopes below read scopes cover the data charthop pulls into the org chart and onto the role write scopes are used only when your job data direction is outbound, charthop to greenhouse area read write jobs list and read jobs create and update jobs openings list openings create, update, and delete openings departments and offices list departments and offices none hiring team list job hiring managers and job owners create and remove job hiring managers, job owners, and user job permissions users list users and user roles none candidates and applications list candidates, applications, and application stages none offers list offers none custom fields list custom fields none webhooks list webhooks create and update webhooks step 3 choose your job data direction and sync settings on the charthop greenhouse app settings page, scroll to basic settings and pick one direction direction what it does outbound charthop as source of truth active open jobs in charthop are pushed to greenhouse as jobs and openings use this when headcount is approved in charthop before recruiting starts inbound greenhouse as source of truth active jobs in greenhouse are imported into charthop use this when recruiting opens roles first new hire data always flows inbound, from greenhouse to charthop, whichever direction you choose for jobs the settings below control sync timing and how charthop matches a role in one system to a role in the other setting what it does availability run daily runs a sync each morning and pulls candidate metrics onto the role the scheduled run time for your organization is shown on the app page recommended for most setups both directions sync on change sends the job to greenhouse as soon as any change to an active linked job is merged in charthop, or a job becomes active no waiting for the next daily run outbound only reconciliation checks each day that greenhouse matches your charthop data and corrects greenhouse where it drifted this catches a sync that did not run, and values that failed to write because a field was not set correctly if an open job exists in charthop but not in greenhouse, charthop creates the requisition outbound only default location if not provided assigns a fallback location, for example remote, to records that sync without one both directions match by job codes first matches a charthop job to a greenhouse job when the charthop job code equals the greenhouse requisition id if no match is found, charthop falls back to the group job openings setting use this if your organization has standardized titles and job codes both directions group job openings sets the fallback match method title, title and location, or none with title or title and location, several charthop jobs can share one greenhouse job, each as its own opening both directions title matching advanced settings ignores text after a hyphen or inside parentheses when matching on title most organizations need this, because an open job often carries an internal title and an external title, for example "senior engineer platform (backfill)" both directions if it matches to a closed job chooses what happens on a match to a closed greenhouse job reopen the job and create a new opening, or create a new job and opening both directions announced date sets when a person hired through the integration becomes visible to other employees in the charthop org chart use this to hold a hire private until the team is told inbound hires step 4 turn on the new hire webhook in greenhouse the new hire webhook is what updates your org chart the moment a candidate is hired set it up in greenhouse using values charthop gives you in charthop, open the greenhouse app settings page and copy the secret key under new hire webhook copy the endpoint url shown alongside it in greenhouse, follow enable a web hook and create a web hook with the values in the table below save the web hook field value name this webhook charthop hire when candidate has been hired endpoint url the endpoint url shown on the charthop greenhouse app settings page secret key the secret key copied from charthop in step 1 error recipient email support\@charthop com disabled no fields charthop reads and writes two tabs on the charthop greenhouse app page show your exact field list, so you never have to guess what moves ● inbound field mappers lists everything that moves from greenhouse to charthop ● outbound field mappers lists everything charthop writes to greenhouse both tabs work the same way charthop ships a set of default mappers, already enabled toggle off any default you do not want, for example to stop a greenhouse value from overwriting a field you maintain in charthop add custom mappers for your own greenhouse custom fields your charthop implementation specialist configures custom mapping with you; send requests to support\@charthop com the table below lists the standard mapping on an outbound setup, charthop writes the fields in the greenhouse column on an inbound setup, charthop reads them charthop field greenhouse field direction job title job name both job code requisition id both department department both location office both job (individual open seat) opening, tracked by opening id both recruit status job and opening status both date opened opened at both hiring manager job hiring managers both recruiter or job owner job owners both employment type employment type both confidential job flag confidential both job closed or filled opening closed, with a close reason outbound recruiting metrics candidates, screens, interviews, offers applications and application stages inbound new hire name and email candidate on the hire webhook inbound new hire phone and address candidate on the hire webhook inbound start date offer start date on the hire webhook inbound compensation fields such as salary, bonus, and stock offer custom fields on the hire webhook inbound custom fields are supported on both the greenhouse job and the greenhouse opening, and on offer fields delivered in the hire webhook because several charthop jobs can share one greenhouse job when group job openings is set to title or title and location, charthop writes per role custom values to the opening rather than the job custom field mapping is configured by charthop's professional services team send mapping requests to your charthop implementation specialist or support\@charthop com set up greenhouse job templates greenhouse job templates control what a newly created requisition looks like its stages, scorecards, and approvals charthop lets you pick which template each role gets ● set a default template to use for every job charthop creates ● add as many additional templates as you need, each with a charthop filter when a job meets the filter, charthop creates it in greenhouse from that template use this to give engineering roles an engineering interview plan and sales roles a sales one, with no manual step in greenhouse test operations before you map fields the api operations tab lists everything the integration can do in greenhouse, and lets you run an operation as a test run a read against a real greenhouse job to see the exact values it returns, then build your field mappers against what you saw rather than what you expected this is the fastest way to get custom field mapping right the first time review webhook activity the webhook activity view records every webhook the integration sends or receives, with the headers and full body of each when you want to confirm a hire arrived, or see exactly what greenhouse sent, check here first it is also the quickest way to answer a question about a specific candidate's data before contacting support migrate an existing charthop connection to harvest v3 greenhouse retires harvest v1 and v2 on august 31, 2026 if you connected charthop to greenhouse with a harvest api key, move to the oauth connection before that date or your syncs stop your charthop team runs this migration with you the steps are in charthop, open the greenhouse app and go to the settings tab a banner at the top shows that the install still uses the legacy greenhouse api, along with the august 31, 2026 date select upgrade and confirm charthop converts your existing field mappings to the harvest v3 equivalents and keeps your sync direction and settings review the confirmation message if any field mapping has no direct v3 equivalent, charthop names the count so your charthop team can reconfigure those fields until they do, those fields stop syncing select connect with greenhouse and complete the oauth authorization in step 2 above the upgrade does not carry over your api key, so the connection is not live until you authorize run a one time sync on a single job and confirm the result in sync history your existing new hire webhook keeps working after the upgrade the endpoint url does not change, so there is nothing to reconfigure in greenhouse if you need to roll back, you can revert the install to the legacy api until august 31, 2026 use the charthop integration send an approved role from charthop to greenhouse on an outbound setup, charthop is where a role is created and approved, and greenhouse is where it gets filled the sequence most customers follow headcount plan in charthop, generate the open roles, get them approved, merge them into the org, and let the integration carry them to greenhouse in charthop, build the open roles in a headcount plan or scenario once they are approved and merged into your organization and the role is active, charthop triggers the send to greenhouse with sync on change turned on, charthop pushes the job to greenhouse as soon as the change merges otherwise the job goes out on the next daily sync, or when you run a one time sync from the app page charthop creates the greenhouse job and one opening per charthop job, writes the mapped fields, and adds the hiring manager and job owner to the hiring team confirm the result in sync history in charthop each sync run lists the jobs it touched and the exact values written in greenhouse, the requisition is ready your talent acquisition team adds the job post, runs interviews, and updates the role as normal, all in greenhouse as candidates enter the pipeline, charthop pulls the counts onto the role open the job's data sheet in charthop to see the candidates on that role keep a role in sync after changes when you change a linked role in charthop, for example a retitle, a department move, or a hiring manager change, charthop updates the matching greenhouse job and opening on the next sync closing or filling the role in charthop closes the greenhouse opening and supplies a close reason turn on reconciliation to have charthop check the full set of open roles against greenhouse on a schedule and correct any drift import open jobs from greenhouse into charthop on an inbound setup, greenhouse owns open roles open the role in greenhouse as usual, including department, office, and requisition id charthop imports active greenhouse jobs on the daily sync, or immediately when you run a one time sync from the app page each greenhouse opening becomes an open job in the charthop org chart, positioned under the hiring manager, so headcount and planning views reflect what recruiting is working on charthop pulls candidate, screen, interview, and offer counts onto the role each morning, so leaders see pipeline progress next to the org chart because the role and its new hire now live in charthop, your hris and other connected systems pick them up from there greenhouse stays your recruiting system of record without becoming an integration hub add a new hire to the org chart when a candidate is hired in greenhouse, extend the offer and mark the candidate as hired on the job greenhouse sends the hire webhook to charthop with the candidate, application, and offer details charthop matches the hire to the charthop job linked to that greenhouse opening and creates the person with their name, contact details, address, start date, and any mapped offer fields such as salary and bonus the role moves to a recruit status of pending in charthop this is the last recruit status update greenhouse sends for that role, because the position is filled open the run in sync history to see the webhook detail the new hire, the job they are starting in, and every change charthop made limits on the new hire webhook ● the hire must map to a job that exists in charthop if the job is missing, the hire is not processed ● a hire is not processed when the person already exists in charthop, even when they hold no active role internal transfers and rehires are handled in charthop rather than through the webhook ● only the first hire webhook for a charthop job is processed if you update an offer packet and rehire the candidate in greenhouse, remove the new hire in charthop before the updated details are accepted troubleshooting what you see what to do sync history shows a job that could not be matched check that the charthop job code matches the greenhouse requisition id, or that your group job openings setting matches how your titles are written department and office values must match one to one between the two systems a hire webhook arrived but charthop could not find the job confirm the greenhouse opening is the one linked to the charthop job the greenhouse id on the charthop job appears on the job's data sheet open the entry in webhook activity to see exactly what greenhouse sent syncs stopped and charthop asks you to reconnect the greenhouse authorization was revoked or expired reconnect from the connection section on the app settings page anyone who can manage all organization api credentials can reauthorize a field stopped syncing after the v3 migration the field mapping had no direct v3 equivalent contact charthop support to reconfigure it you need to revoke charthop's access in greenhouse, go to sync settings, and uncheck sync you can also uninstall the app syncs stop immediately additional resources for additional information not covered here, reach out to support\@charthop com ● charthop greenhouse integration documentation https //docs charthop com/coming soon greenhouse v3
