Recruitment to HR
Greenhouse to Factorial integration: accepted offer as an employee with first contract in Factorial
With an integration between Greenhouse and Factorial, a candidate who accepts an offer in Greenhouse becomes an employee in Factorial, together with the first contract with start date, part-time percentage, team, location and pay. HR then sends the invitation from Factorial, so the new colleague only gets access when HR wants.
What the integration does
Organisations that use Factorial as HR system and recruit in Greenhouse retype every hire with contract into Factorial. The contract with hours, trial period and salary in particular then takes time and causes errors, while everything is already in the Greenhouse offer.
- At the start we record the entity and location per Greenhouse office, and the team in Factorial per department.
- The recruiter marks the candidate as hired after acceptance.
- KoppelHet reads candidate, job and the current version of the offer.
- KoppelHet creates employee and contract, and then puts the pay on the contract.
- HR checks the employee and sends the invitation from Factorial.
What to watch for with Greenhouse and Factorial
- For a new employee Factorial wants the address they will sign in with. Greenhouse usually only has a personal address for a candidate, and the work address often does not exist yet at the time of hiring. That is why HR puts the work address as a custom field on the offer; if it is empty, the hire waits.
- Greenhouse can build departments in layers, while an employee in Factorial belongs to a team. KoppelHet takes the job's lowest department and looks up the team in Factorial through a table; a department without a rule arrives as an alert for HR.
- Factorial asks for part-time as a percentage of the full-time week, and a Greenhouse offer has no standard field for it. We add hours per week to the offer form and convert them per Factorial entity, because the full-time week differs per country.
- A changed offer gets a new version in Greenhouse. If another version with a different start date or pay arrives after the hire, KoppelHet does not silently change the Factorial contract, but reports the difference to HR.
- An employee who enters Factorial through the API has no access until they receive a separate invitation. KoppelHet does not send it. If unhire_candidate still follows in Greenhouse, HR sees that in the KoppelHet platform and the candidate has not had an email from Factorial yet.
- Factorial works with dated API versions and Greenhouse replaced Harvest v1 and v2 with v3 as of 31 August 2026. KoppelHet records both versions per integration and tests a new Factorial version before it goes live.
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 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.
Frequently asked questions
Do CV and offer letter go across?
Not in the first version. Documents to Factorial can be added later as an extension.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Greenhouse through the hire_candidate and unhire_candidate webhooks (offer with version, starts_at and custom_fields; currency fields with amount, unit and frequency; HMAC-SHA256 in the Signature header) and Harvest v3 with OAuth 2.0 client credentials for new offer versions.
- To Factorial through API version 2026-10-01 - POST /resources/employees/employees/create_with_contract (company_id, first_name, last_name, email, legal_entity_id, location_id, team_id, contract_starts_on, contract_effective_on, contracts_working_time_percentage_in_cents, has_trial_period, trial_period_ends_on), then pay through contracts/compensations. OAuth 2.0 or an administrator's API key.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Greenhouse | Field in Factorial | Notes |
|---|---|---|
first_name en last_name | first_name en last_name | |
Zakelijk e-mailadres (eigen veld in het aanbod) | email | The login address, not the personal address |
phone_numbers (mobile) | phone_number | |
offer.starts_at | contract_starts_on en contract_effective_on | |
jobs[].offices | legal_entity_id en location_id | Through a table per office |
jobs[].departments (onderste laag) | team_id | |
Uren per week (eigen veld in het aanbod) | contracts_working_time_percentage_in_cents | |
Einde proeftijd (eigen veld in het aanbod) | has_trial_period en trial_period_ends_on | |
Valutaveld in het aanbod (amount, unit, frequency) | Compensation op het contract |
Related
Greenhouse → ADP Workforce Now
Greenhouse to ADP Workforce Now integration: accepted offer as an in-progress hire in ADP
Greenhouse → AFAS Profit
Greenhouse to AFAS integration: an accepted offer starts onboarding in AFAS Profit
Greenhouse → BambooHR
Greenhouse to BambooHR integration: hired candidates in BambooHR automatically and completely
Greenhouse → Dayforce
Greenhouse to Dayforce integration: accepted offer as a validated new employee in Dayforce