Levels.fyi Jobs Scraper avatar

Levels.fyi Jobs Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Levels.fyi Jobs Scraper

Levels.fyi Jobs 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.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Pull tech job listings from Levels.fyi at scale β€” each role arrives with base and total compensation ranges, a per-seniority-level total-comp breakdown, company intelligence (type, employee count, estimated valuation), work arrangement, locations, and a ready-to-apply link. Built for technical recruiters, compensation analysts, and job seekers who need real salary data on 33,000+ tech roles without copying numbers off the website one listing at a time.

Why This Scraper?

  • Base AND total compensation on every row β€” minBaseSalary/maxBaseSalary and minTotalSalary/maxTotalSalary with currency, plus a per-seniority-level totalCompensationEstimates breakdown. Most job scrapers return zero salary data; this one returns four ranges and a level-by-level comp table.
  • Company intelligence on every listing β€” company type, employee count, estimated valuation, a one-line description, and logo URL attached to each job, so you can segment by startup vs. public or by headcount without a second data source.
  • 3 work-arrangement filters β€” Remote, Hybrid, or Office, applied server-side so you only pull the roles you want.
  • 8 engineering & product disciplines β€” Software Engineer, Engineering Manager, Data Scientist, Data Science Manager, Product Manager, Designer, Security, and Hardware Engineer job-family filters.
  • 7 seniority levels β€” Internship, Entry Level, Senior, Principal, Manager, Director, and Executive, so you can isolate exactly the band you're benchmarking.
  • Minimum-total-compensation floor β€” set a dollar threshold to surface only high-paying senior and staff roles and skip everything below it.
  • 3 sort modes β€” Relevance, Total Compensation (highest first), or Date Posted (newest first).
  • Multi-keyword batch search β€” queue up to 50 job titles in one run; each keyword paginates independently and listings that overlap across keywords are deduplicated by job ID, so every job appears once.
  • Apply links and dates on every listing β€” external applicationUrl, canonical Levels.fyi url, plus postingDate and expiryDate for freshness filtering.

Use Cases

Recruiting & Talent Sourcing

  • Build target-company shortlists by headcount, valuation, or company type
  • Find roles by discipline and seniority to match open reqs
  • Track which companies are actively hiring for a given title
  • Pull apply-ready links to route candidates straight to live postings

Compensation Benchmarking

  • Benchmark base vs. total pay ranges across companies for the same role
  • Compare per-level total-comp estimates from Internship through Executive
  • Set a minimum-total-comp floor to study only senior and staff bands
  • Build market pay bands by city and work arrangement

Job Seeking & Career Moves

  • Surface the highest-paying roles first with Total Compensation sort
  • Filter to Remote-only positions across every discipline
  • Compare offers against real ranges before negotiating
  • Track newly posted roles with Date Posted sort and posting dates

Market & Talent Research

  • Map hiring demand by discipline, level, and location
  • Spot which startups vs. public companies are scaling headcount
  • Monitor remote vs. hybrid vs. office trends across the market
  • Feed structured comp and company data into analytics dashboards

Getting Started

The fastest way to start β€” one keyword:

{
"searchQueries": ["Software Engineer"],
"maxResults": 100
}

Remote senior roles, highest pay first

{
"searchQueries": ["Data Scientist", "Machine Learning Engineer"],
"location": "Remote",
"level": "principal",
"sortBy": "total_compensation",
"maxResults": 200
}

High-paying engineering roles with full filters

{
"searchQueries": ["Software Engineer", "Engineering Manager"],
"location": "San Francisco",
"workArrangement": "hybrid",
"jobFamily": "software-engineer",
"level": "mid_staff",
"sortBy": "total_compensation",
"minTotalCompensation": 300000,
"maxResults": 500,
"includeDescription": true
}

Input Reference

ParameterTypeDefaultDescription
searchQueriesarray["Software Engineer"]Job titles or keywords to search for. Each keyword runs its own search. Up to 50. Leave empty for the broadest result set for your location and filters.
locationstring""City, region, or work arrangement to search in, e.g. "San Francisco", "London", "Remote". Combined with each keyword. Empty searches everywhere.
startUrlsarray[]Paste full Levels.fyi job-search or individual job URLs to scrape them directly. Up to 50 per run.

Filters & Limits

ParameterTypeDefaultDescription
workArrangementstringAnyWhere the role is performed: Any, Remote, Hybrid, or Office.
jobFamilystringAnyLimit to one discipline: Any, Software Engineer, Engineering Manager, Data Scientist, Data Science Manager, Product Manager, Designer, Security, or Hardware Engineer.
levelstringAnySeniority band: Any, Internship, Entry Level, Senior, Principal, Manager, Director, or Executive.
sortBystringRelevanceResult order: Relevance, Total Compensation (highest first), or Date Posted (newest first).
minTotalCompensationintegernullOnly include jobs whose median total compensation is at least this many US dollars. Empty means no minimum.
maxResultsinteger100Max listings to collect per keyword (or per start URL). Set to 0 for all available. The final page is always kept whole, so a small cap can return slightly more; duplicates across pages and across keywords are removed, so the count can also run slightly under.

Output

ParameterTypeDefaultDescription
includeDescriptionbooleantrueInclude the full job description (text and HTML) for each listing. Turn off for lighter records with only titles, companies, locations, and compensation.

Output

Each job is a single flat record. Example:

{
"jobId": "123456",
"title": "Senior Software Engineer, Backend",
"company": "Stripe",
"companySlug": "stripe",
"companyType": "Private",
"companyEmployeeCount": "5000-10000",
"companyEstimatedValuation": "$65B",
"companyShortDescription": "Financial infrastructure for the internet.",
"companyIcon": "https://logos.levels.fyi/stripe.png",
"isPromoted": false,
"locations": ["San Francisco, CA", "New York, NY"],
"workArrangement": "hybrid",
"jobFamily": "software-engineer",
"employmentTypes": ["Full-time"],
"minBaseSalary": 180000,
"maxBaseSalary": 240000,
"minTotalSalary": 320000,
"maxTotalSalary": 480000,
"salaryCurrency": "USD",
"totalCompensationEstimates": [
{ "level": "L4", "totalCompensation": 350000 },
{ "level": "L5", "totalCompensation": 450000 }
],
"postingDate": "2026-05-28",
"expiryDate": "2026-07-28",
"applicationUrl": "https://stripe.com/jobs/listing/senior-software-engineer/123456",
"descriptionText": "We are looking for a backend engineer to...",
"descriptionHtml": "<p>We are looking for a backend engineer to...</p>",
"url": "https://www.levels.fyi/jobs?jobId=123456",
"searchQuery": "Software Engineer",
"searchLocation": "San Francisco",
"scrapedAt": "2026-06-10T14:32:00Z"
}

Core Fields

FieldTypeDescription
jobIdstringUnique Levels.fyi job ID
titlestringJob title
locationsarrayListed locations for the role
workArrangementstringremote, hybrid, or office
jobFamilystringDiscipline slug (e.g. software-engineer); populated when full descriptions are enabled
employmentTypesarrayFull-time, Intern, Contract, etc.
isPromotedbooleanWhether the listing is sponsored
urlstringCanonical Levels.fyi job URL

Compensation

FieldTypeDescription
minBaseSalarynumberMinimum base salary
maxBaseSalarynumberMaximum base salary
minTotalSalarynumberMinimum total compensation
maxTotalSalarynumberMaximum total compensation
salaryCurrencystringCurrency code (e.g. USD)
totalCompensationEstimatesarrayPer-seniority-level total-comp estimates

Company

FieldTypeDescription
companystringCompany name
companySlugstringCompany slug on Levels.fyi
companyTypestringCompany type (public, private, startup, etc.)
companyEmployeeCountstringReported employee count or band
companyEstimatedValuationstringEstimated company valuation
companyShortDescriptionstringOne-line company blurb
companyIconstringCompany logo/icon URL
FieldTypeDescription
postingDatestringWhen the job was posted
expiryDatestringWhen the listing expires
applicationUrlstringExternal application link
descriptionTextstringPlain-text job description (when enabled)
descriptionHtmlstringFull HTML job description (when enabled)
searchQuerystringThe keyword that produced this row
searchLocationstringThe location used for the search
scrapedAtstringExtraction timestamp (ISO 8601)

Tips for Best Results

  • Run several related titles in one batch. Levels.fyi returns at most around 200 companies' worth of jobs for a single keyword, so one keyword tops out near a few hundred listings β€” queue "Software Engineer", "Backend Engineer", and "Full Stack Engineer" together to widen coverage well beyond that ceiling.
  • Set a minimum total compensation to isolate senior roles. A minTotalCompensation floor (e.g. 300000) filters on the median total comp, surfacing staff and principal roles without scrolling past junior listings.
  • Pair a keyword with a location for sharper results β€” "Data Scientist" plus "New York" returns a tighter, more relevant set than either alone.
  • Use Total Compensation sort when you want the highest-paying roles first and Date Posted sort when you only care about the freshest listings.
  • Turn off full descriptions for lighter, faster pulls when you only need titles, companies, locations, and compensation β€” flip includeDescription off.
  • Add a seniority level filter to benchmark a single band cleanly; combine it with a discipline to compare, say, Senior Data Scientist pay across companies.
  • Paste a tuned URL into startUrls when you've already dialed in a search on the website β€” the scraper lifts the keyword and filters straight from the link.

Pricing

From $1 per 1,000 results β€” among the most affordable ways to collect Levels.fyi compensation and company data at scale. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

ResultsNo discountBronzeSilverGold
100$0.12$0.11$0.11$0.10
1,000$1.20$1.13$1.07$1.00
10,000$12.00$11.30$10.70$10.00
100,000$120.00$113.00$107.00$100.00

A "result" is one job listing pushed to your dataset. No compute or time-based charges β€” you pay per result, plus a small fixed per-run start fee.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps:

  • Zapier / Make / n8n β€” Workflow automation
  • Google Sheets β€” Direct spreadsheet export
  • Slack / Email β€” Notifications on new results
  • Webhooks β€” Trigger custom APIs on run completion
  • Apify API β€” Full programmatic access

This scraper collects publicly available job-listing and compensation data for legitimate research, recruiting, and analytics. You are responsible for using the data in compliance with Levels.fyi's terms of service and all applicable laws, including data protection regulations such as GDPR and CCPA. Do not use the data to harass individuals, and respect the rights of the data's original publishers. When in doubt, consult legal counsel about your specific use case.