Lever
What Shuttio reads from Lever, where it lands in Odoo, Ashby, Lever, Greenhouse, which permissions it needs and why, and what does not move.
Last updated: 7 Nov 2026
A Lever Data API key and your Lever region (US or EU). You create the key in Lever under Settings, Integrations and API, API credentials, with access to the resources you want moved (EEO responses with personal data, to move EEO answers; confidential access if you have confidential postings), and paste it.
Object by object: What objects are supported for Lever migrations.
What Shuttio reads and moves
The list below describes the move into Odoo. Where Clarify or Odoo differ, the destination's own article says so.
- Postings: As Odoo job positions, with the team or department, the posting's owner as recruiter (when the email matches an Odoo user) and the open headcount of its requisitions as the target. The posting's state, locations, commitment, level, hiring manager, followers, requisitions, tags, links and content (description, lists, closing) go in the job description. A job already in Odoo with the same name is linked to.
- Teams, departments and locations: A Lever department as an Odoo department and a team as a department under it. A posting location as a work location at your company's address.
- Candidates: In Odoo 18, as Odoo candidates, one per Lever contact: name, first email, first phone, LinkedIn address and tags. A candidate already in Odoo with the same email is linked to. Odoo 17 and 19 have no separate Candidates model: the same fields sit on each application.
- Opportunities: As Odoo applications on the posting of their newest application: the stage (by name, in Lever's pipeline order), hired opportunities in a Hired stage, other archived ones archived with their archive reason, the source and the owner (when the email matches an Odoo user) and tags. Opportunities with no posting come as applications without a job.
- Notes, feedback, interviews, offers, referrals and forms: Every note (private ones too), every feedback form with every field filled in (scores, comments, yes/no, text), every interview (date, duration, place, interviewers, video link), every interview panel, every offer (status, fields such as salary, signatures, document names), every referral and every profile form, as notes on the application. Each application also gets a details note: its stage history, sources, followers, data-protection status, the application answers and comments, the contact's headline, location, links, and the names of attached files and resumes with the schools and positions parsed from them.
- EEO data: Gender, race or ethnicity, veteran and disability status, as one note on the application titled "EEOC self-identification (from Lever)", with every answer, including "decline to self-identify". The API key needs access to EEO responses with personal data; without it the run goes on and says EEO was not moved.
- Requisitions: As text in the description of the posting that names them: code, name, status, headcount and hired, hiring manager, owner, location, notes and custom fields.
Where each thing lands
| Lever object | In Odoo | In Ashby | In Lever | In Greenhouse |
|---|---|---|---|---|
| Departments and teams | Departments (Odoo Employees) | Its own object, or the one you already have with that name | Its own object, or the one you already have with that name | Its own object, or the one you already have with that name |
| Posting locations | Work locations (Odoo Employees) | Its own object, or the one you already have with that name | Its own object, or the one you already have with that name | Its own object, or the one you already have with that name |
| Postings | Job positions (Odoo Employees) | Its own object, or the one you already have with that name | Its own object, or the one you already have with that name | Its own object, or the one you already have with that name |
| Candidates | Candidates (Odoo Recruitment, version 18) | Its own object, or the one you already have with that name | Its own object, or the one you already have with that name | Its own object, or the one you already have with that name |
| Opportunities | Applications (Odoo Recruitment) | Its own object, or the one you already have with that name | Its own object, or the one you already have with that name | Its own object, or the one you already have with that name |
Notes, tasks, meetings, calls, files, owners and lists depend on the destination. This is the row for Lever, generated from the same tables the runner uses:
Into Odoo
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|---|---|---|---|---|---|---|---|---|
| Lever | Departments and teams, Posting locations, Postings, Candidates, Opportunities | Yes | No | No | No | No | No | No | No |
Into Ashby
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|---|---|---|---|---|---|---|---|---|
| Lever | Departments and teams, Posting locations, Postings, Candidates, Opportunities | Yes | No | No | No | No | No | Yes | No |
Into Lever
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|---|---|---|---|---|---|---|---|---|
| Lever | Departments and teams, Posting locations, Postings, Candidates, Opportunities | Yes | No | No | No | No | No | Yes | No |
Into Greenhouse
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|---|---|---|---|---|---|---|---|---|
| Lever | Departments and teams, Posting locations, Postings, Candidates, Opportunities | Yes | No | No | No | No | No | Yes | No |
Each destination's own article says how its data is written: Odoo, Ashby, Lever, Greenhouse.
Permissions and why
| What | Why Shuttio needs it |
|---|---|
| Your Lever region | US or EU. Choose EU if your Lever account is in Lever's European data centre; every request then goes to the EU host (api.eu.lever.co) instead of api.lever.co. The choice is stored with the connection. |
| A Data API key | Lever's Data API takes the key as the user name of a Basic login, so a pasted key is all Shuttio needs; OAuth in Lever is for registered partner apps. Create it in Lever under Settings, Integrations and API, API credentials, Generate new key. Shuttio checks the key against Lever before it saves anything, and never writes to Lever. |
| Confidential access | Lever sets confidential access only when the key is created. Without it, confidential postings and opportunities are not returned, so they do not move. Create the key with confidential access if you have any. |
| The resources it reads | opportunities, postings, users, stages, archive reasons, requisitions, notes, feedback, interviews, panels, offers, referrals, forms, files and resumes. A resource the key may not read only leaves that data out, and the run says so. |
| EEO responses with personal data | Moves the candidates' EEO self-identification answers (gender, race or ethnicity, veteran and disability status) as one note on each application. Create the key with access to EEO responses with personal data; without it the run goes on and says EEO was not moved. |
Lever allows about 10 requests a second per key, and its notes, feedback, interviews and offers are read one opportunity at a time, so a large account takes hours; the run waits when Lever asks it to slow down, and pauses until you resume it if Lever keeps pushing back. The key is stored encrypted and deleted 14 days after the migration finishes. You can delete the key at any time in Lever.
Known limits
- Files and resumes themselves: Only the file names are carried. Lever's download links need your API key, and the Odoo app and import package are not used for recruitment.
- Odoo users: A user is a login and a paid seat, so none is created. An owner or recruiter is matched to an existing Odoo user by email.
- Confidential postings and opportunities: Lever returns them only to a key created with confidential access.
- Odoo without the Recruitment app: The Recruitment app must be installed; if it is not, the run stops with one sentence and writes nothing.
- The Odoo app and the import package: Recruitment records are written through your Odoo API key only.
- Rate limits: Lever allows about 10 requests a second per key. Shuttio waits when Lever asks, and pauses the run if it keeps pushing back; Resume carries on.
- Emails: Shuttio reads no mailbox. Notes and feedback Lever kept on an opportunity are read as notes of that application.
Not answered here? Email help@shuttio.com.