Lever Jobs API - Career Site Job Board Scraper
Pricing
$1.50 / 1,000 verified job postings
Lever Jobs API - Career Site Job Board Scraper
Job postings direct from company career sites on Lever. Verified directory of 163 live boards - never guess a slug. Lever publishes no job count, so completeness is reported unverified, never claimed. Each run fetches a board's full list in one call.
Pricing
$1.50 / 1,000 verified job postings
Rating
0.0
(0)
Developer
Kaleb Confer
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Job postings pulled straight from company career sites running Lever, with a verified directory of 163 Lever boards included so you never have to guess a company's board slug.
Lever returns a company's whole board in a single call, so there is no pagination that could silently truncate. Lever publishes no job count, so completeness is reported as unknown rather than claimed.
Why this exists
Most job data on the market is scraped from aggregators, where postings are reposted, stale, or routed through a third-party apply flow. These come from the employer's own Lever board: one hop from the hiring team, with the employer's real apply URL.
Completeness is reported honestly
Lever returns a whole board in one call, so there is no pagination that could
silently truncate. But Lever publishes no job count, so there is nothing to check
against - and this Actor reports null for that board rather than claiming a
completeness it cannot prove.
What you get
| Field | Meaning |
|---|---|
company | Employer name |
title | Role title |
location | Location as the employer wrote it |
department | Team or department, when the board exposes one |
url | Direct apply URL on the employer's board |
updated | Posting or last-updated timestamp from the vendor |
board_token | The Lever board identifier, reusable in later runs |
job_id | Vendor's own job id |
verified_complete | true, false, or null - see below |
Every run also writes a PROVENANCE record to the key-value store: per board, how
many postings were fetched, what count the vendor published, and whether the two
matched.
verified_complete is three-valued on purpose
true- the vendor published a count and our row count matched it.false- the vendor published a count and we did not match it. Something is wrong; the run tells you rather than hiding it.null- the vendor publishes no count. Honestly unknown.
Most job scrapers report only what they found. That is indistinguishable from a board that half-failed. A silent partial result is worse than an error, because you build on it.
Input
| Option | What it does |
|---|---|
companies | Company names. Resolved against the verified directory first, then live. |
boards | Exact Lever board tokens, if you already know them. |
listKnownBoards | Return the whole verified directory of 163 boards instead of jobs. Free. |
allBoards | Sweep directory boards when no company is given. |
keyword | Case-insensitive filter on job title. |
maxBoards | Cap boards per run (default 25). |
maxResults | Cap rows returned. |
Start here
Set listKnownBoards to true. You get every Lever board we have confirmed live,
and can pick the companies you care about from real tokens instead of guessing.
That run is free: the paid event is a delivered job posting, and a directory row
is not one.
The same directory is browsable on the web, no signup and nothing to run: https://kalebconfer-sys.github.io/job-board-directory/lever.html
Pricing
Pay per unique role delivered. Duplicates removed before delivery are not charged, a failed board is not charged, and listing the directory is free.
Platform notes
Lever runs two independent deployments: the US API and a separate EU data-residency API. A tenant on the EU side returns 404 from the US endpoint, so a scraper that knows only api.lever.co reports those companies as dead boards. Measured here: 74 of 75 EU tokens looked expired against the US host and answered 200 against the EU one. This Actor tries both regions before calling a board gone. Both hosts declare Crawl-delay: 1 and this Actor honours it. Lever publishes no company name with a posting, so a run by board token reports the slug in the company field rather than a name this Actor would have to invent; run by company name and your own name is carried through.
Where the directory comes from
Board tokens are harvested from public web crawl archives, then every one is re-checked against Lever's own public API before it ships. A token that was seen once but no longer resolves does not make it in. Guessing company slugs instead was measured at a 0.77% hit rate; this approach measured about 67%.
To be exact about what the directory is: a board qualifies when it resolved and had at least one open role at validation time. A real board that happened to be empty that day is not in here. So treat the count as a floor, not a census.
Legal
This Actor reads Lever's documented public job board endpoints - the same data any visitor sees without logging in. No login, no cookies, no terms accepted, no paywall or access control circumvented. Job postings are published by employers specifically to be seen.
Limits
- Coverage is the directory plus anything you name explicitly; it is not every Lever board in existence, and this README says so rather than implying totals.
updatedis passed through from the vendor and means slightly different things on different platforms.- Rate limits are the vendor's, not ours. Errors are reported per board.