Levels Fyi Salary Parser avatar

Levels Fyi Salary Parser

Under maintenance

Pricing

Pay per usage

Go to Apify Store
Levels Fyi Salary Parser

Levels Fyi Salary Parser

Under maintenance

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Ivan Serebryakov

Ivan Serebryakov

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

12 days ago

Last modified

Categories

Share

Levels.fyi Salary Parser

Apify Actor that scrapes salary data from Levels.fyi company salary pages. Outputs Base, Stock (/yr), Bonus, Level, Years at company, and Years exp per record.

Input

Provide start URLs — direct links to Levels.fyi salary pages, for example:

  • https://www.levels.fyi/companies/indriver/salaries/software-engineer?country=63&offset=0
  • https://www.levels.fyi/companies/google/salaries/software-engineer?country=1

Optional: maxItems, useApifyProxy, maxConcurrency, maxRequestsPerMinute. See the input schema in the Apify Console or in .actor/input_schema.json.

Output

Dataset with one item per salary row (or one per page when using the .md API), with fields:

  • companySlug, companyName, positionSlug
  • level, base, stockPerYear, bonus (objects: { raw, amount, currency })
  • yearsAtCompany, yearsExp
  • sourceUrl, scrapedAt, source (md or from browser)

How it works

  1. For each URL, the Actor first tries the Levels.fyi .md endpoint (e.g. .../salaries/software-engineer.md?country=63) via HTTP. If that returns data, it is parsed and pushed to the dataset (no browser).
  2. If the .md request fails or returns no compensation data, the URL is opened with Playwright and salary cards (MuiGrid with Base, Stock, Bonus, etc.) are parsed.

This keeps runs fast when the .md API is available and avoids timeouts where possible.

Run locally

$apify run --input-file=INPUT.json

Deploy to Apify

apify login
apify push

Then run the Actor from Apify Console or via API. Using Apify Proxy (useApifyProxy: true) is recommended for browser runs to reduce blocks and timeouts.

Attribution

Data is sourced from Levels.fyi. When using or displaying results, attribute: Levels.fyi (https://www.levels.fyi). See Levels.fyi robots.txt and terms for crawling and use.