Lever Jobs Scraper & Hiring Signals
Pricing
from $0.30 / 1,000 job postings
Lever Jobs Scraper & Hiring Signals
Export public global and EU Lever jobs with salary ranges, remote status, all locations, descriptions, requirements, benefits, recency, departments, teams, and direct application URLs.
Pricing
from $0.30 / 1,000 job postings
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
7 days ago
Last modified
Categories
Share
Lever Jobs Scraper
Scrape public job postings from Lever-hosted company career pages and export clean hiring data for recruiting, lead generation, job-board ingestion, labor-market research, and workflow automation.
What does Lever Jobs Scraper do?
Lever Jobs Scraper collects public roles from companies that publish openings on Lever.
It accepts one or more Lever company slugs, such as spotify, and returns structured job records.
You can also paste full Lever board URLs such as https://jobs.lever.co/spotify.
The actor returns job titles, job IDs, application URLs, hosted URLs, locations, departments, teams, work type, descriptions, and timestamps.
Who is it for?
Lever Jobs Scraper is for teams that need current hiring data from public company career pages.
š Recruiters use it to monitor which companies are hiring and where headcount is growing.
š Sales teams use it to find companies expanding specific departments.
š§āš» Job-board operators use it to import live roles from company career pages.
š Labor-market analysts use it to compare hiring patterns across multiple companies.
š¤ AI agent builders use it to feed fresh job data into matching, alerts, and enrichment workflows.
Why use this actor?
Lever pages are widely used by startups, scale-ups, and larger technology companies.
Manual monitoring is slow when you need to watch dozens or hundreds of companies.
This actor turns public job pages into a normalized dataset that is easy to export, filter, and connect to other tools.
What data can you extract?
| Field | Description |
|---|---|
companySlug | Lever company slug supplied in the input |
jobId | Lever posting identifier |
title | Job title |
hostedUrl | Public Lever job page |
applyUrl | Application URL |
location | Job location category |
department | Department category |
team | Team category |
workType | Commitment or work type |
workplaceType | Remote, hybrid, or workplace category when available |
country | Country field when available |
createdAt | Posting creation time in ISO format |
descriptionPlain | Plain text description |
descriptionHtml | Optional HTML description |
lists | Structured sections from the posting |
additionalPlain | Additional plain text content |
scrapedAt | Time the actor saved the item |
How much does it cost to scrape Lever jobs?
The actor uses pay-per-event pricing.
There is a small start charge per run and a per-job charge for each job posting saved to the dataset.
For a typical company board with 100 jobs, the default target price is around $0.50 per 1,000 job postings before final tiered pricing is set on the Apify platform.
You can keep costs predictable by setting a low limit while testing.
How to use Lever Jobs Scraper
- Open the actor on Apify.
- Add one or more Lever company slugs.
- Set a maximum number of job postings.
- Optionally add department, team, location, or work-type filters.
- Run the actor.
- Download the dataset as JSON, CSV, Excel, XML, or HTML.
Input example
{"companySlugs": ["spotify", "netflix"],"limit": 50,"departments": ["Engineering"],"locations": ["Remote"],"includeDescriptionHtml": false}
Input options
companySlugs is required.
Use the slug from the Lever job board URL.
For https://jobs.lever.co/spotify, the slug is spotify.
limit controls the maximum number of jobs saved across all companies.
departments filters by Lever department category.
locations filters by partial location text.
teams filters by Lever team category.
workTypes filters by commitment values such as Full-time or Internship.
includeDescriptionHtml adds original HTML description fields when you need formatting.
Output example
{"companySlug": "spotify","jobId": "abc123","title": "Data Engineer","hostedUrl": "https://jobs.lever.co/spotify/...","applyUrl": "https://jobs.lever.co/spotify/.../apply","location": "New York","team": "Platform","department": "Engineering","workType": "Full-time","commitment": "Full-time","createdAt": "2026-06-20T00:00:00.000Z","descriptionPlain": "About the role...","scrapedAt": "2026-06-20T05:00:00.000Z"}
Tips for best results
ā Start with one company slug and a small limit.
ā Use company slugs exactly as they appear in the Lever URL.
ā
Use location filters like Remote, London, or New York for broad matching.
ā Leave filters empty if you want the full board.
ā Enable HTML descriptions only when your workflow needs formatted text.
Common use cases
Track new roles at target accounts.
Build a job-alert feed for specific companies.
Monitor engineering hiring by location.
Create company expansion signals for sales outreach.
Collect clean job data for market maps.
Feed job descriptions into an AI matching workflow.
Integrations
Connect the dataset to Google Sheets for a live hiring tracker.
Export CSV into a CRM to create account expansion alerts.
Use Apify webhooks to trigger Slack notifications when a run finishes.
Use Make or Zapier to route new jobs to downstream systems.
Use the Apify API to schedule daily or weekly company monitoring.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/lever-jobs-scraper').call({companySlugs: ['spotify'],limit: 25});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientclient = ApifyClient('MY-APIFY-TOKEN')run = client.actor('fetch_cat/lever-jobs-scraper').call(run_input={'companySlugs': ['spotify'],'limit': 25,})print(run['defaultDatasetId'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~lever-jobs-scraper/runs?token=MY-APIFY-TOKEN' \-H 'Content-Type: application/json' \-d '{"companySlugs":["spotify"],"limit":25}'
MCP usage
You can use this actor from Claude Desktop, Claude Code, or other MCP clients through Apify MCP.
Use an MCP URL with the actor tool selected:
https://mcp.apify.com/?tools=fetch_cat/lever-jobs-scraper
Add it in Claude Code with:
$claude mcp add apify-lever-jobs --transport http "https://mcp.apify.com/?tools=fetch_cat/lever-jobs-scraper"
Claude Desktop JSON configuration example:
{"mcpServers": {"apify-lever-jobs": {"url": "https://mcp.apify.com/?tools=fetch_cat/lever-jobs-scraper"}}}
Example prompts:
- "Run the Lever Jobs Scraper for spotify and summarize engineering roles."
- "Check whether these target companies are hiring in London."
- "Export the latest Lever jobs for my sales account list."
Scheduling
Schedule this actor daily, weekly, or monthly from Apify Console.
For monitoring, use a small company list per run and keep limit aligned with your expected board sizes.
Use webhooks when you want a downstream process to start as soon as the dataset is ready.
Handling invalid or empty boards
If a company slug is invalid, the actor logs the failure and records it in the RUN-SUMMARY key-value store record.
If one slug fails but another succeeds, the run still completes and returns available jobs.
If every supplied slug fails, the run fails so you can notice the input problem.
If a valid company has no open jobs, the actor can finish with zero items.
Data quality notes
Lever company boards may use different department, team, and commitment values.
Some postings may omit optional fields such as country or workplace type.
Descriptions are returned as plain text by default.
HTML fields can be enabled for workflows that preserve formatting.
Legality
This actor extracts publicly available job postings.
You are responsible for using the data lawfully and respecting applicable terms, privacy rules, and data protection requirements.
Do not use scraped data for spam, discrimination, or unlawful profiling.
FAQ
Can I scrape multiple Lever companies in one run?
Yes. Add multiple values to companySlugs and set a limit that matches your expected volume.
What is a Lever company slug?
It is the part after jobs.lever.co/ in a Lever board URL.
For https://jobs.lever.co/spotify, use spotify.
Why did I get zero results?
The company may have no public roles, the filters may be too strict, or the slug may not be a Lever board slug.
Check the run log and RUN-SUMMARY record for failed slugs.
Can I include HTML job descriptions?
Yes. Set includeDescriptionHtml to true.
Troubleshooting
If a slug fails, try opening the corresponding Lever jobs page in a browser and confirm it exists.
If filters remove too many rows, run once without filters and inspect the department, team, and location values in the dataset.
If your automation needs every field, export JSON rather than CSV so nested lists stay intact.
Related scrapers
Explore related Apify actors from fetch_cat for company research, lead generation, and market-monitoring workflows:
- https://apify.com/fetch_cat/google-search-results-scraper
- https://apify.com/fetch_cat/google-trending-searches-scraper
- https://apify.com/fetch_cat/youtube-search-results-scraper
Changelog
Initial version supports public Lever company job boards, multi-company inputs, global limits, category filters, optional HTML descriptions, and normalized job posting output.