The approach that works best for managing rehires and internal transfers with a Greenhouse Recruiting to HRIS integration depends on your internal recruiting practices and what employee data is stored in your HRIS.

We recommend reviewing this guide with your HRIS integration development team. You can implement one or all of the following solutions to help identify rehires. We recommend using multiple checks to help prevent the creation of duplicate employee records in your HRIS.

Trigger candidate hired webhook

Hired candidates are typically exported to an HRIS using the candidate hired webhook. The webhook triggers in real-time, sending candidate data to a listener when you click Mark Candidate as Hired on a candidate profile in Greenhouse Recruiting.

One webhook fires per candidate, even if multiple candidates are hired at the same time. The webhook also fires again if a candidate is unhired and then rehired. Your integration developer should be aware of the potential for duplicate webhooks so they can account for the possibility of the integration logic.

Suggested workflows for identifying rehires and internal transfers

Option 1: Evaluate all candidate email addresses

Check if any of the candidate's personal email addresses listed in Greenhouse Recruiting are associated with an existing record in HRIS.

Option 2: Evaluate custom offer field values

Have your recruiters identify rehires or internal transfers via custom offer fields when they fill out the candidate's offer details. All custom offer fields are included in the candidate hired webhook payload. We recommend creating two custom offer fields:

  • Hire Type (single-select): For example, New hire, Rehire, or Internal transfer (you may need to include additional hire types to accommodate your organization's business processes)
  • Employee ID (short-text and dependent on Hire Type selection of Rehire or Internal transfer): If applicable, recruiters should find the rehire/internal transfer's existing profile in your HRIS and copy and paste the employee ID into this field

Option 3: Check for Internal Transfer source

An alternative or backup method for identifying internal transfers is to use the internal applicant source. If employees apply for jobs through their Greenhouse Recruiting accounts using an internal job board, their application automatically is assigned the source internal applicant.

This source is found in the application object in the webhook payload.


"application": {
"id": 97035993,
"opening": null,
"credited_to": null,
"source": {
"id": 4370,
"name": "Internal Applicant"

Option 4: Store Greenhouse Recruiting candidate ID in your HRIS

Every export from Greenhouse Recruiting to your HRIS includes the candidate's Greenhouse Recruiting candidate profile ID in the candidate object of the candidate hired webhook payload (example below). Once the candidate is exported to your HRIS, we recommend storing the Greenhouse Recruiting candidate ID as a Reference ID.

If your HRIS receives the same candidate ID more than once from Greenhouse Recruiting, the integration should flag that the export is either a rehire for a new job, or that the candidate hired webhook has been re-triggered.

Check out the Trigger candidate hired webhook section above for more information.

A Greenhouse Recruiting candidate profile can have one or more associated job applications, each with its own unique application ID. The application ID can also be used as a reference to determine whether the export is for a new job the candidate applied to, or the export is a duplicate.

Please keep in mind if a former employee applies to a new job, it's possible their new application will be under a new Greenhouse Recruiting candidate profile (with a new candidate ID), rather than merged into their existing candidate profile. Whether or not the new application is merged into an existing Greenhouse Recruiting candidate profile depends on whether auto-merge is enabled for your organization and how the new application was added to Greenhouse Recruiting.

Click here to learn more about the auto-merge feature.