Recruitee logoRippling logo

Recruitment to HR

Recruitee to Rippling integration: hired candidates ready to hire

With an integration between Recruitee and Rippling, a candidate hired in Recruitee automatically appears in Rippling as a hire for review, with title, start date, entity, country and base pay. An admin completes the hire in Rippling, and onboarding and accounts in Rippling start from there without retyping.

What the integration does

Organisations that use Rippling for HR, devices and accounts but recruit in Recruitee still enter every hire by hand into Rippling's hire flow. Until that happens, nothing else Rippling arranges after a hire starts either, such as the laptop and the accounts.

  1. KoppelHet fetches the entities, locations, departments and employment types from Rippling daily.
  2. The recruiter marks the candidate as hired in Recruitee.
  3. KoppelHet asks Rippling which fields are mandatory for the work country and fills them from the offer.
  4. The hire is ready for review in Rippling; if something is missing, the KoppelHet platform shows which field.
  5. An admin completes the hire in Rippling's People section.
Recruitee → KoppelHet → RipplingSOURCERecruiteeTARGETRipplingKoppelHetmapping · logging · monitoringRecruitee → KoppelHet → RipplingSOURCERecruiteeTARGETRipplingKoppelHetmapping · logging · monitoring
Out: Hired candidate with name and email · Hire for review in Rippling · Entity, work country, location and department · Base pay with currency and period · Offer letter as a file

What to watch for with Recruitee and Rippling

  • Rippling never turns a hire through the API directly into an employee. It becomes a hire that an admin or manager reviews and completes in Rippling, so Rippling's approval rules keep applying.
  • Which fields are mandatory differs per country and Rippling can change them. KoppelHet requests the requirements for the work country before creating the hire, and the Netherlands is on the list of supported countries.
  • Rippling wants pay as amount, currency and period, for example per year or per month. Recruitee only knows amount and currency, so the period is agreed per job.
  • For a direct hire the legal entity is mandatory, for a hire through employer of record it is not. KoppelHet chooses which of the two it is based on the job.
  • If Rippling recognises the candidate as a former employee or a duplicate hire, it returns the existing role. KoppelHet then does not create a second hire but passes the case to HR.
  • The candidate number from Recruitee is sent to Rippling. A repeated notice from Recruitee gets the same key, so a network failure does not produce a duplicate hire.
  • After the hire Rippling also manages accounts in other applications. Agree whether Rippling or Entra ID is the source for that; the integration from Recruitee ends at the hire.

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 use Rippling's own recruiting module?

That is an option. If you are happy with Recruitee, you keep that way of working; the integration makes sure the hire is still ready in Rippling.

What if a mandatory field is missing?

The hire is then incomplete in Rippling and HR sees in the KoppelHet platform which field is missing. After completing it in Recruitee the same hire continues.

Can we complete several hires at once?

Yes, in Rippling, per country and worker type. Full-time employees from different countries cannot be done in one go.

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 Rippling through REST API v2 (rest.ripplingapis.com) - GET /hire-requirements/ with country_code and hire_type, then POST /hires/ with one to five hires per call and an Idempotency-Key. The result has status ready_for_review, incomplete (with missing_required_fields) or failed, and existing_role_id for a duplicate or rehire.
  • API token with the hires.read-write and hire-requirements.read scopes, plus read scopes for employment types, work locations and departments; the Rippling API SKU is required. An offer letter goes through the Files API.

Which fields are transferred

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

Field in RecruiteeField in RipplingNotes
namepersonal.first_name, personal.last_nameRippling asks for the legal name
emails[0]personal.invite_email
placement_locations[0] (land)work_location.country_code
placement_locations[0] (kantoor)work_location.location_idEmpty for a remote hire
Functie (profielveld)employment.title
Startdatum (profielveld)employment.start_date
Vacature of plaatsingslocatieemployment.legal_entity_idDutch jobs to the Dutch entity
offer.departmentemployment.department_id
Contractsoort (profielveld)employment.employment_type_id
Profielveld salary (amount, currency)compensation.base_pay_amount en base_pay_period
Kandidaat-IDrelated_records.ats_applicant_id

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.