Skillshub Lever Automation
Automate recruiting workflows in Lever ATS -- manage opportunities, job postings, requisitions, pipeline stages, and candidate tags through the Composio Lever integration.
git clone https://github.com/ComeOnOliver/skillshub
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ComposioHQ/awesome-claude-skills/lever-automation" ~/.claude/skills/comeonoliver-skillshub-lever-automation && rm -rf "$T"
skills/ComposioHQ/awesome-claude-skills/lever-automation/SKILL.mdLever 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:
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:
-- filter bystate
,published
,internal
,closed
,draft
,pendingrejected
,team
,department
,location
-- narrow results by organizational attributescommitment
(1-100) andlimit
-- paginate through large posting setsoffset
-- filter by posting tagtag
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
-- filter by posting, pipeline stage, or tagtag
,email
-- find opportunities for a specific candidatecontact_id
-- filter by archived status (archived
/true
)false
,created_at_start
-- date range filtering (ISO 8601)created_at_end
-- expandexpand
,applications
,contact
,owner
,stage
,stageChanges
,sources
into full objectssourcedBy
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:
(required) -- the unique opportunity UIDopportunity
-- comma-separated fields to expand:expand
,contact
,stageowner
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:
(required) -- UUID of the requisitionrequisition
(required) -- unique code likerequisitionCodeREQ-001
(required) -- requisition titlename
(required) -- number of positions (minimum 1)headcountTotal
--status
oropenclosed- Optional:
,hiringManager
,owner
,department
,team
,locationcompensationBand
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:
(1-100) -- max items per pagelimit
-- pagination token from previous responseoffset
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:
-- max items per pagelimit
-- pagination tokenoffset
Example prompt: "Show all candidate tags in Lever"
Known Pitfalls
- Pagination required for large datasets:
andLEVER_LIST_OPPORTUNITIES
default to 100 results max per page. Always check for anLEVER_LIST_POSTINGS
token in the response and iterate to get complete results.offset - Expand parameter format: The
field onexpand
accepts an array of strings, while onLEVER_LIST_OPPORTUNITIES
andLEVER_GET_OPPORTUNITY
it accepts a comma-separated string. Follow the exact schema for each tool.LEVER_GET_REQUISITION - Requisition updates are full replacements:
requires all mandatory fields (LEVER_UPDATE_REQUISITION
,requisitionCode
,name
) even if you only want to change one field. Always fetch the current requisition first withheadcountTotal
.LEVER_GET_REQUISITION - Timestamps: Opportunity date filters use ISO 8601 format, while
uses Unix timestamps in milliseconds forLEVER_LIST_POSTINGS
.updated_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 |
|---|---|
| List all job postings with filtering by state, team, department |
| List candidate opportunities with pipeline filtering |
| Get detailed info for a single opportunity |
| Retrieve a single requisition by ID |
| List all requisitions with status/code filtering |
| Update an existing requisition (full replacement) |
| Delete/archive a requisition |
| List all pipeline stages |
| List all tags for categorization |
Powered by Composio