Levels.fyi Scraper: US Tech Salary + Jobs avatar

Levels.fyi Scraper: US Tech Salary + Jobs

Pricing

from $3.00 / 1,000 serp results

Go to Apify Store
Levels.fyi Scraper: US Tech Salary + Jobs

Levels.fyi Scraper: US Tech Salary + Jobs

Extract US tech job listings from Levels.fyi with structured compensation data (base salary, total comp, equity, bonus) at the top FAANG-tier companies. Returns title, company, location, comp min/max USD, level, work arrangement, description and apply URL. Pay-per-result.

Pricing

from $3.00 / 1,000 serp results

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Share

Extract US tech job listings from Levels.fyi, the salary transparency site for FAANG-tier engineering, product and data roles. Every row includes Levels.fyi's structured compensation data (base salary, total comp, currency), location, work arrangement and a direct apply URL to the employer's ATS.

What it does

Levels.fyi hosts 70,000+ open tech jobs with the site's own structured salary data on the majority of rows. This actor pulls listings from Levels.fyi's SSR pages, then optionally fetches each job's detail JSON for the full description, employment type, and perks, PLUS each company's Levels.fyi profile for the unique compensation-by-level averages that only Levels.fyi publishes.

Three enrichment modes:

  • Minimal (default): 15 SERP-level fields per row including base/total salary and currency when Levels.fyi surfaces them (about 67% fill rate).
  • With job details: adds full HTML description, employment type, work arrangement, perks list, structured location, years-of-experience parsing.
  • With company details: adds 15+ company profile fields (industry, employee count, valuation, HQ address, ticker, benefits page URL, funding stage) plus the unique company_avg_total_comp_by_level array with total comp and sample size for every level Levels.fyi tracks at that company.

Sample output

{
"_type": "job",
"id": "105808633052177094",
"title": "Staff Machine Learning Engineer, Ad Serving",
"company_name": "Roku",
"company_slug": "roku",
"company_logo_url": "https://img.logo.dev/roku.com?token=pk_Ez-J4YOpSS-Bjtug_T41Dw",
"company_type": "public",
"employee_count": 3400,
"estimated_valuation_usd": 20800000000,
"location": "New York, New York",
"salary_min": 195000,
"salary_max": 510000,
"salary_currency": "USD",
"total_comp_min_usd": 195000,
"total_comp_max_usd": 510000,
"level": "Staff",
"workplace_type": "onsite",
"employment_type": "full_time",
"posted_at": "2026-08-21",
"expires_at": "2026-09-20",
"job_url": "https://www.levels.fyi/jobs?jobId=105808633052177094",
"application_url": "https://www.weareroku.com/jobs/7991258?gh_jid=7991258",
"job_family_slug": "software-engineer",
"source_platform": "levels.fyi",
"company_about": "Roku, Inc. is an American publicly traded company based in San Jose, California...",
"company_website": "https://www.roku.com",
"company_founded": 2002,
"company_headquarters": "1173 Coleman Ave, San Jose, CA 95110, USA",
"company_hq_city": "San Jose",
"company_hq_state": "California",
"company_industry": "Consumer Electronics",
"company_ticker": "ROKU",
"company_size_range": "1,001-5,000",
"company_active_jobs_count": 187,
"company_avg_total_comp_by_level": [
{"level": "L3", "avg_total_comp_usd": 215379, "sample_size": 26, "job_family": "software-engineer"},
{"level": "L4", "avg_total_comp_usd": 329868, "sample_size": 19, "job_family": "software-engineer"},
{"level": "L5", "avg_total_comp_usd": 508600, "sample_size": 30, "job_family": "software-engineer"}
]
}

Pricing

$0.001 per actor start + $0.003 per SERP row + $0.005 per detail row (when includeJobDetails=true) + $0.005 per unique company profile (when includeCompanyDetails=true). About $3 to $10 per 1,000 tech roles depending on enrichment.

You only pay for rows that successfully return data. Failed fetches are not charged.

New to Apify? Every account gets a $5 free monthly platform credit, enough for around 1,000 detail rows on this actor before you commit to paying anything. Test extensively first.

EventPrice
Actor start$0.001
SERP row$0.003
Job detail row (when includeJobDetails=true)$0.005
Company profile (unique company, when includeCompanyDetails=true)$0.005

Input

FieldTypeDescription
searchQueriesarray of stringsJob titles or job families to search. Slugified into Levels.fyi's job-family filter (e.g. software engineer becomes /jobs/title/software-engineer).
startUrlsarray of stringsAlternative to searchQueries. Feed direct Levels.fyi jobs URLs.
locationstringOptional location filter (San Francisco Bay Area, New York City Area, Seattle Area, Remote).
companySlugsarray of stringsOptional. Restrict to specific companies (google, meta, apple, netflix, etc). Each company walked up to 15 jobs per query.
includeJobDetailsbooleanFetch each job's SSR detail JSON for description, perks, work arrangement. Default false.
includeCompanyDetailsbooleanFetch each unique company's Levels.fyi profile + salary rollup for the by-level compensation averages. Default false.
maxResultsintegerTotal cap across all queries. Default 20.
maxResultsPerQueryintegerPer-query cap. Default 100.
maxConcurrencyintegerConcurrent detail requests. Default 5.

Example input

{
"searchQueries": ["software engineer", "product manager"],
"companySlugs": ["google", "meta", "netflix"],
"location": "san-francisco-bay-area",
"includeJobDetails": true,
"includeCompanyDetails": true,
"maxResults": 200
}

Output fields

Identity

  • id: Levels.fyi internal job ID
  • title: Role title
  • company_name, company_slug, company_logo_url (logo.dev image URL when available)

Compensation (Levels.fyi's unique differentiator)

  • salary_min, salary_max, salary_currency
  • total_comp_min_usd, total_comp_max_usd: Total comp including base + equity + bonus
  • base_salary_min_usd, base_salary_max_usd: Base only

Level and experience

  • level: Coarse level tag inferred from title (Entry, Senior, Staff, Principal, Distinguished, Manager)
  • years_experience_min, years_experience_max: Parsed from description when available

Company signals (SERP-level, always populated)

  • company_type: public, private, non_profit, government
  • employee_count: Approximate size
  • estimated_valuation_usd: Market cap for public companies, private valuation otherwise

Job classification

  • workplace_type: remote, hybrid, onsite
  • employment_type: full_time, part_time, contract, internship
  • job_family_slug: Levels.fyi's job-family taxonomy

Timing

  • posted_at, expires_at: ISO 8601 dates
  • scraped_at: When the row was fetched

Content

  • description: Full HTML description (with includeJobDetails=true)
  • perks: Employer-verified perks list (401k, ESPP, health insurance, etc)
  • location: City, state or multi-location pipe-joined
  • job_url: Canonical Levels.fyi URL
  • application_url: Direct link to the employer's ATS

Contact extraction (with includeJobDetails=true)

  • contact_emails: Email addresses found in the job description (e.g. recruit-engineer@hennge.com). Deduplicated, lowercased.
  • contact_phones: Phone numbers found in the description (US/international formats).
  • contact_urls: External HTTP(S) links from the description (levels.fyi self-references excluded).

Company profile (with includeCompanyDetails=true)

  • company_about, company_website, company_founded
  • company_headquarters, company_hq_city, company_hq_state, company_hq_country
  • company_size_range, company_industry, company_ticker
  • company_estimated_annual_revenue, company_funding_stage
  • company_benefits_page: URL to the company's dedicated benefits page
  • company_active_jobs_count: Total open Levels.fyi listings at this company
  • company_active_jobs: Array of {title, job_url, location, salary_text} for other roles
  • company_avg_total_comp_by_level: Levels.fyi's proprietary data. Array of {level, avg_total_comp_usd, avg_base_salary_usd, sample_size, job_family} for every level Levels.fyi tracks at this company. UNIQUE to this actor.

Use with AI Agents (MCP)

Connect this actor to any MCP-compatible AI client: Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.

Apify MCP server URL:

https://mcp.apify.com?tools=santamaria-automations/levels-fyi-scraper

Example prompt once connected:

"Use levels-fyi-scraper to find Staff+ level software engineering roles at Google, Meta and Netflix in the San Francisco Bay Area. Include company details. Return a table with title, total comp range and the company's L6 average total comp."

Clients that support dynamic tool discovery (Claude.ai, VS Code) receive the full input schema automatically.

Why this scraper

  • Only structured compensation data at scale. Levels.fyi is the reference dataset for US tech compensation. Every row includes salary min/max in USD on the majority of postings, plus the unique by-level averages when you enable company details.
  • FAANG-tier company coverage. Google, Meta, Apple, Netflix, Amazon, Microsoft, Nvidia, Anthropic, OpenAI and the rest of the top tech employers all list on Levels.fyi.
  • Rich company profile. 15+ company fields (industry, valuation, ticker, size range, funding stage) come out of the /companies profile with a single extra HTTP hop, deduplicated across all rows from the same employer.
  • Zero login, zero captcha subscriptions. HTTP-only, uses Levels.fyi's own SSR endpoints. No browser tier needed.
  • Pay-per-row. No hourly rental. Small runs cost cents.

Common use cases

  • Comp benchmarking for hiring teams. Get the Levels.fyi total-comp range on every open role from a target competitor list, side-by-side with the company's own average by level.
  • Recruiters. Track FAANG-tier openings and pitch candidates with real total-comp numbers instead of guesses.
  • Job seekers building comp models. Feed structured comp data into a personal negotiation spreadsheet without manually copying from the site.
  • AI job-search agents. Give agents structured access to US tech comp signals.
  • Compensation research. Track how comp bands shift over time at specific companies and levels.

Notes and limits

  • Salary fill rate is ~67% on the SERP-level (Levels.fyi structures salary data on most, not all, listings). Rows without disclosed salary have null in the salary fields but everything else populated.
  • Salary is USD-dominated. The salary_currency field is populated for non-USD roles (JPY, EUR, GBP, INR). The *_usd fields are only populated when the reported currency is USD (no FX conversion in this actor).
  • level field is coarse. It infers from title keywords (Senior/Staff/Principal). The company-specific level (L5 at Google, E5 at Meta) requires an extra lookup and lives in company_avg_total_comp_by_level (in the company profile) rather than on the job row.
  • Pagination is per-URL not per-query. Levels.fyi's SSR returns 5 companies x 3 jobs = 15 rows per multi-company page, or 15 jobs on a single-company page. Use companySlugs to walk companies deeply, or feed multiple keywords to get breadth. Client-side deep pagination is behind an encrypted API and not supported.
  • years_experience_* is parsed from the description with a regex. Not every listing follows a consistent format; expect null on ~40% of rows.
  • Company profile pages are deduplicated per run. If your batch has 20 rows from Google, we fetch /companies/google once and apply to all 20. Only unique company profiles are billed.

Support

For issues, feature requests, or fields not yet extracted, please open an issue on the Issues tab of this actor. We typically respond within 24 hours.

Contact: contact@nanoscrape.com