

Recruitment to HR
Lever to BambooHR integration: hired candidate as a new employee profile in BambooHR
With an integration between Lever and BambooHR, a candidate hired in Lever becomes a new employee profile in BambooHR, with name, contact details, job title, department, location, start date and pay. KoppelHet translates values that are named differently in BambooHR and reports the result back on the opportunity in Lever.
What the integration does
Organisations that use BambooHR as HR system and recruit in Lever often retype hires. A job title, department or location is named slightly differently in Lever than in BambooHR, and the recruiter only notices a missed hire when HR asks about the new colleague.
- At the start we record the BambooHR job title, department, division and location per Lever value.
- Lever reports candidateHired; KoppelHet fetches opportunity, offer and posting.
- KoppelHet creates the profile in BambooHR and adds pay as a row with effective date.
- KoppelHet puts a note on the opportunity, with the result or the reason for an error.
What to watch for with Lever and BambooHR
- Job title, location and department are often named differently in Lever than in BambooHR. KoppelHet translates through a table, so a posting called Engineering - Platform still ends up in the BambooHR department Engineering.
- Data about a hire sits in Lever in the signed offer, the requisition and profile forms. KoppelHet sets one source per field, so HR knows where a value comes from.
- Lever stores the name as one field, sometimes with a trailing space. KoppelHet splits the name, keeps a name prefix with the last name and removes redundant spaces.
- The salary in a Lever offer has an interval, and BambooHR only accepts existing options in list fields. KoppelHet sets an annual salary as salary per year and an hourly rate as hourly per hour, so the pay row in BambooHR is not rejected.
- Lever has no place where an HR system reports back a result. KoppelHet puts a note on the opportunity with the BambooHR number or the reason for an error, and finds a missed hire after the five retries of the Lever webhook.
- A Lever posting carries the kind of employment as a label in commitment, such as Full-time, Part-time or Internship. BambooHR ignores employmentType on creation without an error; the status only comes across through employmentHistoryStatus. KoppelHet therefore translates the Lever label into a valid status in that field, otherwise the employee starts without a status.
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 BambooHR 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.
- Lever through the candidateHired webhook (data.opportunityId; HMAC-SHA256 over token and triggeredAt; five retries) and the Lever API with an API key - GET /opportunities/:opportunity, GET /opportunities/:opportunity/offers (fields anticipated_start_date, job_title, salary_amount, compensation_currency, salary_interval), GET /postings/:posting (categories) and POST /opportunities/:opportunity/notes.
- To BambooHR through create-employee (list fields only with valid options; employmentHistoryStatus with employeeStatusDate) and create-table-row v1.1 for compensation (payRate, payType, paidPer). API user with an own access level with Add New Employees.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Lever | Field in BambooHR | Notes |
|---|---|---|
name (één veld) | firstName en lastName | Split and without trailing spaces |
emails[0] | homeEmail | |
phones[0] | mobilePhone | |
Offer field job_title | jobTitle | Through a lookup table |
categories.department en team (posting) | division en department | |
categories.location (posting) | location | |
categories.commitment (posting) | employmentHistoryStatus | Through a lookup to the statuses in BambooHR |
Offer field anticipated_start_date | hireDate en employeeStatusDate | |
Offer fields salary_amount, compensation_currency en salary_interval | payRate, currency, payType en paidPer |
Related
Lever → Dayforce
Lever to Dayforce integration: signed offer as a validated new employee in Dayforce
Lever → Deel
Lever to Deel integration: hired candidate as own employee or EOR contract in Deel
Lever → HiBob
Lever to HiBob integration: hired candidate with offer as an employee in Bob
Lever → Oracle HCM Cloud
Lever to Oracle HCM integration: hired opportunity as a pending worker in Oracle