Lever Jobs API - Career Site Job Board Scraper avatar

Lever Jobs API - Career Site Job Board Scraper

Pricing

$1.50 / 1,000 verified job postings

Go to Apify Store
Lever Jobs API - Career Site Job Board Scraper

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

Kaleb Confer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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

FieldMeaning
companyEmployer name
titleRole title
locationLocation as the employer wrote it
departmentTeam or department, when the board exposes one
urlDirect apply URL on the employer's board
updatedPosting or last-updated timestamp from the vendor
board_tokenThe Lever board identifier, reusable in later runs
job_idVendor's own job id
verified_completetrue, 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

OptionWhat it does
companiesCompany names. Resolved against the verified directory first, then live.
boardsExact Lever board tokens, if you already know them.
listKnownBoardsReturn the whole verified directory of 163 boards instead of jobs. Free.
allBoardsSweep directory boards when no company is given.
keywordCase-insensitive filter on job title.
maxBoardsCap boards per run (default 25).
maxResultsCap 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.

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.
  • updated is 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.