Integrations / Lever
Lever
Recruiting pipeline in Lever: opportunities, job postings, stages and notes.
10 actions
API key
7 read3 write
Calls api.lever.co
Connect
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "lever" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();Permissions requested
This toolkit uses a single credential and requests no scopes.
Actions
Add notewritelever.add_noteAdd a note to a candidate opportunity. Use @username to mention and notify a teammate.
| Input | Type | Description | |
|---|---|---|---|
opportunity_id | string | Required | Opportunity ID |
value | string | Required | The note text |
secret | boolean | Optional | Only visible to users with sensitive-information access |
score | integer | Optional | Optional score from 1 (strong no) to 4 (strong yes) |
notify_followers | boolean | Optional | Notify everyone following the candidate |
perform_as | string | Optional | Optional: ID of the Lever user to add the note as |
await setu.execute({
userId: "user_1",
action: "lever.add_note",
input: {
"opportunity_id": "<opportunity_id>",
"value": "<value>"
},
});Archive opportunitywritelever.archive_opportunityArchive a candidate opportunity with a reason (use list_archive_reasons).
| Input | Type | Description | |
|---|---|---|---|
opportunity_id | string | Required | Opportunity ID |
reason | string | Required | Archive reason ID |
clean_interviews | boolean | Optional | Remove pending interviews when archiving |
perform_as | string | Optional | Optional: ID of the Lever user to perform this as |
await setu.execute({
userId: "user_1",
action: "lever.archive_opportunity",
input: {
"opportunity_id": "<opportunity_id>",
"reason": "<reason>"
},
});Get opportunityreadlever.get_opportunityGet one candidate opportunity by ID: contact details, current stage, owner, tags, sources and links.
| Input | Type | Description | |
|---|---|---|---|
opportunity_id | string | Required | Opportunity ID |
await setu.execute({
userId: "user_1",
action: "lever.get_opportunity",
input: {
"opportunity_id": "<opportunity_id>"
},
});List archive reasonsreadlever.list_archive_reasonsList the reasons a candidate can be archived with (hired and non-hired), to use with archive_opportunity.
| Input | Type | Description | |
|---|---|---|---|
type | string | Optional | Only this kind of reason |
await setu.execute({
userId: "user_1",
action: "lever.list_archive_reasons",
input: {},
});List notesreadlever.list_notesList the notes on a candidate opportunity.
| Input | Type | Description | |
|---|---|---|---|
opportunity_id | string | Required | Opportunity ID |
await setu.execute({
userId: "user_1",
action: "lever.list_notes",
input: {
"opportunity_id": "<opportunity_id>"
},
});List opportunitiesreadlever.list_opportunitiesList candidate opportunities, optionally filtered by job posting, stage, email, tag or dates (Unix milliseconds). Returns one page; pass next as offset for more.
| Input | Type | Description | |
|---|---|---|---|
posting_id | string | Optional | Only opportunities applied to this posting ID |
stage_id | string | Optional | Only opportunities currently in this stage ID |
email | string | Optional | Only opportunities for this email address |
tag | string | Optional | Only opportunities with this tag (case sensitive) |
created_at_start | integer | Optional | Created at or after this Unix time in milliseconds |
updated_at_start | integer | Optional | Updated at or after this Unix time in milliseconds |
limit | integer | Optional | Page size, 1 to 100 |
offset | string | Optional | The next value from the previous page |
await setu.execute({
userId: "user_1",
action: "lever.list_opportunities",
input: {},
});List job postingsreadlever.list_postingsList job postings in Lever, optionally filtered by state, team, department or location.
| Input | Type | Description | |
|---|---|---|---|
state | string | Optional | Posting state |
team | string | Optional | Team name (case sensitive) |
department | string | Optional | Department name (case sensitive) |
location | string | Optional | Location (case sensitive) |
await setu.execute({
userId: "user_1",
action: "lever.list_postings",
input: {},
});List pipeline stagesreadlever.list_stagesList the hiring pipeline stages (IDs and names) so you can filter opportunities or move one to a stage.
No input.
await setu.execute({
userId: "user_1",
action: "lever.list_stages",
input: {},
});List usersreadlever.list_usersList Lever users (recruiters, hiring managers) with their IDs and emails, for owners and perform_as values.
| Input | Type | Description | |
|---|---|---|---|
email | string | Optional | Only the user with this exact email |
await setu.execute({
userId: "user_1",
action: "lever.list_users",
input: {},
});Move opportunity to stagewritelever.update_opportunity_stageMove a candidate opportunity to another pipeline stage. Use list_stages to find stage IDs.
| Input | Type | Description | |
|---|---|---|---|
opportunity_id | string | Required | Opportunity ID |
stage | string | Required | ID of the stage to move to |
perform_as | string | Optional | Optional: ID of the Lever user to perform this as |
await setu.execute({
userId: "user_1",
action: "lever.update_opportunity_stage",
input: {
"opportunity_id": "<opportunity_id>",
"stage": "<stage>"
},
});