Lever Jobs Scraper: Export Any Lever Job Board avatar

Lever Jobs Scraper: Export Any Lever Job Board

Pricing

$2.00 / 1,000 job scrapeds

Go to Apify Store
Lever Jobs Scraper: Export Any Lever Job Board

Lever Jobs Scraper: Export Any Lever Job Board

Scrape all open jobs from any Lever job board (jobs.lever.co): title, location, workplace type, team, department, commitment, posting date, published salary range, full description and apply URL. No API key. $2.00 per 1,000 jobs.

Pricing

$2.00 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

PulseData

PulseData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Lever Jobs Scraper exports every open posting from one or more Lever job boards (jobs.lever.co) as JSON, CSV or Excel. You give it board URLs or just company names such as spotify, and it returns one record per job with title, all locations, country, workplace type, team, department, commitment, the published salary range, the full description and separate job and apply URLs. It costs $2.00 per 1,000 jobs, so a 500-job board costs about $1.00.

Features

  • Scrape Lever job boards by URL or by company name. A bare name like palantir is expanded to https://jobs.lever.co/palantir.
  • Export jobs.lever.co postings to CSV, JSON or Excel, including the description and every list section (responsibilities, requirements and so on).
  • Get Lever salary ranges. Lever's postings API carries a structured salary range, which many US boards fill in because of pay transparency laws.
  • Scrape EU Lever boards on jobs.eu.lever.co, read from Lever's EU API.
  • Filter Lever jobs by keyword, location, country, remote and posting date.
  • Find remote jobs on Lever using Lever's own workplace type (remote, hybrid, on-site).
  • No API key and no login. Lever publishes every board through its public postings API.

Use cases

  • Job board aggregation: refresh openings from a list of Lever companies every morning.
  • Salary benchmarking: collect published ranges for one job family (for example "Data Scientist") across dozens of Lever employers.
  • Recruiting and sourcing: watch which Lever teams a competitor is growing and whether roles are remote, hybrid or on-site.
  • Lead generation: companies opening sales or security roles often buy tooling for those teams; filter by keywords and run weekly.

Input

{
"startUrls": [
"https://jobs.lever.co/spotify",
"palantir",
"https://jobs.eu.lever.co/examplecompany"
],
"keywords": ["data", "machine learning"],
"locations": ["New York", "London", "US"],
"remoteOnly": true,
"postedWithinDays": 30,
"includeDescription": true,
"maxJobsPerCompany": 100
}
FieldTypeDefaultWhat it does
startUrlsarray of strings(required)Lever board URLs or bare company names, one per line.
keywordsarray[]Keep only jobs whose title contains one of these words (case-insensitive).
locationsarray[]Keep only jobs whose location, any of its other locations, or its country code contains one of these strings.
remoteOnlybooleanfalseKeep only jobs Lever marks as remote, or whose location mentions remote.
postedWithinDaysinteger0Keep only jobs created in the last N days. 0 means no limit.
includeDescriptionbooleantrueInclude descriptionHtml and descriptionText. Lever returns them in the same request, so this adds no extra requests.
maxJobsPerCompanyinteger0Cap per board, applied after the filters. 0 means no limit.
proxyConfigurationobject{ "useApifyProxy": false }Optional Apify Proxy.

Accepted Lever URL formats:

  • https://jobs.lever.co/spotify
  • https://jobs.lever.co/spotify/<posting-id> (a single posting URL; the actor still reads the whole board)
  • https://jobs.eu.lever.co/company (EU-hosted boards)
  • spotify (bare company name, always expanded to the US host, so use the full URL for EU boards)
  • https://company.com/careers (a page that links to a Lever board)

Output

One item per job:

{
"title": "Data Scientist - Music Mission",
"company": "spotify",
"location": "New York",
"locations": ["New York", "Boston"],
"country": "US",
"remote": true,
"workplaceType": "remote",
"department": "Data",
"team": "Music Mission",
"employmentType": "Permanent",
"seniority": null,
"salary": "116994-167135 USD per-year-salary",
"postedAt": "2026-06-23T11:29:45.805Z",
"updatedAt": null,
"url": "https://jobs.lever.co/spotify/2193db3f-77c5-43b8-b030-8f92c9882bf1",
"applyUrl": "https://jobs.lever.co/spotify/2193db3f-77c5-43b8-b030-8f92c9882bf1/apply",
"descriptionHtml": "<div>The Music Mission team…</div>\n<h3>What you'll do</h3><ul><li>…</li></ul>",
"descriptionText": "The Music Mission team…\n\nWhat you'll do\n…",
"ats": "lever",
"atsJobId": "2193db3f-77c5-43b8-b030-8f92c9882bf1",
"sourceUrl": "https://jobs.lever.co/spotify",
"scrapedAt": "2026-09-25T08:20:44.000Z"
}

What Lever exposes, and how it maps:

  • company is the Lever company name from the URL (for example spotify).
  • location is the primary location; locations is Lever's full list of locations for the posting.
  • country is the ISO country code Lever stores on the posting.
  • workplaceType is Lever's value as published (remote, hybrid, on-site or unspecified). remote is true when it is remote or the location text says remote.
  • department and team are Lever's two category levels; employmentType is Lever's "commitment" (for example Full-time, Permanent, Intern).
  • salary is built from Lever's salary range as min-max currency interval. When a board does not publish a range, the actor looks for one near the start of the description.
  • descriptionHtml joins the opening text, each list section (with its heading) and the closing text.
  • postedAt is the posting's creation date in Lever. Lever has no separate update date, so updatedAt is null; seniority is also not published.

If a company name does not exist on Lever, the dataset gets one row with sourceUrl, ats, slug and an error message. Error rows are not charged.

Pricing

Pay per event: $0.002 per job saved to the dataset ($2.00 per 1,000 jobs). There is no start fee.

Worked example: a salary study across 60 Lever companies with around 80 postings each is 4,800 jobs, or $9.60 for a full export. If you only need engineering roles and set keywords: ["engineer", "developer"], you might keep 1,500 jobs and pay $3.00. Jobs removed by filters and error rows are not charged.

FAQ

Do I need an API key or a Lever login? No. Lever job boards are public and the actor reads the public postings API behind them.

Does every job include a salary? No. The range is filled only when the company publishes one in Lever, or when a range appears near the start of the description. US boards publish it more often than European ones.

How many jobs can it get from one board? The whole board. Lever returns all published postings in one response; maxJobsPerCompany limits the output if you want less.

What can it not do? It only sees postings the company lists publicly. Unlisted or internal postings, application forms and candidate data are out of reach. It does not render JavaScript, so if your careers page loads Lever through a script, paste the jobs.lever.co URL instead.

Do I need proxies? Normally no. The actor backs off and retries on rate limits and server errors. Enable proxyConfiguration only if a very large list starts returning HTTP 429.

Can I mix Lever with other ATS in one run? Use the Career Page Jobs Scraper for that. It auto-detects Lever, Greenhouse, Ashby, Workday and eight other systems.

How do I export, schedule or automate it? Download results as JSON, CSV, Excel, XML or HTML, start runs from the Apify API or SDKs, schedule them in Apify Console, or connect the actor to Google Sheets, Make, Zapier or n8n.