Lever MCP server

Prebuilt SnapLogic agentic-tool pipelines that let an LLM read from and act on Lever, callable as MCP tools via Pipeline Execute. Published in the SnapLogic pattern catalog.

Overview

These tools give agents full read and write access to Lever, covering the complete recruiting workflow. Use them to search and manage candidates, look up reference data, create postings and requisitions, schedule interviews, and archive or progress candidates through the pipeline.

For setup instructions, see SnapLogic MCP Server quickstart.

Example Prompts

  • Add a note that this candidate is available to start in three weeks
  • Log 'strong culture fit, wants remote' on opportunity 250d8f03
  • Note that we should fast-track this applicant and notify the followers
  • Record on their profile that they declined the phone screen slot
  • Tag this candidate as 'referral' and 'priority'
  • Add the 'remote' tag to opportunity 250d8f03
  • Label this applicant 'senior' so we can find them later
  • Tag everyone from this hiring event with 'careers-fair-2026'
  • Reject this candidate with reason 'Not enough experience'
  • Archive opportunity 250d8f03 as hired

Tools

Tool Name Functions
LeverAddNote Add a note to a candidate's profile, attributed to a Lever user.
LeverAddTags Add tags to a candidate without removing existing ones.
LeverArchiveOpportunity Archive or reject a candidate with a specific archive reason.
LeverCreateOpportunity Create a new candidate (opportunity) in the pipeline.
LeverCreatePosting Create a new job posting.
LeverCreateRequisition Create a headcount requisition to track approved hires.
LeverGetContact Get a candidate's contact details, including email addresses.
LeverGetOpportunity Retrieve one candidate's full opportunity record by id.
LeverGetResumes Get the resumes attached to a candidate, with signed download URLs.
LeverListArchiveReasons List the configured archive/rejection reasons and their ids.
LeverListFeedback Retrieve a candidate's interview feedback and scorecards.
LeverListFiles List a candidate's attached files other than the resume.
LeverListInterviews List a candidate's scheduled and past interviews.
LeverListOffers List the offers extended to a candidate and their status.
LeverListOpportunities Search the candidate pipeline by stage, posting, tag, email or origin.
LeverListPostings List job postings, filtered by state, location or team.
LeverListStages List the hiring pipeline stages and their ids.
LeverListUsers List Lever users and resolve the user id needed for perform_as.
LeverSchedulePanel Schedule one or more interviews by creating a panel on a candidate.
LeverUpdateStage Move a candidate to a different pipeline stage.

Set up the MCP Server tools

  1. Download lever_tools.zip.
  2. In SnapLogic Designer, open the target project space (or create one), then choose Import Project / Import Pipelines and select the downloaded lever_tools.zip. Designer unpacks each pipeline into the project.
  3. Attach the required account to the connectivity snaps (see Connection Setup).
  4. Expose the project as an MCP server — each pipeline becomes a tool named after its label. New to this? Start with the MCP quickstart, then use the MCP Server Pipeline Builder to generate the server from the imported pipelines.

Configure account

Attach an API Suite account (OAuth 2.0 or Bearer token) to the HTTP Client snap in Designer after import.

These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute.

See the SnapLogic account documentation for this connector: API Suite Account Configuration.

Important: These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute. Credentials live in the SnapLogic account store, never in the pipeline JSON.

LeverAddNote

Adds a note to a candidate's profile, with an option to notify followers. Use it to record a call summary, a scheduling constraint, or any observation that should live on the candidate's profile.

Parameter Type Default Description
opportunity_id* string

Lever opportunity (candidate) id the note is added to.

note* string

Note text written to the profile, sent as the note's value.

perform_as* string

Lever user id the action is attributed to, sent as the perform_as query parameter; resolve it with Lever List Users.

notify_followers string

Set to 'true' to notify everyone following the candidate; omitted from the request body when blank (Lever defaults to no notification).

* Required parameter.

Try asking:

  • Add a note that this candidate is available to start in three weeks
  • Log 'strong culture fit, wants remote' on opportunity 250d8f03
  • Note that we should fast-track this applicant and notify the followers
  • Record on their profile that they declined the phone screen slot

LeverAddTags

Adds tags to a candidate without removing existing ones. Use it to label candidates for later filtering and retrieval by tag.

Parameter Type Default Description
opportunity_id* string

Lever opportunity (candidate) id the tags are added to.

tags* array

Tags to add, e.g. ["referral", "priority"]. Existing tags are kept.

perform_as* string

Lever user id the action is attributed to, sent as the perform_as query parameter; resolve it with Lever List Users.

* Required parameter.

Try asking:

  • Tag this candidate as 'referral' and 'priority'
  • Add the 'remote' tag to opportunity 250d8f03
  • Label this applicant 'senior' so we can find them later
  • Tag everyone from this hiring event with 'careers-fair-2026'

LeverArchiveOpportunity

Archives a candidate with a specific reason, which is Lever's mechanism for both rejections and successful outcomes such as Hired. Use LeverListArchiveReasons first to find the correct reason ID, and optionally cancel future interviews at the same time.

Parameter Type Default Description
opportunity_id* string

Lever opportunity (candidate) id to archive.

reason_id* string

Archive reason id written as the archive reason; resolve it with Lever List Archive Reasons. The tool sends the id, not the reason text.

perform_as* string

Lever user id the action is attributed to, sent as the perform_as query parameter; resolve it with Lever List Users.

clean_interviews string

Set to 'true' to cancel the candidate's future interviews as part of the archive; omitted from the request body when blank.

* Required parameter.

Try asking:

  • Reject this candidate with reason 'Not enough experience'
  • Archive opportunity 250d8f03 as hired
  • Close this applicant out and cancel their upcoming interviews
  • We've filled the role — archive the remaining candidates on this posting

LeverCreateOpportunity

Adds a new candidate to the hiring pipeline with their name, optional contact details, a starting stage, and linked postings. A perform_as user ID is required to attribute the creation to the correct recruiter.

Parameter Type Default Description
perform_as* string

Lever user id the creation is attributed to, sent as the perform_as query parameter; resolve it with Lever List Users.

name* string

Candidate's full name, e.g. Jane Doe.

emails array

Candidate email addresses, e.g. ["[email protected]"]. Omitted from the request body when blank.

headline string

Headline summarising the candidate's current title and company. Omitted from the request body when blank.

stage string

Stage id the candidate is placed in on creation; resolve it with Lever List Stages. Omitted when blank.

postings array

Posting ids to link the candidate to, e.g. ["<postingId>"]; resolve them with Lever List Postings.

tags array

Tags to apply to the new candidate, e.g. ["referral"].

* Required parameter.

Try asking:

  • Add Jane Doe, [email protected], as a candidate for the Backend Engineer posting
  • Create a candidate from this resume and tag them 'referral'
  • Add this sourced lead to the pipeline in the phone screen stage
  • Put this person into Lever against both the Platform and Data postings

LeverCreatePosting

Creates a new job posting with a title and optional state, team, location, and description content. A perform_as user ID is required to record the posting's creator.

Parameter Type Default Description
perform_as* string

Lever user id recorded as the posting's creator, sent as the perform_as query parameter; resolve it with Lever List Users.

text* string

Posting title, e.g. Senior Backend Engineer.

state string

Posting state: published, internal or draft. Omitted from the request body when blank, in which case Lever creates a draft.

team string

Owning team, e.g. Platform. Omitted from the request body when blank.

location string

Posting location, e.g. Berlin. Omitted from the request body when blank.

content object

Posting content object holding the description and list sections. Omitted from the request body when blank.

* Required parameter.

Try asking:

  • Open a posting for a Senior Backend Engineer on the Platform team in Berlin
  • Create a draft posting for a Product Designer
  • Publish an internal-only posting for the Data Analyst role
  • Set up a posting for this role using this job description

LeverCreateRequisition

Creates a headcount requisition to track approved hires behind a role, with optional requisition code, headcount, and owner. Use it for approved budget or headcount requests rather than job postings.

Parameter Type Default Description
perform_as* string

Lever user id the creation is attributed to, sent as the perform_as query parameter; resolve it with Lever List Users.

name* string

Requisition name, e.g. Backend Engineer - Platform.

requisition_code string

Your own requisition code, e.g. ENG-2026-014, sent as requisitionCode. Omitted when blank.

headcount_total string

Number of approved hires; parsed to an integer and sent as headcountTotal. Omitted when blank.

owner_id string

Lever user id of the requisition owner, sent as owner; resolve it with Lever List Users. Omitted when blank.

* Required parameter.

Try asking:

  • Open a requisition for two backend engineers with code ENG-2026-014
  • Create a headcount req for the Platform team owned by the hiring manager
  • Set up a requisition for one Product Designer hire
  • Log the approved headcount for this role in Lever

LeverGetContact

Retrieves the person-level contact record for a candidate, including name, email addresses, phone numbers, and location. Use the contact ID from LeverGetOpportunity to call this tool.

Parameter Type Default Description
contact_id* string

Lever contact id, taken from an opportunity's contact field (Lever Get Opportunity). This is not the opportunity id.

* Required parameter.

Try asking:

  • What's this candidate's email address?
  • Get me the phone number and location for this applicant
  • I want to email this candidate — pull their contact details first
  • Show the contact record behind this opportunity

LeverGetOpportunity

Retrieves the full opportunity record for a single candidate, including their stage, tags, source, and linked applications. Use it when a specific candidate has been identified and you need their current status.

Parameter Type Default Description
opportunity_id* string

Lever opportunity (candidate) id to retrieve, appended to /opportunities/.

* Required parameter.

Try asking:

  • Pull up the full profile for this candidate
  • What stage is opportunity 250d8f03 in right now?
  • Who owns this candidate and where did they come from?
  • Show me the tags and application history on this applicant

LeverGetResumes

Returns the resumes attached to a candidate, including file details and a signed download URL for each. Use it to read, screen, or summarise a candidate's CV.

Parameter Type Default Description
opportunity_id* string

Lever opportunity (candidate) id whose resumes are fetched.

* Required parameter.

Try asking:

  • Get the CV for this candidate
  • Download the resume on opportunity 250d8f03
  • What resumes do we have on file for this applicant?
  • Summarise this candidate's CV against the job description

LeverListArchiveReasons

Lists the archive and rejection reasons configured in Lever, with their IDs. Use it to find the correct reason ID before calling LeverArchiveOpportunity.

Parameter Type Default Description
limit string 100

Page size, 1-100 (default 100).

offset string

Opaque cursor token taken from a previous response's next field; omit for the first page.

Try asking:

  • What rejection reasons do we have configured?
  • What's the archive reason id for 'Hired'?
  • List our archive reasons
  • Which reason should I use to reject someone for lack of experience?

LeverListFeedback

Returns the interview feedback forms and scorecards for a candidate, including scores and submitter details. Use it to review interviewer assessments before a hiring decision.

Parameter Type Default Description
opportunity_id* string

Lever opportunity (candidate) id whose feedback forms are listed.

limit string 100

Page size, 1-100 (default 100).

offset string

Opaque cursor token taken from a previous response's next field; omit for the first page.

* Required parameter.

Try asking:

  • What did the interviewers say about this candidate?
  • Show me the scorecard scores for opportunity 250d8f03
  • Summarise all the feedback on this applicant so far
  • Has anyone left feedback yet, and who's still outstanding?

LeverListFiles

Lists the non-resume attachments on a candidate, such as cover letters, portfolios, and take-home assignments, with a signed download URL for each file. For the CV specifically, use LeverGetResumes.

Parameter Type Default Description
opportunity_id* string

Lever opportunity (candidate) id whose attachments are listed.

* Required parameter.

Try asking:

  • What files are attached to this candidate?
  • Get me the cover letter for this applicant
  • Download the take-home assignment they submitted
  • List every attachment on opportunity 250d8f03

LeverListInterviews

Lists a candidate's scheduled and past interviews, including date, duration, interviewers, and location. Use it to review the interview history before booking new sessions with LeverSchedulePanel.

Parameter Type Default Description
opportunity_id* string

Lever opportunity (candidate) id whose interviews are listed.

limit string 100

Page size, 1-100 (default 100).

offset string

Opaque cursor token taken from a previous response's next field; omit for the first page.

* Required parameter.

Try asking:

  • When is this candidate's next interview?
  • Who's interviewing opportunity 250d8f03 and for how long?
  • List all the interviews booked for this applicant
  • Have we already run the onsite for this candidate?

LeverListOffers

Lists the offers extended to a candidate, including their status and key terms. Use it to check whether an offer has been sent, where it sits in approval, and what was put on the table.

Parameter Type Default Description
opportunity_id* string

Lever opportunity (candidate) id whose offers are listed.

limit string 100

Page size, 1-100 (default 100).

offset string

Opaque cursor token taken from a previous response's next field; omit for the first page.

* Required parameter.

Try asking:

  • Has this candidate been sent an offer yet?
  • What's the offer status on opportunity 250d8f03?
  • Show me the offer terms for this applicant
  • Which offers are still unsigned?

LeverListOpportunities

Searches the Lever candidate pipeline by stage, posting, tag, email, or origin to find matching opportunities. Use it when the user describes candidates by role or stage rather than by ID.

Parameter Type Default Description
stage_id string

Pipeline stage id to filter on, e.g. the id behind 'Onsite'; resolve it with Lever List Stages. Omit for all stages.

posting_id string

Posting id to filter on, so only candidates linked to that role come back; resolve it with Lever List Postings.

tag string

Single tag to filter on, e.g. referral. Omit to ignore tags.

email string

Candidate email address to filter on, e.g. [email protected].

origin string

Origin to filter on, e.g. sourced, applied or referred.

limit string 100

Page size, 1-100 (default 100).

offset string

Opaque cursor token taken from a previous response's next field; omit for the first page.

Try asking:

  • Who's currently in the onsite stage for the Backend Engineer posting?
  • Show me every candidate tagged 'referral'
  • Find the candidate with email [email protected]
  • List the first 25 candidates that came in as sourced rather than applied
  • Who's in the pipeline for this posting right now?

LeverListPostings

Lists job postings in Lever, with optional filters for state, location, and team. Use it to see what roles are open or to look up a posting ID before filtering candidates or creating a new opportunity.

Parameter Type Default Description
state string

Posting state to filter on: published, internal, closed, draft, pending or rejected. Omit for all states.

location string

Location to filter postings on, e.g. Berlin.

team string

Team to filter postings on, e.g. Platform.

limit string 100

Page size, 1-100 (default 100).

offset string

Opaque cursor token taken from a previous response's next field; omit for the first page.

Try asking:

  • What roles are we hiring for right now?
  • List all published postings in Berlin
  • Find the posting id for the Backend Engineer role
  • Show open postings for the Platform team
  • Which postings are still in draft?

LeverListStages

Lists the hiring pipeline stages in Lever, with their IDs and names. Use it to resolve a stage name to an ID before filtering candidates or moving someone to a new stage.

Parameter Type Default Description
limit string 100

Page size, 1-100 (default 100).

offset string

Opaque cursor token taken from a previous response's next field; omit for the first page.

Try asking:

  • What stages are in our hiring pipeline?
  • What's the stage id for 'Onsite'?
  • List the pipeline stages in order
  • Which stage should I move someone to after phone screen?

LeverListUsers

Lists Lever users, optionally filtered by email, to look up user IDs. Every write tool requires a perform_as user ID, so use this to resolve the acting user before logging notes, tags, stage moves, or other actions.

Parameter Type Default Description
email string

Exact email address to filter on, e.g. [email protected]. Omit to list all users.

limit string 100

Page size, 1-100 (default 100).

offset string

Opaque cursor token taken from a previous response's next field; omit for the first page.

Try asking:

  • What's the Lever user id for [email protected]?
  • Who are the recruiters on our team?
  • List everyone with access to Lever
  • Find the hiring manager's user id so I can log this note as them

LeverSchedulePanel

Books one or more interviews for a candidate by creating an interview panel on their opportunity. Supply the interview details such as subject, date, duration, location, and interviewers, along with a perform_as user ID.

Parameter Type Default Description
opportunity_id* string

Lever opportunity (candidate) id the interview panel is created on.

perform_as* string

Lever user id the scheduling is attributed to, sent as the perform_as query parameter; resolve it with Lever List Users.

panel* object

The interview panel, sent as the request body verbatim — typically a timezone plus an interviews array with subject, note, date (ms epoch), duration, location, feedbackTemplate and interviewers.

* Required parameter.

Try asking:

  • Schedule an on-site for this candidate next Tuesday afternoon
  • Book a 30-minute phone screen with Rachel for opportunity 250d8f03
  • Set up a three-round interview panel for this candidate in Pacific time
  • Add a technical interview with these two interviewers to their loop

LeverUpdateStage

Moves a candidate to a different stage in the hiring pipeline. Use LeverListStages first to find the correct stage ID.

Parameter Type Default Description
opportunity_id* string

Lever opportunity (candidate) id to move.

stage_id* string

Target stage id written to the opportunity; resolve it with Lever List Stages. The tool sends the id, not a stage name.

perform_as* string

Lever user id the action is attributed to, sent as the perform_as query parameter; resolve it with Lever List Users.

* Required parameter.

Try asking:

  • Move this candidate to the Onsite stage
  • Advance opportunity 250d8f03 to Offer
  • Push this applicant forward to phone screen
  • The debrief was positive — progress them to the next stage