SKILL.md
composio-skills/lever-automation/SKILL.md
name: Lever Automation
description: "Automate recruiting workflows in Lever ATS -- manage opportunities, job postings, requisitions, pipeline stages, and candidate tags through the Composio Lever integration."
requires:
mcp:
- rubeLever 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:
state-- filter bypublished,internal,closed,draft,pending,rejectedteam,department,location,commitment-- narrow results by organizational attributeslimit(1-100) andoffset-- paginate through large posting setstag-- 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 tagemail,contact_id-- find opportunities for a specific candidatearchived-- 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 UIDexpand-- 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 requisitionrequisitionCode(required) -- unique code likeREQ-001name(required) -- requisition titleheadcountTotal(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 pageoffset-- 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 pageoffset-- 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 |
LEVER_LIST_OPPORTUNITIES | List candidate opportunities with pipeline filtering |
LEVER_GET_OPPORTUNITY | Get detailed info for a single opportunity |
LEVER_GET_REQUISITION | Retrieve a single requisition by ID |
LEVER_LIST_REQUISITIONS | List all requisitions with status/code filtering |
LEVER_UPDATE_REQUISITION | Update an existing requisition (full replacement) |
LEVER_DELETE_REQUISITION | Delete/archive a requisition |
LEVER_LIST_STAGES | List all pipeline stages |
LEVER_LIST_TAGS | List all tags for categorization |
Powered by Composio