Lever Jobs Scraper & New Job Monitor avatar

Lever Jobs Scraper & New Job Monitor

Pricing

Pay per event

Go to Apify Store
Lever Jobs Scraper & New Job Monitor

Lever Jobs Scraper & New Job Monitor

Scrape every open job from any company's Lever job site and monitor new, updated and closed jobs. Salaries included, filters, clean JSON. No login.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Bryan Masias

Bryan Masias

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share

Get every open job from any company that hires with Lever, as clean JSON, with the pay ranges the company publishes. Run it once for a full snapshot, or schedule it daily in changes mode to get only the jobs that were added, updated or closed since the last run.

No login, no cookies, no proxies. It reads Lever's public Postings API, one request per company, and finds sites hosted in Lever's EU region by itself.

What you can do with it

  • Job boards and aggregators: keep a fresh feed of jobs from hundreds of companies.
  • Sales teams: spot hiring signals ("Acme opened 5 data engineering roles this week").
  • Recruiters and analysts: track hiring and pay ranges by company, team and location.
  • AI agents: one-line input, flat output, and you pay only for the jobs you get.

Quick start

{ "companies": ["spotify", "palantir", "zoox"] }

Each entry can be a site name (spotify), a site URL (https://jobs.lever.co/spotify), a job URL from that site, an EU site URL (https://jobs.eu.lever.co/<name>) or a company name.

Monitor new jobs

{ "companies": ["spotify", "zoox"], "mode": "changes", "keywords": ["engineer"] }

Schedule it daily. Each job comes with changeType: new, updated or closed. If a company fails to load, its jobs are never reported as closed. If you hit your spending limit, the jobs you did not receive are reported again on the next run.

Use a different monitorId for each watch list or set of filters.

Input

FieldTypeDefaultDescription
companiesstring[]requiredSite names, site URLs or company names
modeall / changesallFull snapshot, or only changes since the last run
keywords / excludeKeywordsstring[][]Match on title, department and team, case- and accent-insensitive
locationsstring[][]Match on any of the job's locations, e.g. remote, Germany, London
departmentsstring[][]Match on department or team names
remoteOnlybooleanfalseOnly jobs marked as remote
postedWithinDaysnumbernoneOnly jobs created in the last N days
includeDescriptiontext / html / nonetextDescription format. none gives the smallest output
maxJobsPerCompanynumber1000Safety cap per company
monitorIdstringdefaultName of the saved state for changes mode
emitOnFirstRunbooleantrueIf off, the first changes run only saves a baseline

Output

One item per job, in the same format as our Greenhouse, Ashby and Workday Actors. Every field is always present (null when unknown), and dates are UTC ISO 8601.

{
"jobId": "lever:zoox:e8a190f0-7a89-4c11-a6a0-452ff6234749",
"source": "lever",
"companyToken": "zoox",
"companyName": null,
"title": "Administrative Business Partner, Floater",
"departments": ["Executive Office"],
"offices": ["Foster City, CA"],
"location": "Foster City, CA",
"countryCode": "US",
"workplaceType": "hybrid",
"isRemote": false,
"employmentType": "full-time",
"url": "https://jobs.lever.co/zoox/e8a190f0-7a89-4c11-a6a0-452ff6234749",
"firstPublishedAt": "2026-10-06T17:27:44.932Z",
"updatedAt": null,
"requisitionId": null,
"language": null,
"salary": { "min": 123000, "max": 168000, "currency": "USD", "period": "year" },
"descriptionText": "...",
"descriptionHtml": null,
"changeType": "new",
"scrapedAt": "2026-10-25T12:00:00.000Z"
}

departments holds the department and the team. salary is the structured pay range the company publishes, and null when it does not publish one. The description joins the posting's text, its list sections (for example "Requirements") and its closing text. Lever's API does not return the company's display name, so companyName is null; use companyToken. A run summary (companies checked, failed companies with the reason, counts per change type) is saved in the OUTPUT record of the run's key-value store.

Pricing

Pay per event, no subscription:

  • $0.0015 per job returned ($1.50 per 1,000 jobs)
  • $0.0005 per company checked

Salaries are included at no extra cost. Filters run before you are charged, so you only pay for jobs that match.

This Actor reads Lever's public Postings API, which Lever documents for building job sites. Reading published postings needs no authentication. It follows the crawl delay in Lever's robots.txt (one request per second). It returns job postings that employers published. It does not collect data about individuals: emails and phone numbers inside job descriptions are masked. You are responsible for how you use the data.

FAQ

Why is a company missing? It may not use Lever, or its site name differs from its name. Open one of its job postings and copy the name from the jobs.lever.co/<name> link. Custom career domains cannot be resolved to a site name.

I changed my filters and got many closed or new jobs. The monitor compares against the saved state of that monitorId. Use a new monitorId when you change filters.

Greenhouse, Ashby or Workday? See our Greenhouse, Ashby and Workday Actors: same input, same output.

Use it from an AI agent

Want Claude, Cursor or your own agent to search these jobs directly? The Career Site Jobs MCP Server exposes Greenhouse, Ashby, Lever and Workday as MCP tools (search_jobs, get_job_changes, get_salary_stats), with company names resolved automatically.