Lever Jobs Scraper - Postings, Salary & Apply Links avatar

Lever Jobs Scraper - Postings, Salary & Apply Links

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Lever Jobs Scraper - Postings, Salary & Apply Links

Lever Jobs Scraper - Postings, Salary & Apply Links

Scrape every open role from any company's Lever (jobs.lever.co) board: title, team, department, location, remote/hybrid/onsite, salary, full description & direct apply URL. No API key, no login. Filter by keyword, location, team, workplace type & country.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Categories

Features

Limited permissions

Share

Apify Actor Maintenance Data Format Zero Login Deep Pagination

Extract every open role from any company's Lever careers board in one fast, reliable run. This high-performance Lever jobs scraper ingests public company career boards hosted on Lever (jobs.lever.co) and extracts flat, structured job records — including job title, hiring team, department, location, workplace arrangement (remote, hybrid, on-site), compensation bands, full job description text, structured requirements, and direct one-click apply links.

Export every posting directly to JSON, CSV, Excel, or consume via REST API and Webhooks.

Built for technical recruiters, executive search agencies, job aggregators, HR-tech platforms, compensation analysts, sales intelligence teams, and private equity investors monitoring hiring signals and talent velocity across tech companies worldwide.


⚡ At a glance

FeatureSpecification
Target ATSLever.co (jobs.lever.co/{company})
Input MethodsCompany slugs (spotify, ro, gopuff) or full Lever board URLs
Data FormatsJSON, CSV, Excel (XLSX), XML, HTML Table, RSS
Speed & RuntimeDirect lightweight HTTP (~500 postings processed in 2–4 seconds)
Default Concurrency5 parallel company boards (configurable up to 15)
Deep PaginationAutomatic batch pagination (500 per call, 1,000+ roles unlocked)
Proxy RequirementApify Datacenter Proxy (anti-rate-limiting IP distribution)
DeduplicationAutomatic deduplication across unique job posting IDs
Salary IntelligenceDual-mode: Structured ATS ranges + NLP pay band regex extraction

🔎 Why scrape Lever career boards?

Lever is among the most widely adopted enterprise applicant tracking systems (ATS) globally, powering the career sites of thousands of fast-growing startups, technology unicorns, and publicly traded organizations. Every company's board represents a real-time index of corporate growth priorities and headcount allocations:

  • Hiring Signals & Expansion Clues: Which teams (Engineering, Sales, Product, AI Research) are adding headcount, and which locations are receiving executive budget.
  • Pay Transparency & Compensation Benchmarking: Live salary ranges disclosed under mandatory US and EU pay transparency statutes (California, New York, Colorado, Washington, EU Pay Transparency Directive).
  • Skill Requirements & Tech Stack Insights: Deep job description texts reveal exact programming languages, frameworks, cloud vendors, and tooling used internally.
  • Remote vs. On-Site Workforce Policies: Detailed tracking of remote flexibility, hybrid schedules, and mandatory in-office hubs.

Because Lever does not offer a unified global search directory across all tenant companies, individual boards must be accessed per company slug. This Lever scraper eliminates the manual toil by ingesting hundreds of company slugs in parallel, normalizing every posting into a unified data schema.

Key business use cases

  • 🎯 Headhunting & Talent Sourcing: Continuously monitor competitor career pages to identify newly opened leadership and engineering roles for recruitment poaching.
  • 💼 Job Board Syndication & Aggregation: Ingest live, verified job listings directly from corporate ATS boards into niche job boards without expired postings.
  • 💰 Labor Economics & Salary Benchmarking: Extract and normalize base salaries, hourly rates, and equity bands across tech job titles and geographic regions.
  • 🔍 B2B Sales Prospecting & Account-Based Marketing: Detect buying intent by tracking companies hiring for roles that manage or implement specific enterprise software categories.
  • 📈 Venture Capital & Market Intelligence: Track portfolio company headcount growth and observe competitive scaling dynamics between competing startups.

✨ Features & capabilities

  • 🏢 Multi-Company Batch Extraction: Supply dozens or hundreds of company slugs or URLs; the actor scrapes them concurrently using worker pools.
  • 🔄 Unlocked 1,000+ Pagination: Multi-page pagination (skip/limit architecture) walks through boards with hundreds or thousands of postings without truncation.
  • 💵 Advanced Salary Extraction Engine:
    • Ingests native structured compensation parameters when published.
    • Automatically runs an advanced regex parser over job descriptions to capture pay transparency bands (e.g. $145,000 - $185,000/yr, $65.00/hr).
  • 📝 Full Text & Structured Requirements: Captures both full plain text descriptions and parsed requirement sections (responsibilities, qualifications, benefits).
  • 🧹 Robust Client-Side Filtering: Slice boards precisely by keyword, location, team, department, commitment type (Full-time, Contract, Intern), workplace flexibility, or ISO country code.
  • ⚡ Zero Headless Browser Overhead: Executes via pure HTTP calls, delivering blisteringly fast execution and minimal compute unit consumption.
  • 🔒 Clean Deduplication: Internal hash sets guarantee zero duplicate posting IDs across boards, even when roles are cross-listed in multiple locations.

Need inspiration for company slugs? Here is a representative list of companies known to host or have hosted active careers boards on Lever:

Company SlugCompany NameIndustry / VerticalPrimary Locations
spotifySpotifyDigital Audio & StreamingStockholm, London, New York, Remote
roRo (Roman Health)Digital Healthcare & TelehealthNew York, San Francisco, Remote US
gopuffGopuffInstant Grocery & DeliveryPhiladelphia, Chicago, London, Remote
palantirPalantir TechnologiesEnterprise Big Data & AIDenver, New York, London, Washington
affirmAffirmFinTech & Buy Now Pay LaterSan Francisco, Chicago, Remote
brexBrexCorporate Card & Spend ManagementSan Francisco, New York, Remote
canvaCanvaDesign & Visual CommunicationSydney, London, Austin, Remote
plaidPlaidFinancial Data InfrastructureSan Francisco, New York, London

📥 Input parameters

The scraper accepts flexible JSON input configurations. All parameters are optional, with smart demo fallbacks enabled when inputs are blank:

ParameterTypeDefaultDescription
companiesArray["spotify", "ro"]List of Lever company slugs (e.g., spotify, ro, gopuff) or full career URLs (https://jobs.lever.co/spotify).
searchTermString""Filter postings containing this keyword in title, team, department, or description.
locationString""Substring match against location strings (e.g. New York, London, Remote).
teamString""Case-insensitive filter matching hiring team (e.g. Engineering, Marketing).
departmentString""Case-insensitive filter matching corporate department.
commitmentString""Filter by commitment type (e.g. Full-time, Contract, Intern).
workplaceTypeString"any"Workplace arrangement filter: any, remote, hybrid, or onsite.
countryString""2-letter ISO country code filter (e.g. US, GB, DE, CA).
includeDescriptionBooleantrueWhen true, includes full job description text and section breakdowns.
maxItemsInteger0Total maximum postings to save. Set to 0 for unlimited scraping. Fast prefill is set to 100.
maxConcurrencyInteger5Number of company boards to process in parallel (1 to 15).
proxyConfigurationObjectDatacenterProxy configuration. Apify Proxy prevents transient rate limits across large batches.

Example input configurations

1. Fast multi-company engineering sweep
{
"companies": ["spotify", "ro", "gopuff"],
"team": "Engineering",
"workplaceType": "remote",
"maxItems": 100
}
2. Compensation benchmarking across US sales roles
{
"companies": ["ro", "gopuff"],
"searchTerm": "Account Executive",
"country": "US",
"includeDescription": true,
"maxItems": 200
}
3. Deep harvest of large corporate boards
{
"companies": ["https://jobs.lever.co/gopuff"],
"includeDescription": false,
"maxItems": 0,
"maxConcurrency": 5
}

📊 Output data structure

Each scraped record provides a rich, flat schema designed for direct analytical querying or relational database storage:

👔 Role & categorization attributes

FieldTypeCoverageDescription
idString🟢 HighUnique Lever posting UUID identifier.
companyString🟢 HighLever company slug identifier (e.g. "spotify").
titleString🟢 HighOfficial job posting title.
teamString🟢 HighInternal team assignment (e.g. "Backend Engineering").
departmentString🟡 ConditionalBroader department classification (e.g. "Technology").
commitmentString🟢 HighEmployment classification (e.g. "Full-time", "Intern").
workplaceTypeString🟢 HighStandardized workplace model: "remote", "hybrid", or "onsite".
isRemoteBoolean🟢 HighTrue if the role permits remote work.

📍 Location & geography attributes

FieldTypeCoverageDescription
locationString🟢 HighPrimary job location string (e.g. "New York, NY").
allLocationsArray🟢 HighList of all eligible working locations and offices.
countryString🟢 HighStandardized 2-letter ISO country code (e.g. "US").

💰 Compensation & timing attributes

FieldTypeCoverageDescription
salaryMinFloat🟡 ConditionalMinimum annual or hourly salary rate.
salaryMaxFloat🟡 ConditionalMaximum annual or hourly salary rate.
salaryCurrencyString🟡 ConditionalCurrency ISO code (e.g. "USD", "GBP", "EUR").
salaryIntervalString🟡 ConditionalRate frequency: "per-year-salary" or "per-hour".
salarySourceString🟡 ConditionalOrigin of salary data: "structured" or "description".
postedAtString🟢 HighISO-8601 UTC timestamp when the job was published.
postedTimestampInteger🟢 HighPosting timestamp in epoch milliseconds.
FieldTypeCoverageDescription
urlString🟢 HighDirect public candidate posting URL (https://jobs.lever.co/...).
applyUrlString🟢 HighDirect one-click application form URL.
descriptionTextString🟢 HighFull job description text normalized without messy HTML tags.
sectionsArray🟢 HighStructured array of job sections (title and text content).
scrapedAtString🟢 HighISO-8601 execution timestamp.

Example JSON output item

{
"id": "e4f8a319-278b-491c-8b82-93cb128b9410",
"company": "ro",
"title": "Senior Data Engineer, Platform",
"team": "Data Engineering",
"department": "Engineering",
"commitment": "Full-time",
"workplaceType": "remote",
"isRemote": true,
"location": "New York, NY",
"allLocations": ["New York, NY", "Remote US"],
"country": "US",
"salaryMin": 165000,
"salaryMax": 195000,
"salaryCurrency": "USD",
"salaryInterval": "per-year-salary",
"salarySource": "description",
"postedAt": "2026-11-08T14:22:15.000Z",
"postedTimestamp": 1794147735000,
"url": "https://jobs.lever.co/ro/e4f8a319-278b-491c-8b82-93cb128b9410",
"applyUrl": "https://jobs.lever.co/ro/e4f8a319-278b-491c-8b82-93cb128b9410/apply",
"descriptionText": "About the Role: We are seeking an experienced Senior Data Engineer...",
"sections": [
{
"title": "What You'll Do",
"content": "• Architect distributed data pipelines using dbt and Snowflake.\n• Partner with product analysts..."
}
],
"scrapedAt": "2026-11-10T13:38:00.000Z"
}

📈 Pagination & scale guide

  • Board Batching: Lever publishes postings in batches of 500 items per call.
  • Deep Pagination: Setting maxItems: 0 automatically paginates deep corporate boards spanning thousands of roles until all postings are collected.
  • Batch Processing: When supplying dozens of company slugs, workers scrape boards concurrently up to your specified maxConcurrency level.
  • Lean Scraping: Disabling includeDescription omits lengthy textual sections, speeding up transfers and reducing storage consumption by ~85% for headline-only monitoring.

💡 Practical scraping tips

  1. How to Find Lever Slugs: Look at any company's job link. If the URL points to https://jobs.lever.co/netflix or redirects from careers.company.com to Lever, the final path component is the slug (e.g. netflix).
  2. Handle Multi-Location Roles: Companies often advertise a single engineering role across multiple cities. The actor captures the primary location in location and keeps all alternatives in allLocations.
  3. Filter by Workplace Arrangement: To surface exclusively work-from-home opportunities, configure workplaceType: "remote". The actor checks both explicit Lever badges and location tags.
  4. Compensation Intelligence: Many tech companies now embed salary brackets inside the body text to comply with local laws. The actor's NLP parser automatically isolates these numbers and tags them with "salarySource": "description".

🛠️ Step-by-step workflow guide

Step 1: Input target companies

Open the actor on the Apify Console. Enter one or more company slugs or URLs into companies:

spotify
ro
gopuff
palantir

Step 2: Configure extraction filters

  • Select your target team (Engineering), workplace arrangement (remote), or keyword (Staff Software Engineer).
  • Toggle includeDescription based on whether you require full textual job descriptions.

Step 3: Run the scraper

Click Start. Workers fetch boards concurrently in seconds. Real-time run logs display progress per company.

Step 4: Export your dataset

Download collected listings in JSON, CSV, or Excel formats, or configure a webhook to sync directly into Airtable, Notion, or your candidate tracking system.


🔗 Compatible tools & export formats

  • File Downloads: Direct one-click export to JSON, CSV, Excel, XML, or TSV.
  • No-Code Automation: Trigger runs or pipe newly posted jobs into Make.com, Zapier, n8n, or Google Sheets.
  • Programmatic API: Ingest roles dynamically using Python or Node.js:

Python example

from apify_client import ApifyClient
import pandas as pd
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("haketa/lever-jobs-scraper").call(run_input={
"companies": ["spotify", "ro", "gopuff"],
"workplaceType": "remote",
"maxItems": 150
})
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
df = pd.DataFrame(items)
print(f"Extracted {len(df)} remote roles. Sample titles:\n{df['title'].head()}")

Node.js example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('haketa/lever-jobs-scraper').call({
companies: ['spotify', 'ro'],
searchTerm: 'engineer',
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Fetched ${items.length} engineering roles from Lever.`);

🗄️ Dataset storage & retention

Postings collected by the scraper are stored securely inside your Apify default dataset:

  • Zero Schema Drift: Every job object strictly respects the dataset schema for direct integration into BI tools like Snowflake, BigQuery, or PostgreSQL.
  • Export Formats: Export anytime in CSV, JSON, Excel, XML, or TSV formats with a single click.
  • Persistent Data Archives: Connect the actor to an Apify Named Dataset to maintain a persistent historical archive of all seen corporate roles over time.
  • Automated Webhooks: Configure run-level webhooks that post a payload to your custom API whenever a new job crawl completes.

❓ Frequently Asked Questions

Do I need a Lever API key or employer credentials?

No. Lever publishes public career boards openly for job candidates. This scraper accesses public board feeds without credentials, tokens, or logins.

How many companies can I scrape in a single run?

There is no hard limit on company batch sizes. You can supply hundreds of company slugs in the input array; the actor queues and processes them using configurable concurrency workers.

Why is salary null on certain listings?

Companies are not universally required to publish compensation. When a company omits salary figures from both their structured data and description text, salary fields evaluate to null.

Does Lever have a global search across all companies?

No. Lever operates strictly on a tenant-by-tenant basis (jobs.lever.co/{slug}). You must supply the company slugs you wish to scrape.

What happens if a company slug is inactive or misspelled?

If a company slug returns a 404 error (no active Lever board), the actor logs a descriptive warning and moves immediately to the next company without failing the entire run.

How frequently should I monitor career boards?

Most high-growth companies post and close roles on a weekly or bi-weekly cycle. Setting up an Apify automated schedule to run every Monday and Thursday provides an optimal balance between fresh data and cost efficiency.


Can I differentiate between contract and permanent roles?

Yes. The actor populates the commitment field directly from Lever metadata (e.g., "Full-time", "Part-time", "Contract", "Internship"). You can also pre-filter roles by setting the commitment input parameter to "Contract" or "Full-time".

Does the scraper fetch archived or closed job postings?

No. Lever immediately removes unlisted or closed positions from its public career feeds. Scraped items represent exclusively active, open requisitions currently accepting candidate applications.

Can I extract salary data for UK or European postings?

Yes. When UK or European employers state compensation ranges in the job overview (e.g. £75,000 - £90,000 or €80.000 - €95.000), the scraper regex engine extracts the minimum, maximum, and respective currency code into salaryMin, salaryMax, and salaryCurrency.

📋 Changelog

v1.2 (2026-11)

  • 1,000+ Deep Pagination Unlocked: Enhanced multi-page skip/limit iteration to effortlessly traverse enterprise boards with 1,000+ active openings.
  • Fast Prefill Execution: Streamlined default validation run to 100 items for instant verification in under 15 seconds.
  • Upgraded Salary Parser: Improved NLP regex extraction for multi-currency ranges, hourly brackets, and UK/EU salary disclosures.
  • Enhanced Location Normalization: Added derived isRemote boolean and full multi-location array extraction.

v1.1 (2026-10)

  • Added batch company ingestion with concurrent worker pools.
  • Implemented structured sections parsing for requirements and benefits.
  • Standardized ISO timestamp attributes.

v1.0 (2026-09)

  • Initial release featuring lightweight HTTP job extraction from Lever ATS boards.
⌂ 换网址