Docs / ATS jobs aggregator
Lever Jobs API (job postings and salaries)
Job postings straight from public Lever career boards, in one schema with salary (where the employer publishes it), remote flag and posted date. Pass your own companies or scan the built-in list of 4,368 Lever boards.
Run it on Apify ↗ API tab ↗ Compare alternatives
Facts on this page were checked against the live Apify listing on 2026-10-22. The Apify Store page is the source of truth for price.
Who it is for
Niche job boards, sales teams using hiring signals, recruiters, labor-market researchers and AI agents.
Pricing (pay per event)
| Event | Charged | Price (USD) |
|---|---|---|
job | per job returned | $0.0012 |
apify-actor-start | per run | $0.00005 |
1,000 jobs cost $1.20. Filters run before charging. No subscription. Paid Apify plans get Store tier discounts automatically, and you can set a maximum total charge per run.
Data sources
- Lever Postings API (published postings are public)
Update cadence: Live per run.
Coverage: Lever only: 4,368 known Lever boards, or any Lever board you name.
Inputs
| Field | Type | Default | What it does |
|---|---|---|---|
companies | array | ["lever:palantir", "https://jobs.lever.co/spotify"] | Lever career-board URLs (jobs.lever.co/palantir), 'lever:slug' or a bare company slug. |
scanKnownCompanies | boolean | false | Also scan the built-in list of 4,368 Lever company boards. Combine with title/location filters to build a market-wide job feed. |
knownCompanyPlatforms | array | ["lever"] | Which built-in company lists to scan. |
maxCompaniesToScan | integer | 200 | How many built-in company boards to check per run. |
titleKeywords | array | | Case-insensitive, e.g. engineer, sales, data. |
excludeTitleKeywords | array | | e.g. intern, senior. |
locationKeywords | array | | e.g. remote, seattle, germany, US. |
remoteOnly | boolean | false | Keep only jobs marked remote. |
postedWithinDays | integer | 0 | 0 = no date filter. |
includeDescription | boolean | false | Adds plain-text description. |
maxResults | integer | 50 | Stop after this many jobs. |
Output fields
company, title, department, team, location, locations[], country, isRemote, workplaceType, employmentType, salaryMin, salaryMax, salaryCurrency, salaryInterval, salaryText, postedAt, updatedAt, jobUrl, applyUrl, description (optional), ats, companySlug.
Example input
{
"scanKnownCompanies": true,
"maxCompaniesToScan": 2000,
"titleKeywords": ["data"],
"remoteOnly": true,
"postedWithinDays": 7
}
Call it from code or an AI agent
REST (one call, returns JSON rows):
curl -X POST "https://api.apify.com/v2/acts/johto.data~ats-jobs-aggregator/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"scanKnownCompanies":true,"maxCompaniesToScan":2000,"titleKeywords":["data"],"remoteOnly":true,"postedWithinDays":7}'
Python: ApifyClient(token).actor("johto.data/ats-jobs-aggregator").call(run_input={...})
MCP (Claude, Cursor, any MCP client): https://mcp.apify.com/?tools=johto.data/ats-jobs-aggregator
Limits and notes
- Lever boards only.
- Built-in slug list derived from Riley-Dorrington/job-board-aggregator (MIT).
FAQ
Which ATS platforms are supported?
Lever only.
Does it return salaries?
Yes, where the employer publishes them (many Lever boards do).
Apify Store listing: https://apify.com/johto.data/ats-jobs-aggregator. Questions: [email protected].