VOOZH about

URL: https://apify.com/crawlerbros/levels-fyi-scraper

โ‡ฑ Levels.fyi Scraper ยท Apify


Pricing

from $3.00 / 1,000 results

Go to Apify Store

Scrape Levels.fyi compensation data with base salary, equity, bonus, and total compensation by company, role, level, and location. Pulls from public Next.js hydration data; no auth, structured output.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

๐Ÿ‘ Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a month ago

Last modified

Share

Scrape compensation data from Levels.fyi โ€” base salary, equity, bonus, and total comp by company, role, level, and location. Pulls structured data from the public Next.js hydration blob; no auth required, fast, and deterministic.

What this actor does

  • Reads compensation data straight from the __NEXT_DATA__ JSON Levels.fyi already ships in every page response โ€” no DOM scraping, no rate limits beyond Cloudflare.
  • Eight modes covering every reliable Levels.fyi lookup axis: by company, by company ร— role, by company ร— role ร— level, by role, by role ร— location, popular companies, top locations, and free-form URL.
  • Auto-escalates to Apify residential proxy if Cloudflare blocks the direct fetch (toggle in input).
  • Emits flat per-sample records (one row per submitted offer) plus level aggregates and percentile summaries โ€” pick what you want via toggles.

Modes

ModeURL patternWhat you get
byCompany/companies/<slug>/salariesCompany overview (median TC across all roles, highest- / lowest-paying job-family, every job-family with median TC).
byCompanyByRole/companies/<slug>/salaries/<role>Per-level aggregates, percentile summary, and every individual offer Levels.fyi shows for that company ร— role.
byCompanyByRoleLevel/companies/<slug>/salaries/<role>/levels/<level>Single-bucket detail: median base / TC / stock / bonus + sample offers at that level.
byRole/t/<role>Top companies and top locations for a role.
byRoleLocation/t/<role>/locations/<location>Geo compensation breakdown โ€” percentile histogram, top companies in that city, top locations for that role.
searchCompanies/companies?search=<q>List of popular companies (filterable by substring on name/slug).
topCompanies/locationsIndex of every Levels.fyi region/location and every job-family slug โ€” useful for discovery.
byUrlanyPaste any Levels.fyi URL; auto-routes to the right mode.

Output records

Every record is omit-empty (no null, no "", no []). recordType tags the row.

Common record types:

  • companyOverview โ€” mode=byCompany. Company metadata + median TC + highest / lowest paying role.
  • levelAggregate โ€” one row per level for a company ร— role with median base / TC / stock / bonus and sample count.
  • salarySample โ€” one row per individual offer (uuid, level, YOE, location, base, TC, stock, bonus, focus tag, education).
  • percentiles โ€” single record with p10/p25/p50/p75/p90 base & TC for the (company ร— role) or (role ร— location) bucket.
  • topCompany, topLocation, company, jobFamily โ€” listing/discovery rows.

Input

FieldTypeDefaultDescription
modeenumbyCompanyByRoleOne of the 8 modes above.
companystringgoogleCompany slug (required for byCompany* modes).
roleenumsoftware-engineerJob-family slug.
levelstringโ€“Level slug (e.g. L4, IC3) โ€” required for byCompanyByRoleLevel.
locationSlugenumsan-francisco-bay-areaLocation slug for byRoleLocation.
urlstringโ€“Levels.fyi URL (mode=byUrl).
searchstringโ€“Substring filter for searchCompanies.
minTotalCompensationintโ€“Drop samples below this TC.
maxTotalCompensationintโ€“Drop samples above this TC.
minYearsOfExperienceintโ€“Drop samples below this YOE.
maxYearsOfExperienceintโ€“Drop samples above this YOE.
includeSamplesbooltrueEmit individual salary submissions.
includeAggregatesbooltrueEmit per-level + percentile aggregates.
useResidentialProxyOnBlockbooltrueAuto-escalate on Cloudflare 403/429.
maxItemsint200Hard cap (1-5000).

Examples

Google software-engineer offers

{
"mode":"byCompanyByRole",
"company":"google",
"role":"software-engineer",
"maxItems":200
}

SF Bay Area top SWE compensation

{
"mode":"byRoleLocation",
"role":"software-engineer",
"locationSlug":"san-francisco-bay-area"
}

Just paste a URL

{
"mode":"byUrl",
"url":"https://www.levels.fyi/companies/meta/salaries/product-manager"
}

FAQ

How fresh is the data? It's whatever Levels.fyi shows on the page right now โ€” Levels.fyi hydrates every page server-side, so what you see is what you get.

Does it work for non-US locations? Yes โ€” see the locationSlug dropdown for 30+ regions / cities. Currency and exchange rate are emitted on each record where Levels.fyi provides one.

Why are some fields missing? The actor omits any field Levels.fyi didn't fill in for a given record (e.g., gender, ethnicity, firstYearStockGrant). If a sample submitter left a field blank, you get a clean record without nulls.

Cloudflare blocks me. Leave useResidentialProxyOnBlock enabled โ€” the actor retries through Apify residential proxy after the first 403 / 429.

Is the leaderboard / /highest-paid/ endpoint supported? No โ€” those pages are aggressively gated and return 403 even with chrome131 impersonation. The same data is available via byRole (top companies) and byRoleLocation (top locations) and is what we expose.

Limitations

  • Levels.fyi shows up to ~30 individual samples per (company ร— role) page. To get more, drill into specific levels via byCompanyByRoleLevel.
  • The leaderboard (/leaderboard/, /highest-paid/) is heavily protected and not exposed; equivalent data comes from byRole and byRoleLocation.

You might also like

Levels.fyi Salary Scraper

automation-lab/levels-fyi-salary-scraper

Extract public Levels.fyi salary samples by company, role, level, location, base pay, stock, bonus, and total compensation.

๐Ÿ‘ User avatar

Stas Persiianenko

2

Levels Fyi Salary Scraper

shhh_lab/levels-fyi-salary-scraper

Scrape individual salary submissions from Levels.fyi โ€” base, stock, bonus, TC by company, role, level, and location.

Levels.fyi Scraper

haketa/levels-fyi-scraper

Levels.fyi scraper & API: export tech compensation by company, level and location โ€” base salary, stock, bonus, total comp, title, years of experience and date. Salary benchmarking, comp intelligence and talent-market data โ€” fast, no login.

Levels.fyi Salary Scraper

moving_beacon-owner1/levels-fyi-salary-scraper

Scrape median compensation data from Levels.fyi by role and company, with rotating proxies, resilient parsing, and structured salary outputs.

2

Levels Fyi Scraper

parseforge/levels-fyi-scraper

Scrape salary data from Levels.fyi for any company and role. Get base salary, total compensation, stock grants, bonuses, experience levels, locations, and offer dates. Compare pay across companies like Google, Meta, Amazon, Apple, and thousands more.

Levels.fyi Jobs Scraper

solidcode/levels-fyi-scraper

[๐Ÿ’ฐ $1 / 1K] Extract tech jobs from Levels.fyi with base and total compensation ranges, company metadata, locations, work arrangement, and apply links. Search by keyword and location, filter by work arrangement and job family, or paste Levels.fyi URLs for structured, export-ready data.

Levels.fyi Jobs Scraper ๐Ÿ“Š

shahidirfan/levels-fyi-jobs-scraper

Unlock real-time salary insights and tech job listings from Levels.fyi with lightning speed. Instantly extract detailed compensation data and role specifics for competitive analysis. Built for high-speed performance, this scraper delivers accurate market data without delay.

25

5.0

Related articles

Real-time compensation benchmarking: A hands-on guide
Read more