Levels.fyi Jobs Scraper 📊
Pricing
from $1.00 / 1,000 results
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.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(3)
Developer
Shahid Irfan
Maintained by CommunityActor stats
1
Bookmarked
37
Total users
3
Monthly active users
3 days ago
Last modified
Categories
Share
What does Levels.fyi Jobs Scraper do?
Levels.fyi Jobs Scraper collects job listings from Levels.fyi, including salary ranges, company details, locations, and application links. Enter a keyword, a location, or a combined search query, set how many jobs you want, and download a structured dataset. Use it for salary research, hiring intelligence, job board monitoring, and workforce analysis without copying listings by hand.
The Actor saves jobs in batches while it runs, so you do not lose progress if a later page fails. Optional detail collection adds full job descriptions, employment types, and structured address data for each listing.
Why use Levels.fyi Jobs Scraper?
- Salary ranges when published - Collect base salary and total compensation ranges alongside the job title and company.
- Company context - Save company type, employee count, valuation estimate, description, and logo URL with each listing.
- Search that matches the site - Use a keyword, a location, or a free-text query such as "product manager Toronto".
- Control over run size - Set a job limit and a page cap to balance speed and depth.
- Optional full descriptions - Add complete job descriptions and structured location details when you need them.
- Apify platform features - Schedule repeat runs, connect webhooks, call the Actor through the Apify API, and export the dataset to JSON, CSV, Excel, or XML.
What data can you extract from Levels.fyi?
| Field | Description |
|---|---|
id | Levels.fyi job identifier |
title | Job title |
company | Company name |
company_slug | Company identifier used in Levels.fyi URLs |
company_type | Company classification such as public or private |
company_employee_count | Reported employee count |
company_estimated_valuation | Estimated company valuation when published |
company_short_description | Short company description |
company_icon | Company logo URL |
is_promoted | Whether the listing is promoted |
locations | Job locations |
work_arrangement | Work arrangement such as office, hybrid, or remote |
application_url | Direct application link |
posting_date | Posting date in ISO 8601 format |
expiry_date | Application deadline when published |
min_base_salary | Minimum annual base salary |
max_base_salary | Maximum annual base salary |
base_salary_currency | Base salary currency code |
min_total_salary | Minimum total compensation |
max_total_salary | Maximum total compensation |
job_family_slug | Job family identifier from the detail record |
employment_types | Employment types such as full time |
postal_addresses | Structured address records from the detail page |
total_compensation_estimates | Compensation estimates from the detail page |
description_html | Job description formatted as HTML |
description_text | Job description as plain text |
url | Levels.fyi job page URL |
details | Full detail record when detail collection is enabled |
_source | Data source label, always levels.fyi |
How to collect Levels.fyi job data
- Open the Actor on Apify Store.
- Enter a keyword, a location, or a full search query.
- Set the maximum number of jobs and, if needed, the page cap.
- Enable detail collection when you need full job descriptions.
- Run the Actor and open the dataset.
- Export the data or connect the dataset to your workflow.
Search values follow a simple order. When keyword or location is supplied, the Actor combines them into one search. When both are empty, it uses searchQuery. When every search field is empty, it uses the default query software engineer, so a run started without input still returns data.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchQuery | String | No | software engineer | Free-text query used when keyword and location are empty |
keyword | String | No | - | Job title or role, for example Data Scientist |
location | String | No | - | City, country, or work arrangement, for example Toronto or Remote |
results_wanted | Integer | No | 20 | Maximum number of job listings to save |
max_pages | Integer | No | 10 | Safety cap on result pages. Each page can contain up to 25 company groups |
collectDetails | Boolean | No | false | Fetch full descriptions and extra detail fields for each listing |
proxyConfiguration | Object | No | {} | Optional Apify Proxy or custom proxy URLs |
Usage Examples
Collect software engineering jobs
Save the first 20 software engineering listings.
{"keyword": "software engineer","results_wanted": 20}
Search a city and role
Combine a role with a location to target one market.
{"keyword": "product manager","location": "Toronto","results_wanted": 100,"max_pages": 3}
Collect full job descriptions
Enable detail collection when you need descriptions, employment types, and address records.
{"searchQuery": "data scientist remote","results_wanted": 25,"max_pages": 2,"collectDetails": true}
Use a larger run with residential proxies
Use Apify Proxy for wide collections or repeated scheduled runs.
{"keyword": "machine learning engineer","location": "United States","results_wanted": 500,"max_pages": 10,"collectDetails": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"id": "13oj1z67ynfdy","title": "Software Engineer, Security","company": "Slash","company_slug": "slash","company_type": "private","company_employee_count": 90,"company_short_description": "Virtual card and banking platform","company_icon": "https://img.logo.dev/slash.com?token=pk_Ez-J4YOpSS-Bjtug_T41Dw","is_promoted": true,"locations": ["San Francisco, CA"],"work_arrangement": "office","application_url": "https://www.linkedin.com/jobs/view/software-engineer-security-at-slash-4453350637","posting_date": "2026-08-12T00:00:00.000Z","min_base_salary": 250000,"max_base_salary": 350000,"base_salary_currency": "USD","min_total_salary": 250000,"max_total_salary": 350000,"description_text": "About Slash\nSlash is building the future of business banking...","description_html": "<p>About Slash</p>\n<p>Slash is building the future of business banking...</p>","url": "https://www.levels.fyi/jobs?jobId=13oj1z67ynfdy","_source": "levels.fyi"}
Tips for Best Results
- Use a specific role name. "Backend Engineer" returns more relevant listings than "engineer".
- Add a location when you want one market, or leave it empty for a broader search.
- Start with 20 to 50 jobs while you check the output, then increase the limit.
- Keep
max_pagesas a safety cap for large scheduled runs. - Enable
collectDetailsonly when you need descriptions, since it adds one request per job. - Run several focused searches when you need coverage across different titles or regions.
- Use residential proxies for repeated large runs.
Integrations
- Google Sheets - Send job and salary data to a spreadsheet for review.
- Webhooks - Trigger downstream workflows after a run completes.
- Make or Zapier - Connect results to no-code automations.
- Apify API - Read datasets from your own applications and dashboards.
- Power BI or Looker Studio - Build salary and hiring reports from exported data.
Export formats
Apify datasets can be downloaded as JSON, CSV, Excel, XML, and other supported formats.
Frequently Asked Questions
Can I export Levels.fyi job data to CSV or Excel?
Yes. Open the dataset in Apify Console and choose CSV, Excel, JSON, or XML from the export menu. The API also returns the same records.
Can I run this Actor on a schedule?
Yes. Create a schedule in Apify Console to refresh your job dataset hourly, daily, or weekly. Scheduled runs use the input you save in the task.
How many jobs can I collect in one run?
The limit depends on your search and max_pages. Each page can return up to 25 company groups, and each group can include multiple jobs. Set results_wanted to the number you need and max_pages high enough to reach it.
Why are some salary fields empty?
Not every employer publishes salary ranges on Levels.fyi. When a range is missing, those fields are omitted from that record. Other fields remain available.
What is the difference between base salary and total compensation?
Base salary is the annual wage. Total compensation can include bonus, equity, and other components. Both ranges appear when the source publishes them.
Why is expiry_date missing on some jobs?
The posting date is available for most listings, but an application deadline is only present when the employer publishes one.
How long does a run take?
A run with 20 jobs usually finishes in a few seconds. Enabling collectDetails adds one detail request per job. Runs with up to about 100 details usually finish in a few seconds, and larger runs may pause when the source rate limit is reached.
Does the Actor open each job page?
No. It requests the detail record directly from the same job data service used by the search results, so there is no page rendering step.
Can I search by location only?
Yes. Enter a location and leave the keyword empty. The Actor runs a location-based search.
Can I use my own proxy?
Yes. Add custom proxy URLs in proxyConfiguration or enable Apify Proxy. Residential proxies are the better choice for large or repeated runs.
Is the data fresh?
The Actor reads listings available on Levels.fyi at run time. Schedule repeat runs to keep a dataset current.
Does the Actor return duplicate jobs?
No. Each job ID is saved once per run, even when a job appears in more than one page.
Is it legal to collect this data?
The Actor collects publicly available job listings. You are responsible for following Levels.fyi's terms, applicable privacy rules, and local law.
Support
For issues, feature requests, or questions, use the Issues tab on the Actor page or contact the developer through Apify.
Legal Notice
This Actor is intended for legitimate data collection from publicly available job listings. Users are responsible for using the data responsibly and complying with applicable laws, website terms, and privacy rules. The developer assumes no liability for misuse.