Recruitee logoKe

Recruitment to HR

Recruitee to Keka integration: hired candidates as employees in Keka HR

With an integration between Recruitee and Keka, a candidate hired in Recruitee automatically becomes an employee in Keka, with employee number, name, email, mobile number, date of joining, department, business unit, location, legal entity and job title. KoppelHet stores what Keka returns with the candidate, so a second notice does not create a duplicate employee.

What the integration does

Organisations with Keka as HR system that recruit their European roles in Recruitee have two separate worlds. Every hire is then entered into Keka by hand, and assigning the right legal entity and location regularly goes wrong.

  1. The recruiter marks the candidate as hired in Recruitee and fills the profile fields for work email, start date and entity.
  2. KoppelHet translates job and placement location into the names of department, business unit, location and entity as they appear in Keka.
  3. KoppelHet creates the employee in Keka.
  4. Keka's response is stored in the KoppelHet platform, linked to the candidate from Recruitee.
  5. HR completes in Keka the parts the API does not create, such as salary and leave policy.
Recruitee → KoppelHet → KekaSOURCERecruiteeTARGETKekaKekaKoppelHetmapping · logging · monitoringRecruitee → KoppelHet → KekaSOURCERecruiteeTARGETKekaKekaKoppelHetmapping · logging · monitoring
Out: Hired candidate · Employee in Keka HR · Department, business unit and location · Legal entity · Job title and secondary job title

What to watch for with Recruitee and Keka

  • Keka accepts only a fixed list of fields for a new employee and rejects any other field. Custom fields or profile questions from Recruitee therefore do not come along on creation, but stay in Recruitee or become a task for HR.
  • Department, business unit, location and legal entity are text fields in the Keka API. KoppelHet translates the job and placement location from Recruitee into exactly the names that exist in Keka, so no variant with a different spelling is created.
  • Gender is a number from 0 to 3 in Keka, and the documentation does not say which number means what. KoppelHet therefore leaves the field empty until the values are confirmed in the test environment.
  • The date of joining is a date-time in Keka. KoppelHet converts the start date from Recruitee with a fixed time zone, so a Dutch start date does not shift by a day.
  • The Keka API allows fifty requests per minute. At a peak in hires, for example a group of starters, KoppelHet spreads the calls instead of running into an error.
  • Keka provides a separate demo environment on kekademo.com. KoppelHet tests the creation there, before the integration runs on the company's live Keka environment.

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

Why not Keka's recruitment module?

It exists, but teams recruiting in Europe have often chosen Recruitee. The integration lets both coexist.

Does the salary from the offer come along?

Not through this call. The public API only creates the employee, so HR sets up the salary structure in Keka.

Does this work for several entities?

Yes. Per job we record which legal entity and business unit the hire belongs to.

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 (hire stage category, X-Recruitee-Signature header) and the ATS API for offer, placement location and profile fields.
  • To Keka through POST https://{company}.keka.com/api/v1/hris/employees with an access token from login.keka.com (scope kekaapi, client_id, client_secret and api_key). Fields employeeNumber, displayName, firstName, middleName, lastName, email, mobileNumber, gender, dateOfBirth, dateJoined, department, businessUnit, jobTitle, secondaryJobTitle, location, legalEntity and nationality; additionalProperties is off. Response with succeeded, message and data.

Which fields are transferred

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

Field in RecruiteeField in KekaNotes
namefirstName, middleName en lastNameName prefix separate
Zakelijk e-mailadres (profielveld)email
phones[0]mobileNumber
Startdatum (profielveld)dateJoinedDate-time; time zone fixed
offer.departmentdepartmentName as in Keka
placement_locations[0]location
Vacature (vertaaltabel)businessUnit en legalEntity
VacaturetiteljobTitle
Personeelsnummer volgens reeks van HRemployeeNumber

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.