Lever Jobs Scraper - Postings API by Company avatar

Lever Jobs Scraper - Postings API by Company

Pricing

from $0.60 / 1,000 job scrapeds

Go to Apify Store
Lever Jobs Scraper - Postings API by Company

Lever Jobs Scraper - Postings API by Company

Scrape open jobs from any company on Lever (jobs.lever.co), US and EU instances. Type a company name or domain; the Lever site is found for you. Commitment, team, workplace type, salary range, all locations, apply URL. Delta mode for daily runs.

Pricing

from $0.60 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Make No Mistakes LLC

Make No Mistakes LLC

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 days ago

Last modified

Share

Lever Jobs Scraper: Postings API by Company

Scrape every open job from any company's Lever job board (jobs.lever.co, and EU-hosted jobs.eu.lever.co boards). Type a company name, a domain, a Lever site name or a board URL. The Actor finds the Lever site and region for you and returns each job with its team, department, commitment, workplace type, every location, salary range where published, full description and apply URL.

CompanyTitleTeamCommitmentWorkplaceLocationPayApply
SpotifyAndroid Engineer - ExperienceExperiencePermanenthybridLondon, Stockholmapply
SpotifyArtist Label Partnerships Manager, TaiwanMusic MarketingPermanentonsiteTaiwanapply
PalantirAdministrative Business PartnerAdministrativeFull-timehybridLondon, United Kingdomapply
Match GroupAndroid Engineer IIIEngineering (Hinge)Full-timehybridNew York, New York150,000 - 180,000 USD / yearapply
Match GroupAI Product EngineerInternshipsInternshiphybridVancouver, British Columbia35 - 38 CAD / hourapply

Real rows from the default run on 2026-10-03.

Try it: the default input returns 254 jobs (Spotify 82, Palantir 100 of 319, Match Group 72) for about $0.51, in about 6 seconds. No login, no proxy, no API key: it reads Lever's official public Postings API.

What is Lever-specific here

  • US and EU Lever, automatically. Lever runs two separate postings APIs: api.lever.co and api.eu.lever.co (EU data residency). Scrapers that only read the US one report EU-hosted employers as having no jobs. This Actor checks both regions and uses the one with the larger board; lever_region tells you which. Board URLs on either host work.
  • Company name in, Lever site out. Match Group resolves to matchgroup, palantir.com to palantir. If you give a domain and the name guess misses, the company's careers page is read for its Lever link.
  • Lever's own fields as filters: commitments (Full-time, Permanent, Internship, Contract...), teams (team or department) and workplaceTypes (remote, hybrid, on-site).
  • Pay where published, with the right interval: Lever's structured salaryRange comes back as salary_min/salary_max/salary_currency/salary_period (Match Group's intern rate is HOUR, its engineering roles YEAR), plus the employer's pay note in salary_description.
  • Every location in all_locations, not just the primary one.
  • Companies not on Lever are reported, not dropped. You get a free company_not_found row naming where the company actually hires, e.g.
    not on Lever: this company's job board is on Greenhouse (https://job-boards.greenhouse.io/stripe)
    .

Use cases

  • Recruiting and sourcing: watch competitors' Lever boards by team and get each new posting the day it opens with delta mode.
  • Sales signals: hiring bursts in a team ("Data Platform", "RevOps") as a buying signal.
  • Job boards and aggregators: clean, deduplicated, normalized jobs with real apply URLs.
  • Internship and early-career boards: commitments: ["Intern"] across hundreds of companies.
  • Job seekers: a daily alert of new roles at your target companies.

Input

{
"companies": ["Spotify", "palantir.com", "https://jobs.lever.co/matchgroup"],
"keywords": ["engineer"],
"locations": ["New York", "London", "Remote"],
"remoteOnly": false,
"postedWithinDays": 30,
"commitments": ["Full-time", "Permanent"],
"teams": ["Engineering"],
"workplaceTypes": ["remote", "hybrid"],
"onlyNewSinceLastRun": false,
"includeDescription": true,
"maxItems": 1000,
"maxItemsPerCompany": 100
}
FieldWhat it does
companiesNames, domains, Lever site names or board URLs (US or EU), mixed freely.
keywordsKeep jobs whose title, department or team contains any of these words.
locationsKeep jobs whose location contains any of these strings.
remoteOnlyKeep only jobs whose workplace type or location says remote.
postedWithinDaysKeep only jobs created in the last N days.
commitmentsLever-only: match the commitment (case-insensitive, partial).
teamsLever-only: match the team or department.
workplaceTypesLever-only: remote, hybrid, on-site.
onlyNewSinceLastRunDelta mode: only jobs you have not received before (see below).
deltaStateNameName of the key-value store that remembers delivered jobs, one per schedule.
includeDescriptionSet false to drop the description fields (smaller items, same price).
maxItemsTotal jobs per run, and so your spend cap.
maxItemsPerCompanyJobs per company (default 100). Set 0 for whole boards.

Output

Every job uses the same normalized schema as the Multi-ATS Job Board API, plus Lever-specific fields:

{
"record_type": "job",
"company": "Match Group",
"title": "Android Engineer III",
"team": "Engineering",
"department": "Hinge",
"commitment": "Full-time",
"workplace_type": "hybrid",
"location_raw": "New York, New York",
"city": "New York",
"country": "US",
"is_remote": false,
"employment_type": "FULL_TIME",
"salary_min": 150000,
"salary_max": 180000,
"salary_currency": "USD",
"salary_period": "YEAR",
"posted_at": "2026-08-21",
"apply_url": "https://jobs.lever.co/matchgroup/cb977666-1e41-4098-ad9c-6ab387e56a7a/apply",
"company_slug": "matchgroup",
"ats": "lever",
"job_id": "cb977666-1e41-4098-ad9c-6ab387e56a7a",
"source_url": "https://api.lever.co/v0/postings/matchgroup",
"lever_site": "matchgroup",
"lever_region": "us",
"all_locations": ["New York, New York"],
"hosted_url": "https://jobs.lever.co/matchgroup/cb977666-1e41-4098-ad9c-6ab387e56a7a",
"salary_description": "Factors such as scope and responsibilities of the position, ... This salary range is reflective of a position based in New York City. ..."
}

description_html and description_text carry the full posting (opening, body, every list and the closing section, assembled in order), and raw keeps the untouched Lever record. Lever's public API publishes a created date only, so updated_at is null by design.

Dataset views: Jobs, Lever details and Companies not on Lever. RUN_SUMMARY in the key-value store records how each company was resolved and the jobs per company.

Delta mode for scheduled runs

Set onlyNewSinceLastRun: true and schedule the Actor. The first run returns everything and remembers it; later runs return only jobs not delivered before, and never charge twice for the same job. State lives in a named key-value store in your own account (deltaStateName), one record per board.

Pricing

Pay per event, no subscription:

Free planBronzeSilverGold and up
Per job$0.002$0.0015$0.001$0.0006
Per run start$0.001$0.001$0.001$0.001
  • 100 jobs on the Free plan: about $0.20. 1,000 jobs: about $2.00.
  • Filters run before charging: you pay only for jobs that pass them.
  • company_not_found rows are free.
  • maxItems is a hard spend cap. If your run's Maximum cost per run is too low for the jobs in scope, the run says so on its status line and in RUN_SUMMARY.

No login, no proxy, official public API

Lever publishes its Postings API (api.lever.co/v0/postings/{site}, and the EU equivalent) so employers' jobs can be listed anywhere. No account, cookies or proxies are involved.

API example

curl -X POST \
"https://api.apify.com/v2/acts/make_no_mistakes~lever-jobs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companies": ["Spotify", "Palantir"], "teams": ["Engineering"], "maxItemsPerCompany": 50}'

FAQ

My company is on Lever but was not found. Pass its board URL (https://jobs.lever.co/<site> or https://jobs.eu.lever.co/<site>) or its domain. The Lever site name is sometimes not the company name.

Why do so few Lever jobs have pay? Lever's salary range is optional for employers. In the default run, 40 of 254 jobs had one; salary_description often explains the range when there is one.

Is this affiliated with Lever? No. This is an independent tool, not affiliated with, endorsed by or sponsored by Lever (Employ Inc.). The name only describes which job boards it reads.

Published by Make No Mistakes LLC. Questions and feature requests: open an issue on this Actor's Issues tab.