Levels.fyi Salary & Compensation Scraper — Enriched Records avatar

Levels.fyi Salary & Compensation Scraper — Enriched Records

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Levels.fyi Salary & Compensation Scraper — Enriched Records

Levels.fyi Salary & Compensation Scraper — Enriched Records

Scrape individual tech compensation records from Levels.fyi by company and job family — base, stock, bonus, total comp, level, focus, YOE, location and demographics. Every row is pre-enriched with the full company profile, level metadata and p10–p90 percentile bands, plus incremental monitoring.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Corvuslab

Corvuslab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Levels.fyi Scraper

Turn Levels.fyi into clean, structured tech-compensation data — every submission pre-enriched with company, level and percentile context.

Scrape individual tech compensation records from Levels.fyi by company and job family: base salary, stock, bonus, total compensation, level, focus, years of experience, years at company, location, offer date and demographics — one row per real salary submission. Unlike a flat export, every record ships pre-enriched: the full company profile (industry, size, ticker, HQ, founded, vesting schedule), the level's leveling metadata (skill index, workforce %, canonical titles), and the role's p10–p90 percentile bands. No code, with JSON / CSV / Excel / API / AI-agent output and cheap incremental monitoring that only bills for newly-added submissions.

Why this scraper

  • Fast & low-cost — a single company × role page yields dozens of individual records, so large runs stay cheap.
  • 🧾 50+ fields per record — not raw comp numbers: every submission includes the company profile, leveling metadata and percentile bands that flat exports leave out.
  • ♻️ Cheap to monitor — incremental mode bills only for submissions added since the last run (see below).
  • 🔔 Notifications built in — Telegram, Slack, Discord, WhatsApp or any webhook.
  • 🤖 AI- & API-ready — compact output, MCP-friendly, one-click integrations.

✨ Key features

  • 🏢 Company + job-family targeting — pick any companies and from 75+ job families (Software Engineer, Product Manager, Data Scientist, and many more), or paste Levels.fyi company/role URLs directly.
  • 🧾 Individual comp submissions — one row per offer: base, stock, bonus, total compensation, level, focus, years of experience, years at company, location, offer date and demographics.
  • 🏦 Company profile on every row — industry, employee count, company type, stock ticker, year founded, HQ city/state, website, LinkedIn and the vesting schedule/type — context most flat exports omit.
  • 🪜 Leveling metadata on every row — canonical level titles, level order, skill index, % of workforce and target bonus % for the level, so you can compare ladders across companies without a separate lookup.
  • 📊 Percentile bands on every row — the role's p10 / p25 / p50 / p75 / p90 for base, total comp, stock and bonus, so each submission arrives with its full market context built in.
  • 📍 Location scoping — narrow any role to a metro or country (e.g. Bay Area, New York, India, United States).
  • ♻️ Incremental monitoring — schedule it and get only newly-added submissions (tagged NEW / UPDATED / UNCHANGED / EXPIRED); already-seen records are suppressed so a scheduled run bills next to nothing.
  • 🔔 Notifications — Telegram, Slack, Discord, WhatsApp or any webhook (n8n / Make / Zapier).
  • 🤖 AI-ready — compact and drop-empty output modes keep payloads small for LLMs and MCP.

⚙️ Input & output

Input

Configure it in the visual editor — no code needed — or pass JSON via the API.

FieldWhat it does
companiesCompany names or slugs to scrape (e.g. Google, Meta, goldman-sachs).
jobFamiliesWhich roles to pull, from 75+ job families (defaults to Software Engineer).
locationsOptional metro/country scope (e.g. san-francisco-bay-area, india, united-states).
startUrlsPaste Levels.fyi company or role URLs directly.
maxResultsCap the number of records (0 = unlimited).
compactEmit only the core compensation fields (ideal for AI agents).
incrementalModeEmit only submissions added since the last run.
proxyConfigurationOptional — runs direct by default at typical volumes.

…and 20 inputs in total — the table shows the essentials; the rest cover output/AI modes, incremental state, notification channels and advanced tuning, all in the visual editor.

Example inputs

{ "companies": ["Google", "Meta", "Amazon"], "jobFamilies": ["software-engineer"], "maxResults": 300 }
{ "companies": ["Nvidia"], "jobFamilies": ["hardware-engineer", "software-engineer"], "locations": ["san-francisco-bay-area"] }
{ "companies": ["Stripe"], "jobFamilies": ["product-manager"], "incrementalMode": true }

Output

Most scrapers hand you flat comp numbers and stop there. This scraper pre-enriches every record with three layers of market context baked into a single row — no joins, no lookups, no post-processing:

  • 🏦 Company profile — industry, employee count, type, stock ticker, year founded, HQ, website, LinkedIn, vesting schedule and vesting type.
  • 🪜 Leveling metadata — canonical level titles, level order, skill index, % of workforce and target bonus % — compare engineering ladders across companies in a single query.
  • 📊 Percentile bands — the role's p10 / p25 / p50 / p75 / p90 for base, total comp, stock and bonus, so every submission arrives with its full market context.

Example output

{
"id": "90114291-1e67-42fc-9ab0-a430fa6971f4",
"url": "https://www.levels.fyi/salaries/90114291-1e67-42fc-9ab0-a430fa6971f4",
"source": "levels.fyi",
"company": "Google",
"jobFamily": "Software Engineer",
"title": "Software Engineer",
"level": "L3",
"focus": "Web Development (Front-End)",
"baseSalary": 150000,
"stockGrantValue": 35000,
"bonus": 0,
"totalCompensation": 185000,
"yearsOfExperience": 0,
"yearsAtCompany": 0,
"location": "San Jose, CA",
"gender": "male",
"offerDate": "2026-07-20T02:17:04.218+00:00",
"levelTitles": ["L3", "SWE II"],
"levelOrder": 0,
"percentWorkforce": 20,
"skillIndex": 10.2,
"rolePercentiles": {
"baseSalary": { "p10": 150000, "p25": 170000, "p50": 200000, "p75": 232000, "p90": 253000 },
"totalCompensation": { "p10": 175000, "p25": 210000, "p50": 305200, "p75": 412000, "p90": 513000 },
"stock": { "p10": 25000, "p25": 40000, "p50": 80000, "p75": 142000, "p90": 212500 },
"bonus": { "p10": 0, "p25": 0, "p50": 25200, "p75": 38000, "p90": 47500 },
"locationName": "United States"
},
"companyIndustry": "Tech",
"companySize": 188000,
"companyType": "public",
"companyTicker": "GOOG",
"companyYearFounded": 1998,
"companyHqCity": "Mountain View",
"companyHqState": "California",
"companyWebsite": "https://www.google.com",
"vestingType": "RSU",
"vestingSchedule": "38/12,32/12,20/12,10/12|33/12,33/12,22/12,12/12",
"scrapedAt": "2026-08-18T16:45:07.418085+00:00"
}

Every field is present in standard mode (missing values are null); compact mode returns the core compensation fields only, for lean AI/MCP payloads.


📚 What data can you extract from Levels.fyi?

Core compensation — base salary, stock grant value, bonus and total compensation, annualized and normalized to USD.

Role & submission — job family, title, level, focus, years of experience, years at company, location, offer date, and demographics (gender where submitted).

Enriched context (unique to this scraper):

  • 🏦 Company profile — name, slug, website, industry, size, type, stock ticker, year founded, HQ city/state, LinkedIn, logo, vesting schedule and vesting type. Most scrapers require you to look this up separately; here it's on every row.
  • 🪜 Leveling metadata — canonical level titles, level order, skill index, % of workforce, target bonus %. Compare ladders across companies without a separate data source.
  • 📊 Percentile bands — role-scoped p10 / p25 / p50 / p75 / p90 for base, total comp, stock and bonus. Each submission comes with its market position built in.

Change tracking — content hash and changeType (NEW / UPDATED / UNCHANGED / EXPIRED) for incremental runs.


💡 What can you do with Levels.fyi data?

  • Compensation benchmarking — build salary bands by company, level and location from real submissions, each pre-loaded with its p10–p90 context so you skip the aggregation step.
  • Recruiting & offer strategy — see what candidates are actually being paid at target companies and levels, with the vesting schedule and stock mix already attached, before you extend an offer.
  • Market & talent research — track how pay, leveling and stock mix vary across companies and industries using the company profile and skill-index data on every row.
  • Comp monitoring — schedule it with incremental mode + notifications for a live feed of newly-added offers at the companies you track.
  • Enrichment & aggregation — feed clean, typed compensation data — already joined with company, level and percentile context — into your own app, sheet or warehouse.
  • AI agents & pipelines — compact output plugs straight into LLM/MCP workflows with all the context an agent needs in one record.

♻️ Incremental monitoring — pay for new submissions, not repeats

Schedule the actor and turn on incremental mode: each run compares against the last and emits only NEW / UPDATED / EXPIRED records — already-seen submissions are suppressed, so a daily watch costs a fraction of a full re-scrape.

Daily churnof 1,000 trackedbillable recordsyou save
5 %1,0005095 %
15 %1,00015085 %
30 %1,00030070 %

The first run seeds the baseline and bills in full; every run after that bills only the delta.


🚀 How to scrape Levels.fyi

  1. Open the actor and add one or more companies (e.g. Google) and pick the job families you want — or paste a Levels.fyi URL.
  2. (Optional) Add locations to scope each role, and set Max records.
  3. (Optional) Turn on incremental mode and a notification channel, then Schedule it.
  4. Click Start.
  5. Download the data as JSON, CSV or Excel, or pull it from the API.

New to Apify? Create a free account — it comes with monthly credit, no credit card required.


🔌 Integrations & export

Export to JSON, CSV, Excel or an HTML table, or pull from the REST API and the JavaScript / Python clients. Runs on a schedule, connects to Google Sheets, Slack, Make, Zapier and n8n, and works as an MCP tool for AI agents — compact mode keeps token usage small.


❓ FAQ

Do I need a proxy or login? No — it runs out of the box; Apify Proxy is available under Advanced for high-volume runs.

What counts as one record? One individual compensation submission — a single reported offer — enriched with its company, level and percentile context.

Can I get only new submissions on a schedule? Yes — turn on incremental mode and schedule it; each run emits only what changed and can notify your channel.

Which roles are supported? 75+ job families, from Software Engineer, Product Manager and Data Scientist to hardware, design, finance, legal, sales and more.

What formats can I export? JSON, CSV, Excel, HTML table, or via the API.

Is it good for AI agents? Yes — enable compact mode; the output is MCP-friendly.

How many records can I get? As many as the site exposes per company × role — set maxResults (0 = unlimited).

What makes this scraper different from a flat CSV export? Every record ships pre-enriched with the company profile, leveling metadata and p10–p90 percentile bands — 50+ structured fields per submission, ready to use without joins or lookups.

Is scraping this legal? The actor collects only publicly available data. You are responsible for how you use it, including any personal data and GDPR-style obligations.


This actor accesses only publicly available data on Levels.fyi. You are responsible for how you use the extracted data — in particular any personal information — and for complying with the site's terms and applicable law (including the GDPR where it applies). Not affiliated with, endorsed by, or sponsored by Levels.fyi.


Keywords: levels.fyi scraper · levels.fyi api · levels.fyi salary scraper · levels.fyi.com scraper · tech compensation data · tech salary scraper · salary data scraper · compensation benchmarking · total compensation data · software engineer salaries · salary percentile bands · stock and RSU data · salary monitoring · export to CSV/Excel/JSON · no-code scraper · MCP tool for AI agents