Lever Automation
Automate your recruiting operations in Lever ATS directly from Claude Code. Manage job postings, track candidate pipelines, update requisitions, and query opportunities without leaving your terminal.
Toolkit docs: composio.dev/toolkits/lever
Setup
- •Add the Composio MCP server to your configuration:
code
https://rube.app/mcp
- •Connect your Lever account when prompted by running any Lever command. The agent will provide an OAuth link to authenticate.
- •Ensure your Lever API key has sufficient scopes for the operations you need (read/write access to postings, opportunities, requisitions).
Core Workflows
1. List and Filter Job Postings
Retrieve all job postings with optional filtering by state, team, department, location, or commitment type.
Tool: LEVER_LIST_POSTINGS
Key parameters:
- •
state-- filter bypublished,internal,closed,draft,pending,rejected - •
team,department,location,commitment-- narrow results by organizational attributes - •
limit(1-100) andoffset-- paginate through large posting sets - •
tag-- filter by posting tag
Example prompt: "List all published engineering job postings in Lever"
2. Browse Candidate Opportunities
List all opportunities in the hiring pipeline with rich filtering for pipeline analysis and candidate tracking.
Tool: LEVER_LIST_OPPORTUNITIES
Key parameters:
- •
posting_id,stage_id,tag-- filter by posting, pipeline stage, or tag - •
email,contact_id-- find opportunities for a specific candidate - •
archived-- filter by archived status (true/false) - •
created_at_start,created_at_end-- date range filtering (ISO 8601) - •
expand-- expandapplications,contact,owner,stage,stageChanges,sources,sourcedByinto full objects
Example prompt: "Show me all active opportunities for the Senior Engineer posting, expanded with contact details"
3. Get Opportunity Details
Fetch comprehensive details about a single candidate opportunity including contact info, stage progression, sources, and applications.
Tool: LEVER_GET_OPPORTUNITY
Key parameters:
- •
opportunity(required) -- the unique opportunity UID - •
expand-- comma-separated fields to expand:contact,stage,owner
Example prompt: "Get full details for opportunity 31c9716c-d4e3-47e8-a6a1-54078a1151d6 with contact and stage expanded"
4. Manage Requisitions
Create, list, update, and delete requisitions to track headcount and hiring needs.
Tools: LEVER_LIST_REQUISITIONS, LEVER_GET_REQUISITION, LEVER_UPDATE_REQUISITION, LEVER_DELETE_REQUISITION
Update requires these fields:
- •
requisition(required) -- UUID of the requisition - •
requisitionCode(required) -- unique code likeREQ-001 - •
name(required) -- requisition title - •
headcountTotal(required) -- number of positions (minimum 1) - •
status--openorclosed - •Optional:
hiringManager,owner,department,team,location,compensationBand
Example prompt: "Update requisition REQ-001 to increase headcount to 3 and change status to open"
5. View Pipeline Stages
Retrieve all hiring pipeline stages configured in your Lever account.
Tool: LEVER_LIST_STAGES
Key parameters:
- •
limit(1-100) -- max items per page - •
offset-- pagination token from previous response
Example prompt: "List all pipeline stages in our Lever account"
6. Manage Tags
List all tags used to categorize candidates, opportunities, and postings.
Tool: LEVER_LIST_TAGS
Key parameters:
- •
limit-- max items per page - •
offset-- pagination token
Example prompt: "Show all candidate tags in Lever"
Known Pitfalls
- •Pagination required for large datasets:
LEVER_LIST_OPPORTUNITIESandLEVER_LIST_POSTINGSdefault to 100 results max per page. Always check for anoffsettoken in the response and iterate to get complete results. - •Expand parameter format: The
expandfield onLEVER_LIST_OPPORTUNITIESaccepts an array of strings, while onLEVER_GET_OPPORTUNITYandLEVER_GET_REQUISITIONit accepts a comma-separated string. Follow the exact schema for each tool. - •Requisition updates are full replacements:
LEVER_UPDATE_REQUISITIONrequires all mandatory fields (requisitionCode,name,headcountTotal) even if you only want to change one field. Always fetch the current requisition first withLEVER_GET_REQUISITION. - •Timestamps: Opportunity date filters use ISO 8601 format, while
LEVER_LIST_POSTINGSuses Unix timestamps in milliseconds forupdated_at_start. - •Connection scopes: Write operations (update/delete requisitions) will fail if your API token lacks the necessary permissions, even if reads succeed.
Quick Reference
| Tool Slug | Description |
|---|---|
LEVER_LIST_POSTINGS | List all job postings with filtering by state, team, department |