Recruitment to HR
Recruitee to Factorial integration: hired candidates with a contract in Factorial
With an integration between Recruitee and Factorial, a candidate hired in Recruitee automatically appears as an employee with a contract in Factorial, with entity, team, location, start date, part-time percentage and probation. HR then sends the invitation from Factorial, and nobody retypes the offer any more.
What the integration does
Organisations that have Factorial as HR system and recruit in Recruitee instead of Factorial's recruiting module create every new colleague in Factorial by hand. Contract hours, probation and salary only reach Factorial once HR gets round to it, while leave and time tracking are already waiting for them.
- KoppelHet fetches the entities, teams and locations from Factorial daily, so the offer maps to existing values.
- The recruiter marks the candidate as hired in Recruitee.
- The new colleague appears in Factorial with the first contract, including part-time percentage and end of probation.
- The salary from the offer is added as compensation on that contract.
- HR checks the employee and sends the invitation; the new colleague can then log in to Factorial.
What to watch for with Recruitee and Factorial
- Factorial expects the email address the new employee will log in with, not a private address. Recruitee only knows the candidate's private address, so the work address is decided in advance and stored as a profile field in Recruitee.
- Factorial creates the employee and the first contract in one call. Contract start, part-time and probation do not need to be added by HR afterwards.
- Part-time is stored in Factorial as a percentage of the full-time week, not as hours. KoppelHet converts the hours from the offer using the full-time week that applies per entity.
- A new employee created through the API is not yet confirmed and only gets access after a separate invitation. HR thus decides when the new colleague can get into Factorial.
- Factorial uses dated API versions, for example 2026-10-01. KoppelHet tests a new version first, so a change at Factorial does not halt the hires.
- Factorial expects nationality and country as two-letter country codes. Recruitee address fields are free text, so KoppelHet translates them, or leaves them empty for the employee to fill in.
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
Why not use Factorial's recruiting module?
That is an option. If you keep recruiting in Recruitee, vacancies and pipelines stay there; the integration only starts at the hire.
Does Factorial run Dutch payroll?
No. Factorial supplies the data to a Dutch payroll such as Nmbrs or AFAS; that is a separate integration.
What if the candidate worked for us before?
KoppelHet then creates no new employee. The return goes to HR as a task, and HR adds the contract in Factorial.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Recruitee is read through the signed candidate_moved webhook to a stage with the hire category (X-Recruitee-Signature header) and the ATS API for candidate, offer and profile fields.
- To Factorial through API version 2026-10-01, POST /resources/employees/employees/create_with_contract (required company_id, first_name, last_name, email; also 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). Salary through POST /resources/contracts/compensations; invitation through employees/invite by HR.
- Authentication with OAuth 2.0 or an administrator API key.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Recruitee | Field in Factorial | Notes |
|---|---|---|
name | first_name, last_name | We split the single Recruitee name field |
Zakelijk e-mailadres (profielveld) | email | Factorial wants the login address here, not the private one |
phones[0] | phone_number | |
Startdatum (profielveld) | contract_starts_on en contract_effective_on | |
Vacature of plaatsingslocatie | legal_entity_id en company_id | |
placement_locations[0] | location_id | |
offer.department | team_id | Through the list of teams from Factorial |
Uren per week (profielveld) | contracts_working_time_percentage_in_cents | Converted to a percentage of the full-time week |
Einde proeftijd (profielveld) | has_trial_period en trial_period_ends_on | |
Profielveld salary (amount, currency) | Compensation op het contract |
Related
Recruitee → ADP Workforce Now
Recruitee to ADP Workforce Now integration: hired candidates as an in-progress hire
Recruitee → AFAS Profit
Recruitee to AFAS integration: from hired candidate to new employee
Recruitee → AlexisHR
Recruitee to AlexisHR integration: hired candidates as employees in Simployer One
Recruitee → BambooHR
Recruitee to BambooHR integration: hired candidates in BambooHR without clicking and retyping