Lever Jobs Scraper
Pricing
from $0.84 / 1,000 jobs
Lever Jobs Scraper
[$1.20/1K jobs] Scrape every open job from any company's Lever board: title, team, all locations, country, remote / hybrid / on-site, commitment, salary when posted, date, full description, apply link. Filters, no login.
Pricing
from $0.84 / 1,000 jobs
Rating
0.0
(0)
Developer
Matvey
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
6
Monthly active users
2 days ago
Last modified
Categories
Share
Lever Jobs Scraper downloads every open job from the Lever job boards of the companies you list. Give it company slugs (spotify) or careers URLs (https://jobs.lever.co/palantir), press Start, and get one row per job: title, department, location, remote / hybrid / on-site, salary when the company publishes it, publish date, the full description, the job and apply links, and any recruiter emails written in the posting. Filter by title keywords, location, workplace and date. No login, no API key, no browser. Export JSON, CSV or Excel, schedule it, or call it from the API.
This Actor is a focused entry point for the query "lever jobs". It runs the same engine as Jobs API — Indeed, LinkedIn & career sites, which also reads Greenhouse, Lever, Ashby, Workable and SmartRecruiters boards and searches Indeed and LinkedIn. Use Jobs API when you need several systems or job boards in one run.
What does the Lever jobs scraper do?
Lever is the applicant-tracking system behind the careers pages of thousands of companies. Every company on Lever has a public job board (jobs.lever.co/<slug>), and Lever serves that board through a public JSON API (api.lever.co). This Actor reads that API for each company in your list — one request returns the whole board, with descriptions — and turns it into clean rows in the same format for every company.
- Whole boards in seconds. A company with 800 open roles is one request, not 800 page visits.
- Filters applied for you: title keywords, locations, remote / hybrid / on-site, posted within a day / week / month or after a fixed date. Jobs come newest first, so a per-company cap keeps the freshest ones.
- Normalised fields you can sort and join: ISO dates,
isRemoteandworkplaceType,salaryMin/salaryMaxas numbers. - Nothing silently disappears. A company slug that does not exist on Lever gets its own free error row saying so; a run where the filters left nothing gets a free row explaining which filter to widen.
What it does not do: it does not search all Lever companies at once — you give the companies. There is no global directory of Lever boards in this Actor. If you need a keyword search across the whole job market, use Jobs API (Indeed + LinkedIn).
What data does it return?
| Field | Example |
|---|---|
source, board, id, url, applyUrl | lever · spotify · 186b763a-… · https://jobs.lever.co/spotify/186b763a-… · …/apply |
title, company, department | Backend Engineer II - Data Platform · spotify · Platform |
location, allLocations, countryCode | Stockholm · ["Stockholm", "London"] · SE |
workplaceType, isRemote | hybrid · false (Lever's own field: remote / hybrid / onsite) |
employmentType, jobTypes | permanent · ["permanent"] (Lever's "commitment", as the company wrote it: full-time, contract, intern…) |
salaryMin, salaryMax, salaryCurrency, salaryPeriod | when the company publishes a salary range on Lever, else null |
postedAt | 2026-09-28T10:19:51.162Z (posting created) |
description, descriptionHtml | full text and HTML, including the requirement lists |
emails, phones, companyDomain | addresses written in the posting · domain from the apply link when it is the company's own site |
query, scrapedAt | (empty for boards) · run time |
- Workplace is Lever's own field. Jobs where the company left it "unspecified" have
workplaceType: nulland count as remote only if the location says "Remote". - Company is the board slug (
spotify), because Lever's public API does not return the company's display name. - Salary is filled only when the company enters a salary range in Lever; many do not.
How much does it cost?
$1.20 per 1,000 jobs ($0.0012 per job row) on the Free plan, down to $0.84 per 1,000 on higher Apify plans. No fee per run, per company or per request. Error rows (unknown company, a board that did not answer) and the "nothing matched" explanation row are free. Jobs removed by your filters are not charged — you pay only for rows in the dataset.
Example: 10 companies × 150 open jobs = 1,500 rows = $1.80 on the Free plan. Filter to "engineer" + "remote" and you pay only for those rows.
How to scrape Lever jobs
- Open the Input tab.
- Put company slugs or careers URLs into 🏢 Companies on Lever, one per line. The slug is the part after the board domain: in
https://jobs.lever.co/palantirit ispalantir. - Optional: add Title keywords, Locations, Workplace and Posted within.
- Press Start, then download the results from the Output tab, or read them through the API.
An empty API call works too: with no companies, the Actor returns a demo — the 20 newest jobs each from spotify, palantir and outreach.
⬇️ Input
{"companies": ["spotify", "https://jobs.lever.co/palantir"],"locations": ["London", "Stockholm"],"workplace": "hybrid","maxJobsPerCompany": 100}
| Field | Default | What it does |
|---|---|---|
companies | demo | Lever board slugs or careers URLs. A URL from another supported system (Greenhouse, Lever, Ashby, Workable, SmartRecruiters) also works |
titleKeywords | empty | Keep jobs whose title or department contains one of the words |
locations | empty | Keep jobs whose location contains one of the texts |
workplace | any | remote, hybrid or onsite |
postedWithin / postedAfter | any | Drop older jobs (day, 3days, week, month, or a YYYY-MM-DD date) |
maxJobsPerCompany | all | Cap per board after the filters, newest first |
maxItems | 100,000 | Cap for the whole run |
includeDescription | true | Full description text and HTML |
includeContacts | true | Emails and phones found in the posting, free |
concurrency, proxyConfiguration | 5, off | Boards read at once; no proxy needed — if a board refuses a direct request it is retried once through Apify Proxy |
⬆️ Output
One row per job with "type": "job". Free rows with "type": "error" explain a company that could not be read or a search that matched nothing. Download as JSON, CSV, Excel or XML, or get it from the API (/datasets/{id}/items). A JSON summary of the run is saved as STATS in the key-value store.
Use cases
- Job boards and aggregators: pull the full, current list of roles from the companies you track, every day.
- Recruiting and sourcing: watch competitors' and target companies' openings by department and location.
- Sales and lead generation: a company hiring five sales engineers is a company buying sales tools — filter by title and push to your CRM.
- Market and salary research: compare published salary ranges by role, location and company.
- Job alerts: schedule a daily run with
postedWithin: "day"and send new postings to Slack, email or a Google Sheet.
Tips
- Many companies use different systems for different brands. If a slug returns "not found", open the company's careers page and look at the job links:
greenhouse.io,lever.coandashbyhq.comtell you which system and slug to use. - For a daily feed use Schedules with
postedWithin: "day"(orpostedAfterset to yesterday) so you pay only for new jobs. - Everything in this Actor is available from the API and to AI agents through the Apify MCP server.
❓ FAQ
Is it legal? It reads job postings that companies publish publicly on purpose, through the public API Lever provides for job boards. Check your own use against the laws that apply to you, especially if you process personal data such as recruiter emails.
Why is a company missing jobs I see on its website? Some companies list a part of their roles on another system or hide internal postings from the public board. This Actor returns exactly what the public Lever board shows.
Can I search all Lever companies by keyword? Not with this Actor — you give the companies. For a market-wide keyword search use Jobs API.
Your feedback
Found a bug or a board that does not parse well? Open an issue on the Issues tab — we fix reports quickly.