Export public job postings from Lever-hosted company career pages into a clean Apify dataset.
Use this Actor to monitor company hiring, collect Lever job descriptions, build job-board feeds, enrich account research, and automate recruiting or labor-market workflows. Results can be downloaded as CSV, JSON, Excel, XML, RSS, or used through the Apify Dataset API.
At a glance
- Company career pages: Enter Lever company slugs such as
spotifyor paste fulljobs.lever.coboard URLs. - Structured job rows: Export titles, job IDs, hosted URLs, apply URLs, locations, departments, teams, work types, and descriptions.
- Useful filters: Narrow by department, team, location, work type, or maximum item count.
- Hiring signals: Track which companies are opening roles, where teams are growing, and which functions are active.
- API export: Send Lever job data to spreadsheets, CRMs, BI tools, job boards, alerts, or AI agents.
What can it do?
Lever Jobs Scraper collects public roles from companies that publish openings on Lever and saves one dataset row per job posting.
- Scrape one or many companies: Use a single slug or a list of target company slugs.
- Reuse Lever URLs: Paste a full Lever board URL such as
https://jobs.lever.co/spotify. - Filter public roles: Limit results by department, team, location, commitment, or work type.
- Export descriptions: Save plain-text descriptions and optionally original HTML descriptions.
- Build repeatable workflows: Run one-off exports or schedule recurring company monitoring.
Common workflows
- Recruiting research: Monitor roles at target companies, competitors, or talent pools.
- Sales lead generation: Identify companies expanding departments that match your product or service.
- Job-board ingestion: Collect public Lever postings for review and downstream publishing.
- Labor-market analysis: Compare hiring patterns across companies, functions, teams, and regions.
- Account enrichment: Add current open roles to CRM account profiles and sales research.
- AI matching: Feed clean job descriptions into matching, classification, or alerting pipelines.
What data can you extract?
The Actor returns one dataset row per public Lever job posting.
| Field | Description |
|---|---|
companySlug |
Lever company slug supplied in the input |
jobId |
Lever posting identifier |
title |
Job title |
hostedUrl |
Public Lever job page |
applyUrl |
Application URL |
location |
Job location category |
department |
Department category |
team |
Team category |
workType |
Commitment or work type |
workplaceType |
Remote, hybrid, or workplace category when available |
country |
Country field when available |
createdAt |
Posting creation time in ISO format |
descriptionPlain |
Plain-text job description |
descriptionHtml |
Optional HTML description |
lists |
Structured sections from the posting |
additionalPlain |
Additional plain-text content |
scrapedAt |
Time the Actor saved the item |
Example input
{
"companySlugs": ["spotify", "netflix"],
"limit": 50,
"departments": ["Engineering"],
"locations": ["Remote"],
"includeDescriptionHtml": false
}
Example output
{
"companySlug": "spotify",
"jobId": "abc123",
"title": "Data Engineer",
"hostedUrl": "https://jobs.lever.co/spotify/...",
"applyUrl": "https://jobs.lever.co/spotify/.../apply",
"location": "New York",
"team": "Platform",
"department": "Engineering",
"workType": "Full-time",
"commitment": "Full-time",
"createdAt": "2026-06-20T00:00:00.000Z",
"descriptionPlain": "About the role...",
"scrapedAt": "2026-06-20T05:00:00.000Z"
}
How to run it
- Open the Actor on Apify.
- Add one or more Lever company slugs.
- Set
limitto the number of jobs you want to save. - Add optional department, team, location, or work-type filters.
- Choose whether to include HTML descriptions.
- Start the run and download the dataset.
Search tips
- Use the exact slug: For
https://jobs.lever.co/spotify, usespotify. - Start small: Test one company with
limit: 20before adding many companies. - Filter lightly first: Empty filters return the full board; add filters after you confirm the company slug works.
- Use partial locations: Values like
Remote,London, orNew Yorkare often enough. - Enable HTML only when needed: Plain text is easier for CSV, matching, and analytics.
Limits and caveats
- The Actor extracts public Lever job postings only.
- It does not access private, internal, draft, or login-gated openings.
- Filter values depend on the categories each company publishes on its Lever board.
- Some optional fields are empty when the company does not publish that data.
Integrations
You can connect Lever job data to downstream tools:
- Send CSV or Excel exports to spreadsheets for hiring reports.
- Trigger Slack, email, or webhook alerts after scheduled runs.
- Enrich CRM accounts with current openings and department growth signals.
- Load JSON rows into a database, warehouse, or BI dashboard.
- Combine Lever outputs with other ATS scrapers for broader company monitoring.
API usage
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/lever-jobs-scraper').call({
companySlugs: ['spotify'],
limit: 25
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python
from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/lever-jobs-scraper').call(run_input={
'companySlugs': ['spotify'],
'limit': 25,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~lever-jobs-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"companySlugs":["spotify"],"limit":25}'
MCP and AI agents
This Actor can be used through the official Apify MCP server at https://mcp.apify.com.
For a focused single-Actor tool setup, use:
https://mcp.apify.com?tools=fetch_cat/lever-jobs-scraper
Use the same JSON keys shown in the input configuration table, such as companySlugs, limit, departments, locations, teams, and workTypes.
Support
If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.
Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.