Lever Jobs Scraper avatar

Lever Jobs Scraper

Pricing

from $1.50 / 1,000 job items

Go to Apify Store
Lever Jobs Scraper

Lever Jobs Scraper

Lever jobs scraper for any company board (US and EU) via Lever's public Postings API: salary ranges, team, location, remote/hybrid, commitment, apply links. Schedule for new, changed and closed jobs, pay changes included. $1.50 per 1,000 jobs. Unofficial; not affiliated with Lever.

Pricing

from $1.50 / 1,000 job items

Rating

0.0

(0)

Developer

Tallow Lane Labs

Tallow Lane Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Lever Jobs Scraper: salaries and change alerts from any Lever job board

Lever jobs scraper for any company board (Zoox, Shield AI, Palantir, Spotify, Veeva and thousands more). Scrape Lever job postings from Lever's public Postings API: salary ranges, team, department, location, remote/hybrid, commitment, posted date and apply links. Schedule it and each run can return only new, changed and closed jobs, pay changes included.

Monitoring cost: a board with no changes costs $0.0015 per check, so watching 10 Lever boards daily is about $0.32 a month, plus $0.002 per new, changed or closed job.

By Tallow Lane Labs. Unofficial tool; not affiliated with, endorsed by or sponsored by Lever, Inc. or Employ Inc.

Why this one

  • Salary from Lever's structured salaryRange (min, max, currency, pay period), with a fallback that reads amounts like "$120,000 - $150,000" from the posting's pay text. salarySource says which one you got.
  • Change alerts, including pay. Every record says new, updated (with changedFields such as salary, title or location, and the previous values, old pay included), unchanged or removed. Editing pay boilerplate text alone does not count as a pay change.
  • Full list by default. snapshot mode returns every live job each run; switch to changes for alerts only.
  • US and EU boards: jobs.lever.co/zoox, jobs.eu.lever.co/acme, any job or apply link, zoox, lever:zoox, or a careers page that links to Lever.
  • Descriptions as text, Markdown and/or HTML, with every section (intro, requirement lists, closing text).
  • Official public API, no proxies, no browser, no login. One request per board; runs in seconds.

Use cases

  • Salary benchmarking across companies, teams and locations.
  • Pay-change and new-role alerts for recruiters, sourcers and job seekers.
  • Sales and investor signals: new teams and roles at target accounts, closed roles.
  • Job boards and aggregators: a clean, normalized Lever feed.
  • Labor-market research on remote vs. on-site hiring.

Quick start

  1. Click Try for free and run the example board (Zoox), or leave boards empty for a 5-job demo.
  2. Add boards, e.g. https://jobs.lever.co/shieldai, palantir, lever:zoox.
  3. For alerts, set mode: changes and schedule the Actor daily.

Input example

{
"boards": ["https://jobs.lever.co/zoox", "shieldai", "lever:palantir"],
"mode": "changes",
"keywords": ["engineer"],
"salaryOnly": true
}

Main options: boards (leave empty for a 5-job demo), mode (snapshot default, or changes), changeTypes, emitBaseline, filters (keywords, excludeKeywords, locations, departments, workplaceTypes, postedWithinDays, salaryOnly, minSalary), maxJobsPerBoard, includeDescriptions, descriptionFormats (text, markdown, html), redactContactInfo, stateStoreName / stateKeyPrefix. See the Input tab for all fields.

Output example

Real record from a test run on Zoox's board, Nov 3, 2026 (texts shortened):

{
"recordType": "job",
"id": "lever:zoox:7980e9a3-99f3-4988-ae6d-355c9199d8fb",
"ats": "lever",
"board": "zoox",
"jobId": "7980e9a3-99f3-4988-ae6d-355c9199d8fb",
"title": "Body Structures Engineer",
"department": "Vehicle Development",
"team": "Body, Closures and Chassis",
"commitment": "Full-time",
"employmentType": "full_time",
"workplaceType": "onsite",
"isRemote": false,
"location": "Foster City, CA",
"locations": ["Foster City, CA"],
"country": "US",
"salary": { "min": 170000, "max": 204000, "currency": "USD", "interval": "year",
"text": "Base Salary Range There are three major components to compensation for this position: sala ..." },
"salarySource": "salaryRange",
"postedAt": "2026-09-10T20:41:07.958Z",
"url": "https://jobs.lever.co/zoox/7980e9a3-99f3-4988-ae6d-355c9199d8fb",
"applyUrl": "https://jobs.lever.co/zoox/7980e9a3-99f3-4988-ae6d-355c9199d8fb/apply",
"descriptionText": "At Zoox, you'll collaborate with a team of world-class engineers with diverse backgrounds ...",
"changeType": "baseline",
"changedFields": [],
"firstSeenAt": "2026-11-03T15:59:45.890Z",
"detectedAt": "2026-11-03T15:59:45.890Z"
}
FieldExampleNotes
titleBody Structures EngineerLever text
team / departmentBody, Closures and Chassis / Vehicle DevelopmentLever categories
locationFoster City, CAlocations lists all
workplaceTypeonsiteremote, hybrid, onsite or null; raw value in workplaceTypeRaw
commitmentFull-timealso normalized as employmentType
salary170000-204000 USD / yearnull when the company publishes no pay
changeTypebaselinenew, updated, unchanged, removed on later runs
changedFields["salary"]on updated records; previous.salary has the old pay
  • removed records carry the last known values plus lastSeenAt.
  • Board errors are recordType: "error" rows, never charged. RUN_SUMMARY has per-board counts.
  • Dataset views: Jobs & changes, Changes only, Pay, Board errors.

Pricing (pay per event)

EventPriceWhen
Job item$0.0015Each job in snapshot mode, and each baseline job on a board's first changes run
Job change$0.002Each new, updated or removed record in changes mode
Board check$0.001Each board checked per run (per started 1,000 jobs)
Actor start$0.0005Once per run (same at 256, 512 or 1,024 MB)

Not charged: error rows, failed boards, filtered-out jobs.

  • 6 companies, no changes: $0.0065 per run (about $0.20 a month daily).
  • Zoox's full board (about 223 jobs) as a snapshot: about $0.34.
  • 50 companies (~7,500 jobs): baseline about $11.30 once (or $0.051 with emitBaseline: false), then ~$0.35 on a day with 150 changes.
  • Set Apify's maximum cost per run for a hard cap; the Actor stops cleanly and saves its state.

Integrations

  • Make, Zapier, n8n: Apify's official app/node → Run Actor tallowlanelabs/lever-jobs-scraper → send each new job or pay change to Slack, Google Sheets, Airtable or your CRM.
  • Apify API and clients: POST https://api.apify.com/v2/acts/tallowlanelabs~lever-jobs-scraper/run-sync-get-dataset-items, or
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("tallowlanelabs/lever-jobs-scraper").call(
run_input={"boards": ["zoox"], "salaryOnly": True})
jobs = list(client.dataset(run["defaultDatasetId"]).iterate_items())
  • AI agents (MCP): https://mcp.apify.com?tools=tallowlanelabs/lever-jobs-scraper lets an AI assistant answer "what does Zoox pay engineers?" from live data.
  • Webhooks, Slack, Google Sheets: on the Actor's Integrations tab.

FAQ

How do I find a company's board name? It's the part after jobs.lever.co/ (or jobs.eu.lever.co/). You can also paste any job link or the careers page.

Do all jobs have pay? Only if the company publishes it. On Nov 3, 2026, 207 of Zoox's 223 jobs and 531 of Shield AI's 657 had a structured salary range; Palantir's 305 had none.

How do I get alerts when pay changes? Use mode: changes on a schedule. A pay change is an updated record with "salary" in changedFields, the new pay in salary and the old pay in previous.salary.

Why is companyName the board name? Lever's public API doesn't return a company display name, so the board (site) name is used.

Does it work with EU boards? Yes. Paste the jobs.eu.lever.co URL or use lever:eu:<site>.

Is it legal? It reads Lever's public, unauthenticated Postings API (github.com/lever/postings-api), which exists so companies' published jobs can be shown anywhere. Only published postings are read; no logins. Use the data in line with Lever's and employers' terms and laws such as GDPR and CCPA.

Limits

Public, published postings only; pay only when published; Lever has no "updated at" date. Memory: 512 MB covers most watch lists; use 1,024 MB if any board has over 2,000 jobs (RUN_SUMMARY.memory advises).

Support

Open an issue on the Issues tab or email Tallow Lane Labs at wdeornellas+tallowlanelabs@gmail.com.