Levels.fyi Salary Scraper avatar

Levels.fyi Salary Scraper

Pricing

from $1.28 / 1,000 salary sample scrapeds

Go to Apify Store
Levels.fyi Salary Scraper

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

Matheus Coelho

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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)

  1. Enter one or more companies (Levels.fyi URL slugs, e.g. google).
  2. Set the role (default software-engineer) and press Start.
  3. 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

FieldTypeDescription
companiesarrayCompany slugs from the Levels.fyi URL (e.g. google, amazon).
jobFamilystringRole slug (default software-engineer).
countrystringOptional Levels.fyi numeric country id (e.g. 254 = US, 43 = Canada).
maxSamplesPerCompanyintegerMax individual samples per company (default 200).
includeSamplesbooleanReturn individual offers, not just aggregates (default true).
detectNewOffersbooleanFlag 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.

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.