Levels.fyi Salary Scraper
Pricing
from $1.28 / 1,000 salary sample scrapeds
Levels.fyi Salary Scraper
Scrape tech salary and total-compensation data from Levels.fyi by company and role. Returns per-level pay breakdowns (base, stock, bonus, total, median, percentiles) plus individual offer samples, with built-in new-offer detection to track pay changes over time.
Pricing
from $1.28 / 1,000 salary sample scrapeds
Rating
0.0
(0)
Developer
Matheus Coelho
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Levels.fyi Salary Scraper — Tech Compensation Data by Company & Role
Need to know what a company actually pays? This actor pulls tech salary and total-compensation data from Levels.fyi for any company and role — the base, stock, bonus, and total comp broken down by level, plus individual offer samples with years of experience, location, and offer date.
Give it a list of companies (google, amazon, meta, ...) and a role
(software-engineer, product-manager, ...) and get back clean, structured,
exportable compensation data — ready for benchmarking, recruiting, or
negotiation research.
Why this scraper
- Per-level pay breakdown, ready-made — every run returns a compensation summary for each level (base, stock, bonus, total comp, sample count, and a link to the level page). Most scrapers just dump raw rows; this one hands you the intelligence layer buyers actually want.
- Compensation monitoring built in — with Detect new offers on (it is
by default), every run remembers the offers it has already seen per
company/role and flags brand-new ones with
isNew: true, plus a count of new offers. Run it on a schedule and you'll see the day pay shifts at a target company. No other Levels.fyi scraper tracks this across runs. - Fast & cheap — reads the data straight from the page instead of driving a browser, so runs finish in seconds.
- Rich, granular data — title, level, focus area, years of experience, years at company, location, base / stock / bonus / total comp, and offer date for every sample.
- Country filter — restrict results to a single country when you need local benchmarks.
How to use it (30 seconds)
- Enter one or more companies (Levels.fyi URL slugs, e.g.
google). - Set the role (default
software-engineer) and press Start. - Download the results as JSON, CSV, or Excel — or pipe them into Make, Zapier, n8n, Google Sheets, or your own webhook via Apify integrations.
To track pay over time, save your input as a task and add a schedule (e.g. weekly). Each run reports how many offers are new since the last one.
Input
| Field | Type | Description |
|---|---|---|
companies | array | Company slugs from the Levels.fyi URL (e.g. google, amazon). |
jobFamily | string | Role slug (default software-engineer). |
country | string | Optional Levels.fyi numeric country id (e.g. 254 = US, 43 = Canada). |
maxSamplesPerCompany | integer | Max individual samples per company (default 200). |
includeSamples | boolean | Return individual offers, not just aggregates (default true). |
detectNewOffers | boolean | Flag new offers vs. last run (default true). |
Output
Two record types. A per-level summary (returned in full regardless of the sample cap):
{"recordType": "levelSummary","company": "google","role": "software-engineer","level": "l3","levelName": "SWE II","sampleCount": 33,"base": 161788,"stock": 34280,"bonus": 8702,"totalCompensation": 204770,"levelPageUrl": "https://www.levels.fyi/companies/google/salaries/software-engineer/levels/l3"}
And individual offer samples:
{"recordType": "sample","company": "google","role": "software-engineer","title": "Software Engineer","level": "L3","yearsOfExperience": 1,"location": "Los Angeles, CA","offerDate": "2026-07-06T16:12:08.865+00:00","baseSalary": 140000,"stock": 20000,"bonus": 0,"totalCompensation": 160000,"isNew": true}
Each run also saves a compact summary (levels, samples, and new offers per
company) as the run's OUTPUT — handy when an integration only needs to know
"did pay change?" without reading the whole dataset.
What people use it for
Benchmark compensation across companies
Feed in a list of competitors and one role to compare total comp level-by-level — exactly what you need to set or defend a pay band.
Get alerted when pay shifts at a target company
Schedule a run with Detect new offers on. When totalNewOffers > 0,
trigger a Slack/email alert through an Apify integration and see fresh offers
as they land.
Recruiting & talent-market intelligence
Recruiters and staffing teams: know what candidates are really being offered at each level before making an offer, and spot where the market is moving.
Negotiation research
Going into an offer conversation? Pull the level breakdown and recent samples for the company and role so you walk in with real numbers.
Comp & HR analytics at scale
Build your own compensation dataset across dozens of companies and roles for dashboards, reports, or models — exported straight to CSV or your warehouse.
FAQ
Which companies and roles can I scrape?
Any company and role that exists on Levels.fyi. Use the exact slugs from the
URL: levels.fyi/companies/<company>/salaries/<role> — e.g. company amazon,
role product-manager.
What's the difference between the level summary and the samples?
The level summary is the aggregate pay for each level (average base, stock, bonus, total, and how many data points it's based on). The samples are the individual anonymized offers that make up those levels, with per-offer detail.
How is this better than browsing Levels.fyi myself?
Manually you look at one company at a time. The actor pulls dozens of companies in one run, exports everything to JSON/CSV, runs on a schedule, and — the part the website can't do — remembers previous runs so it can tell you which offers are new.
Do I need a Levels.fyi account, API key, or proxies?
No. Everything runs inside the actor — no login, no API key, no proxy setup.
Can I filter by country?
Yes. Set the country input to a Levels.fyi numeric country id to restrict
results to that country (leave it empty for worldwide).
Can it send alerts automatically?
Yes. Combine an Apify schedule with an integration (Slack, email, Make, Zapier, n8n, or webhook) that fires when the run summary shows new offers.
Support & feedback
Found a bug or want another role/field? Open a ticket in the Issues tab — I usually respond within a few hours and actor updates ship fast.
If this actor saves you time, please leave a ⭐ review on the Store page. It takes 10 seconds, genuinely helps others find it, and tells me what to build next.
Legal & ethical use
This actor extracts only publicly available, anonymized compensation data that Levels.fyi already publishes — no logins, no private data, no personal identities. You are responsible for using the data in compliance with applicable laws and the terms of service that apply to you.