Greenhouse logoPersonio logo

Recruitment to HR

Greenhouse to Personio integration: hired candidates as employees in Personio

With an integration between Greenhouse and Personio, a candidate hired in Greenhouse becomes a new employee profile in Personio, with name, email, department, workplace, start date and position. KoppelHet also brings along salary, hours, probation and the legal entity from the offer.

What the integration does

Organisations that recruit in Greenhouse and use Personio as HR system often still copy a hire from the signed offer, with salary, contract hours and the right legal entity.

  1. The recruiter marks the candidate as hired in Greenhouse.
  2. Greenhouse sends the candidate has been hired webhook.
  3. KoppelHet fetches the accepted offer with start date and custom fields.
  4. Personio receives person and employment in one call, with status onboarding.
  5. The salary arrives in Personio as compensation; an error is shown with the candidate in the KoppelHet platform.
Greenhouse → KoppelHet → PersonioSOURCEGreenhouseTARGETPersonioKoppelHetmapping · logging · monitoringGreenhouse → KoppelHet → PersonioSOURCEGreenhouseTARGETPersonioKoppelHetmapping · logging · monitoring
Out: Person with name and email · Department, workplace and position · Start date from the offer · Hours, probation and legal entity · Salary from the offer

What to watch for with Greenhouse and Personio

  • The webhook fires on Mark Candidate as Hired, but also when a Greenhouse automation moves an accepted offer to Hired. A hire that runs automatically this way is therefore also in Personio straight away.
  • Personio refuses a second person with the same email address. If a former employee returns through Greenhouse, KoppelHet first looks up the existing person and puts the return to HR.
  • Personio wants probation as an end date or a length, never both, and hours as contract hours next to the full-time week. Greenhouse has no fixed fields for these; we add them as custom fields on the offer.
  • Greenhouse only returns the offer in Harvest v3 to a user with the right to see salary data. Without that right the list is empty, with no error; KoppelHet tests this during setup.
  • Personio wants department and office as an internal ID, Greenhouse gives them as a name with an optional external_id. If you put the Personio ID in that external_id, KoppelHet does not have to search by name and a spelling difference does not block the hire.
  • If the start date moves after acceptance, Greenhouse creates a new version of the offer. KoppelHet requests only the latest version in Harvest v3 with current_only, so Personio does not get the date of a deprecated offer.
  • Greenhouse repeats a failed notification up to seven times, and every delivery carries a Greenhouse-Event-ID. KoppelHet processes each ID once, so a repeated notification does not lead to a second attempt to create the same person in Personio.

How we build and run it

  • The integration runs on the KoppelHet platform, hosted in a data centre in the EU.
  • Every sync and every error is visible in the functional log; on an error your administrator is notified.
  • A change that cannot go through is not half-applied but queued for another attempt.
  • KoppelHet is ISO 27001 certified. Data travels encrypted and stays on the platform no longer than needed.
  • After go-live we manage the integration and adjust it when your process changes.
  • The integration fits next to your existing integration layer. Only the fields in the design are transferred; the platform keeps no register of its own.

Implementation, architecture and compliance

Implementation and price

This is not an app you switch on. We build the integration for your organisation on our platform, with building blocks we reuse on every project. So it is custom work that does not start from scratch.

A consultant prepares the intake and analyses both systems. We then record the mapping and exceptions field by field, test in the test or acceptance environment and go live at a moment you choose. Costs are a one-off amount for the setup and a monthly amount for platform, monitoring and support.

Price indication · Basic

Leave your work email and you see the price indication right away.

We only use your address to follow up on your question about this integration.

Frequently asked questions

Does Personio run Dutch payroll?

No. Personio supplies data to a Dutch payroll; that is a separate integration.

What if a hire is reversed in Greenhouse?

KoppelHet then deletes nothing in Personio. HR gets an alert and decides.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • KoppelHet reads Greenhouse through the hire_candidate webhook (HMAC SHA-256 in the Signature header) and Harvest v3 (client credentials through auth.greenhouse.io/token, GET /v3/offers with starts_on and custom_fields). Harvest v1 and v2 were removed as of 31 August 2026.
  • To Personio through POST /v2/persons (scope personio:persons:write) with first_name, last_name, email and an employment with employment_start_date, status ONBOARDING, position.title, org_units, office, legal_entity, weekly_working_hours, full_time_weekly_working_hours and probation_end_date. Salary through the compensation API.

Which fields are transferred

The key fields. The full mapping is agreed per customer.

Field in GreenhouseField in PersonioNotes
Candidate first name en last namefirst_name en last_name
Candidate emailemailUnique in Personio
Job departmentorg_units (type department)
Job officeoffice
offer.starts_onemployment_start_date
Job nameposition.title
Uren (custom field op het aanbod)weekly_working_hours
Entiteit (custom field op de vacature)legal_entity
Salaris en valuta (custom field op het aanbod)Compensatie in Personio

Related

Which systems do you want to connect?

Tell us which systems you use and what should happen automatically. Together we define the smallest working solution, with a clear design and a quote before building.