Lever Job Listings API – Careers Board Scraper avatar

Lever Job Listings API – Careers Board Scraper

Pricing

Pay per event

Go to Apify Store
Lever Job Listings API – Careers Board Scraper

Lever Job Listings API – Careers Board Scraper

Scrape live job postings from any company's Lever board. Clean JSON per job with dedup, so scheduled runs only return newly-posted roles. For recruiters, ATS aggregators and hiring-signal feeds.

Pricing

Pay per event

Rating

0.0

(0)

Developer

K O

K O

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Lever Jobs Scraper – New Postings Feed API

Scrape live job postings from any company's Lever board and get one clean JSON record per role — title, location, team, commitment, workplace type, post date and a direct apply URL. Built-in deduplication means a scheduled run only returns newly-posted jobs, so you can wire it straight into a hiring-signal feed, a niche job board, or a sourcing tool.

Who uses it

Recruiters and sourcers, job-board and ATS aggregators, sales teams tracking a target account's hiring, labor-market analysts, and anyone building a "new roles at companies I follow" alert.

Why this is worth charging for

Lever exposes a public postings API, but you still have to know each company's handle, hit boards one at a time, and diff runs yourself to find what's actually new. This actor does all of that: pass a list of companies, get a normalized, deduplicated feed you can schedule.

Input

FieldDescription
companiesOne or more Lever company handles — the slug in jobs.lever.co/<handle> (e.g. ro).
includeDescriptionInclude each posting's plain-text description. Off by default for lean records.
onlyNewSinceLastRunRecommended for schedules — skips jobs already returned by a previous run, so you're only charged for genuinely new postings.
maxItemsStop after this many normalized records.

Output

Each dataset item is one normalized job:

{
"jobId": "bde27362-0652-4d1a-bb8e-d6100ca20654",
"company": "ro",
"title": "Associate Director, Growth",
"location": "New York, NY",
"allLocations": ["New York, NY"],
"department": "Growth",
"employmentType": "Full-time",
"remote": false,
"workplaceType": "hybrid",
"country": "US",
"postedAt": "2026-03-11T02:22:42.892Z",
"url": "https://jobs.lever.co/ro/bde27362-0652-4d1a-bb8e-d6100ca20654",
"applyUrl": "https://jobs.lever.co/ro/bde27362-0652-4d1a-bb8e-d6100ca20654/apply",
"description": null,
"source": "Lever"
}

Pricing (Pay-Per-Event)

  • query — charged once per run for the board poll.
  • job-record — charged per normalized job pushed. This is the primary event.
  • apify-actor-start (Apify-managed) — covers baseline compute per run.

A daily monitor of a handful of companies returns a few new roles for pennies; a full-board pull of a large employer is a larger one-time run you control with maxItems.

Source & reliability

Data comes from Lever's public api.lever.co/v0/postings service. No API key, no proxy needed. Run npm test for the offline self-test covering the normalizer and its edge cases.

FAQ

Where do I find a company's Lever handle?

Open the company's Lever careers page — the handle is the slug in the URL, e.g. jobs.lever.co/roro.

How does it avoid charging me for the same job twice?

With onlyNewSinceLastRun on (the default), the actor persists the ids it has already returned and skips them next run, so a schedule only bills for new postings.


SEO keywords: Lever jobs scraper, Lever postings API, job posting scraper, ATS scraper, new jobs feed, hiring signals, recruiting data API, job board aggregator