Levels.fyi Salary Scraper
Pricing
Pay per usage
Levels.fyi Salary Scraper
Scrape salary data from Levels.fyi. Extract total compensation, base salary, stock, bonus by company, title, and level.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Glass Ventures
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape salary and compensation data from Levels.fyi. Extract total compensation, base salary, stock grants, bonuses, and more by company and job title.
What does Levels.fyi Salary Scraper do?
Levels.fyi is the leading salary comparison platform for tech workers. This actor extracts structured compensation data including base salary, stock grants, bonuses, and total compensation broken down by company, job title, level, and location.
Whether you are benchmarking salaries for hiring, negotiating your next offer, or conducting compensation research across the tech industry, this actor gives you programmatic access to the salary data that thousands of tech workers rely on every day.
The actor uses efficient HTTP-based scraping (no browser needed) by extracting structured data directly from the page source, making it fast and cost-effective.
Use Cases
- Recruiters and HR teams -- Benchmark compensation packages against market rates for specific roles and levels
- Job seekers -- Research salary ranges before negotiating offers at target companies
- Data analysts -- Build compensation datasets for market analysis and salary trend reports
- Startup founders -- Set competitive compensation bands based on real market data
Features
- Scrape salary data by company, job title, and level
- Extract total compensation, base salary, stock grants, and bonuses
- Location and years of experience data included
- Build URLs automatically from company names and job titles
- Proxy support with automatic rotation
- Handles pagination and large datasets automatically
- Exports to JSON, CSV, Excel, or connect via API
How much will it cost?
| Results | Estimated Cost |
|---|---|
| 100 | ~$0.50 |
| 1,000 | ~$3.00 |
| 10,000 | ~$25.00 |
| Cost Component | Per 1,000 Results |
|---|---|
| Platform compute | ~$0.50 |
| Proxy (residential) | ~$2.50 |
| Total | ~$3.00 |
How to use
- Go to the Levels.fyi Salary Scraper page on Apify Store
- Click "Start" or "Try for free"
- Enter company names or Levels.fyi URLs
- Set the maximum number of items
- Click "Start" and wait for the results
Input parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
| startUrls | array | Levels.fyi URLs to scrape | - |
| companies | array | Company names (e.g. google, meta) | - |
| jobTitles | array | Job titles (e.g. software-engineer) | - |
| maxItems | number | Max results to return | 100 |
| maxConcurrency | number | Parallel page limit | 5 |
| proxyConfig | object | Proxy settings | Residential |
Output
The actor produces a dataset with the following fields:
{"company": "Google","title": "Software Engineer","level": "L5","totalCompensation": 350000,"baseSalary": 185000,"stockGrant": 120000,"bonus": 45000,"location": "Mountain View, CA","yearsOfExperience": 6,"yearsAtCompany": 3,"gender": "Male","timestamp": "2024-06-15T00:00:00.000Z","url": "https://www.levels.fyi/companies/google/salaries/software-engineer","scrapedAt": "2024-07-01T12:00:00.000Z"}
| Field | Type | Description |
|---|---|---|
| company | string | Company name |
| title | string | Job title |
| level | string | Job level (e.g. L5, E5, Senior) |
| totalCompensation | number | Total yearly compensation in USD |
| baseSalary | number | Base salary in USD |
| stockGrant | number | Yearly stock/equity grant in USD |
| bonus | number | Yearly bonus in USD |
| location | string | Work location |
| yearsOfExperience | number | Total years of experience |
| yearsAtCompany | number | Years at current company |
| gender | string | Self-reported gender |
| timestamp | string | When the salary was reported |
| url | string | Source page URL |
| scrapedAt | string | ISO 8601 scrape timestamp |
Integrations
Connect Levels.fyi Salary Scraper with other tools:
- Apify API -- REST API for programmatic access
- Webhooks -- get notified when a run finishes
- Zapier / Make -- connect to 5,000+ apps
- Google Sheets -- export directly to spreadsheets
API Example (Node.js)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('YOUR_USERNAME/levelsfyi-salary-scraper').call({companies: ['google', 'meta'],jobTitles: ['software-engineer'],maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
API Example (Python)
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('YOUR_USERNAME/levelsfyi-salary-scraper').call(run_input={'companies': ['google', 'meta'],'jobTitles': ['software-engineer'],'maxItems': 100,})items = client.dataset(run['defaultDatasetId']).list_items().items
API Example (cURL)
curl "https://api.apify.com/v2/acts/YOUR_USERNAME~levelsfyi-salary-scraper/runs" \-X POST \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_TOKEN" \-d '{"companies": ["google"], "jobTitles": ["software-engineer"], "maxItems": 100}'
Tips and tricks
- Start with a small
maxItems(10-20) to test before running large scrapes - Use residential proxies if you encounter blocking
- Combine multiple companies and job titles in a single run for efficiency
- Use the
companies+jobTitlesinputs instead of manually building URLs
FAQ
Q: Does this actor require login credentials? A: No. Levels.fyi salary data is publicly available.
Q: How fast is the scraping? A: Approximately 50-200 salary entries per minute depending on proxy speed and data density per page.
Q: What should I do if I get blocked? A: Switch to residential proxies in the Proxy Configuration settings and reduce max concurrency.
Q: What companies are supported? A: Any company listed on Levels.fyi. Use company slugs (e.g. "google", "meta", "amazon", "apple", "microsoft").
Is it legal to scrape Levels.fyi?
Web scraping of publicly available data is generally legal based on precedents like the LinkedIn v. HiQ Labs case. This actor only accesses publicly available data. Always review and respect the target site's Terms of Service and robots.txt. For more information, see Apify's blog on web scraping legality.
Limitations
- Only extracts publicly visible salary data (no paywalled content)
- Data accuracy depends on self-reported submissions to Levels.fyi
- Rate limiting may slow down very large scrapes
- Some salary entries may have incomplete fields (missing stock, bonus, etc.)
Changelog
- v0.1 (2026-04-23) -- Initial release