Service · Software development

Build a Recruitee integration.

Recruitee is a strong ATS for the Dutch market, but it operates separately from your HR, payroll and CRM systems. We build the integrations that automatically pass candidates through to AFAS, Personio, Nmbrs, HubSpot and the rest of your stack, with clear field mapping, an audit trail and GDPR compliance checks.

Recruitee APIAFAS integrationWebhooksBi-directional sync

An ATS is only valuable when it moves in step with the rest.

Recruitee (part of Tellent) is the standard recruitment platform for hundreds of Dutch organisations. It works well for recruiters, offers a clean API and, in our experience, is one of the most pleasant ATSs to integrate with. But once a candidate is hired, the real work begins: creating the employee in AFAS or Personio, informing payroll via Nmbrs or Loket, getting the contract signed via DocuSign, and scheduling meetings in Microsoft 365 or Google Workspace.

Without an integration, someone does all of that manually, with duplicate data entry, error-prone field mapping and delays in onboarding. As organisations grow, this quickly becomes an invisible burden on recruiters and HR. We build the Recruitee integrations that bring your workflow together, with careful attention to what you do and don't want to sync under the GDPR. For clients who need a custom recruitment layer alongside Recruitee, we combine both projects into a single architecture.

The Recruitee REST API and webhook events form the foundation. Around them, we build a thin integration layer that handles the transformations (field mapping, normalisation of address and name data), takes care of retries for systems that occasionally falter, and keeps an audit trail that both your IT team and your data protection officer can use. Not a middleware platform with a separate licence, but your own integration in your stack, with no vendor lock-in.

Three types of Recruitee integrations.

Most enquiries we receive fall into one of these three categories. Which one fits depends on where your candidate data needs to go and how often something is allowed to go wrong.

Hire flow · fixed sprint budget

Connecting Recruitee to AFAS, Personio or Nmbrs

The classic case: a candidate receives the status "Hired" in Recruitee and must then be created as an employee in your HR or payroll system. We build the field mapping, trigger via webhook or polling, and ensure reconciliation checks run so you aren't left with duplicates or half-created records.

Recruitee → AFASRecruitee → PersonioRecruitee → NmbrsRecruitee → LoketRecruitee → Visma
Operational flow · fixed sprint budget

Connecting Recruitee to CRM, calendar and communication tools

What needs to keep pace during the recruitment process: new applications flagged in Slack or Teams, interview invitations automatically added to Microsoft 365 or Google Workspace, and lead tracking via HubSpot or Salesforce for recruitment agencies that treat candidates as a sales pipeline.

Slack notificationsTeams alertsOutlook calendarHubSpot syncSalesforce leads
Enterprise / multi-tenant · fixed sprint budget

Recruitee within a larger HR or staffing stack

For organisations with BambooHR, Workday or their own secondment platform: Recruitee as one source in a larger stack, with bi-directional sync, document flow via DocuSign or AdobeSign, and multi-tenant support for recruitment agencies that manage multiple clients within a single Recruitee environment.

BambooHRWorkdayDocuSignAdobeSignMulti-tenant

What you get at the end.

A working integration between Recruitee and your systems, plus everything around it so you can manage it yourself when a field is added or a new recruiter joins.

  • The integration itselfA production and staging environment, running on your cloud (GCP, AWS, Azure) or with us. Stateless where possible, with a retry queue for anything that must wait on a slow-responding system.
  • Field mapping documentA readable overview of which Recruitee field maps to which target field, including conversions, defaults and the decisions around personal and BSN data. Intended for both your HR team and your data protection officer.
  • Audit trail and monitoringEvery sync is logged: which record, which field, which target system, and what the response was. For your IT team, a dashboard with error rates; for your recruiter, a simple status per candidate.
  • Error handling and retry flowWhat does the integration do when AFAS is temporarily unavailable? What if a mandatory field in Personio turns out to be empty? We document every failure path and build in recovery actions, not just a log line.
  • Codebase and documentationFull source code in your own repository, with build and deployment instructions and an architecture overview. No vendor lock-in: another party can carry on working with it.
  • Maintenance contract (optional)Monitoring, retries, version updates to the Recruitee and target system APIs, and further development when a new integration is needed. A fixed monthly fee, agreed with you.

When a Recruitee integration is the right choice.

Four patterns in which we support clients. If you recognise one of them, we're happy to talk further.

Onboarding speed

Duplicate data entry for every hire

A recruiter sets the status to "Hired", and the same person is then created by hand in AFAS or Personio. At more than a handful of hires a month, that becomes a waste of time and a source of errors in address details, contract type or start date.

Payroll flow

Nmbrs or Loket falls behind

The payroll department only sees new employees once HR has completed the payslip template. One forgotten candidate means a correction batch in the next period. A direct sync from Recruitee prevents that pattern.

Recruitment as sales

Candidates are leads too

For staffing, temp and recruitment agencies, every candidate is also a potential deal record. HubSpot or Salesforce needs to know who has which status, and you want reporting per account manager. A one-way or bi-directional integration with Recruitee makes this possible.

Compliance

GDPR questions are getting sharper

Which personal data flows to which system, at what moment, and on what legal basis? A well-considered Recruitee integration makes that explicit, and provides controls to limit or anonymise data where that is required.

How a Recruitee integration project runs.

1

Introduction and scope

A conversation in which we look at which systems Recruitee needs to serve, which triggers are required (application received, status change, hire event), and what your HR and compliance team requires. We also discuss what stays in scope and what we explicitly leave out, so the first delivery doesn't grow out of hand. At the end: a set-up with clear choices and a proposal.

2

Field mapping and data audit

A short workshop with your recruiter and your HR or payroll colleague to map Recruitee fields to AFAS, Personio or Nmbrs fields. This is where we catch the small differences: how "tussenvoegsel" (name prefixes) are stored, how we handle BSN (Dutch citizen service number), how we deal with part-time percentages and temporary agency contracts. The outcome is a readable mapping document that your data protection officer can also review.

3

Building in sprints

A working build you can test every two weeks, with the first integration often ready after a few sprints in a controllable environment. We work iteratively: one target system done well first, then the next. No big bang. At the end of each sprint we show progress in a short demo, and you can follow along with the test data.

4

Pilot phase with real hires

Before we switch the integration on for all vacancies, it runs first on a defined set: one department, one contract type, or one region. This surfaces edge cases (volunteers, interns, external consultants, payrollers) without them immediately affecting production. We resolve whatever we discover during the pilot before the wider rollout.

5

Rollout and management

Full rollout, training for your recruiters and HR team on what is visible in the audit trail, and a runbook for your IT department with escalation paths. Optionally, a maintenance agreement for the years ahead, as Recruitee, AFAS, Personio and Nmbrs all roll out updates that we need to keep monitoring. We pick up updates so you don't have to keep an eye on them yourself.

Tools and techniques we work with.

A Recruitee integration is not a black box. Below is what we use under the bonnet, so your IT team knows what they will be looking after.

Recruitee side

API and webhooks

The Recruitee REST API for reading and updating candidates, vacancies and custom fields. Webhook events for near real-time triggers on status changes, faster and more reliable than polling. OAuth tokens with scoped permissions, not a master account.

Target systems

HR, payroll and CRM APIs

AFAS GetConnector and UpdateConnector, Personio API, Nmbrs SOAP, Loket REST, Visma, HubSpot, Salesforce, BambooHR and Workday. For each target we know the quirks: rate limits, mandatory fields, how they handle dates, and which error codes signal what.

Document flow

DocuSign, AdobeSign, Microsoft 365

For clients who want to send the employment contract straight after hire: a DocuSign or AdobeSign integration that generates contracts based on the Recruitee candidate data, with fields for role, salary and start date pre-filled. Notifications via Microsoft 365, Teams, Slack or Google Workspace.

Architecture

Stateless or queue-based

Simple integrations run stateless: webhook in, transformation, target API out. For heavier or bursty flows we use a queue (RabbitMQ, Cloud Tasks, SQS) so we can retry when something fails. Monitoring runs through your existing stack or a lightweight dashboard we build. See also our broader approach to smart API integrations.

GDPR, security and which data to sync or not.

Candidate data is particularly sensitive. A Recruitee integration has to handle it deliberately, rather than pushing everything through automatically just because it can be done.

  • Lawful basis per fieldFor each Recruitee field we sync, we record the lawful basis (employment contract, legal obligation, legitimate interest). That way your data protection officer knows exactly which processing takes place under which basis.
  • Selective syncingBy default we only sync what the target system needs. Open answers from an application form, photos and interviewer feedback stay in Recruitee. What goes to HR is a deliberate choice.
  • Rejected candidatesThe hire sync does not run for candidates who were not hired. Their data remains within Recruitee under your organisation's standard retention policy. No covert processing in systems they don't belong in.
  • Encryption and access controlConnections run over TLS, secrets are kept in a secrets manager (Vault, AWS Secrets Manager, GCP Secret Manager), and only the integration process itself has access to the API tokens. No tokens in code or in log entries.
  • Access and rectification requestsIf a (former) candidate makes a GDPR request, you can see in one overview which systems their data has gone to. The audit trail makes it possible to erase or correct data in a targeted way.

Multi-tenant scenarios for agencies.

A specific case we see regularly: recruitment, secondment or staffing agencies recruiting for multiple clients within one Recruitee environment. Different rules apply there.

Client separation

A separate sync route per client

One client uses AFAS, the next Personio, a third their own HR system. We build a routing layer that, based on vacancy or label metadata, determines which integration should run for which candidate. One Recruitee, multiple target systems, no cross-contamination.

Custom mapping per client

Not all clients are the same

Client A would like a start date and cost centre, while client B only needs the job title. We make the mapping configurable per client rather than hard-coded, so that connecting a new client doesn't have to mean a new code project.

Reporting and invoicing

Connecting to your own administration

Many agencies want hires to land automatically in their own CRM or invoicing tool for placement fees. We link Recruitee status changes to your own workflow, possibly in combination with your own staffing platform.

Client visibility

Optional client portal

Some agencies want to give clients insight into which candidates are at which stage. This can be done with a restricted portal that reads from Recruitee, a pattern that is often added on top of the basic integration.

Frequently asked questions.

What clients usually want to know before starting a Recruitee integration.

Can you integrate Recruitee with AFAS?
Yes. AFAS is one of the most requested target systems for Recruitee integrations in the Netherlands. We work with the AFAS GetConnector and UpdateConnector APIs and map candidate fields from Recruitee (name, address, contract type, start date) to the correct AFAS employee fields. Common pitfalls, such as name prefixes, BSN, contract types and cost centres, are covered in the field mapping session.
What about integrating Recruitee with Personio or Nmbrs?
Both have an open REST API and are standard integrations for us. Personio is stronger for internationally operating companies; Nmbrs is common in the Netherlands for payroll administration. For both we use the hire trigger from Recruitee as the starting point, and we build the retry logic so that a temporary outage on the other side doesn't lose a candidate.
Can you also integrate ATSes other than Recruitee?
Yes. The same approach works for BulletJobs, OTYS, Carerix, BambooHR, Workday and other systems. The Recruitee page exists because it is the most requested route among Dutch SMEs and mid-market organisations, but we are not tied to a single vendor. For custom recruitment software, you can also take a look at our page on custom recruitment software.
What do you do with custom fields in Recruitee?
Recruitee lets you define your own fields on candidates and vacancies. We include these in the mapping. During the workshop, we review which custom fields you use, which of them are worth passing on to the target system, and what we do when a field is empty or inconsistently filled in.
How do you handle GDPR compliance when syncing candidate data?
Three principles: only the fields needed for the target system, an explicit legal basis for each sync (usually the employment contract or legitimate interest), and an audit trail showing when which data was transferred. For larger projects, we contribute a brief DPIA input for your data protection officer. Rejected candidates remain in Recruitee; by default we do not sync that data across.
What determines the cost and timeline?
Mainly: the number of target systems, the complexity of the field mapping (especially custom fields and contract types), whether you need bi-directional sync, and whether a document flow (DocuSign, AdobeSign) is involved. A straightforward Recruitee-to-AFAS integration is a project of a few sprints; a multi-tenant integration with several target systems and bi-directional sync requires considerably more work. We provide a reasoned estimate after the scoping session.
Should we manage it ourselves or do you do that?
Both are possible. You receive the full codebase in your own repository, plus documentation. Many clients opt for a light maintenance arrangement, because both Recruitee and the target system (AFAS, Personio, Nmbrs) regularly roll out API updates that need attention. This is a fixed monthly arrangement, not tied to hours.

Talk to us about your Recruitee integration.

A free half-hour introductory call. Tell us which systems Recruitee needs to work with and which flow is currently getting stuck, and we'll come back with an initial direction. We build Recruitee integrations as standalone projects and as part of wider enterprise software implementations or an Exact Online integration.

Edit content