Job Salary Data Scraper — Pay from Job Postings
Pricing
from $1.60 / 1,000 jobs
Job Salary Data Scraper — Pay from Job Postings
Scrape salary ranges from real job postings on company career sites — min, max, currency, period and a yearly figure. Filter by title, country, seniority, minimum pay. For compensation benchmarking and pay research. From $2 per 1,000 jobs.
Pricing
from $1.60 / 1,000 jobs
Rating
0.0
(0)
Developer
Tapaswai Ashok Choudhary
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
17 hours ago
Last modified
Categories
Share
Salary ranges published in real job postings — as a clean, spreadsheet-ready dataset. Pay-transparency laws mean more employers publish salary ranges. This Actor reads company job boards and keeps only postings that state pay, with the range converted to a yearly figure in its currency — ready for compensation benchmarking.
Export to JSON, CSV or Excel, send to Google Sheets or your database, or call it as an API from your own app or AI agent.
Built for compensation and HR analysts, recruiters pricing roles, job seekers negotiating offers, salary-data products, and researchers studying pay transparency.
Why this scraper
- Straight from the employer. Jobs come from companies' own job boards, so they're current, complete and link to the real application page.
- No setup. Press Start with no input and it scans a directory of verified company boards. Or name companies, or paste their careers pages — the job board behind each page is found for you.
- One clean format. Structured city/region/country (ISO code), remote/hybrid/on-site, employment type, seniority, experience, job function, skills, and salary converted to a yearly figure.
- Monitoring built in. Only new jobs returns just postings earlier runs haven't delivered; Changes only adds changed and taken-down jobs. You pay only for what's new.
- Fast and cheap to run. A small native program in 256 MB of memory — no browser. Rate limits and server hiccups are handled automatically, and a run never double-charges if it's restarted.
Every job publishes pay:
salaryhas min, max, currency and period, plusannualMin/annualMaxfor comparison.
How to use it
- Press Start to scan the built-in company directory, or fill Company names / Career page URLs to scan only those companies.
- Narrow results with the Filters: title words, countries, posting age, work mode, seniority, job function, skills mentioned, minimum salary, visa sponsorship, companies to skip.
- Download results from the Output tab, or connect Slack, Google Sheets, Zapier, Make or a webhook.
Example input
{"titleIncludes": ["data scientist"],"countries": ["US"],"seniorities": ["senior"],"minAnnualSalary": 150000,"maxItems": 1000}
What you get
| Field | Description |
|---|---|
title | Job title |
company / companySlug | Company name and its board handle |
location / locations | Location as listed, and every listed location |
city / region / country / countryCode | Structured location (ISO country code) |
workMode / remote | remote, hybrid or onsite — only when the posting says so |
employmentType | full_time, part_time, contract, internship, temporary, freelance |
seniority | intern, junior, mid, senior, lead, principal, director, executive |
yearsExperienceMin / yearsExperienceMax | Required experience, when stated |
jobFunction | Engineering, data, product, design, sales, marketing, AI training, … |
skills | Skills named in the posting |
salary | {min, max, currency, period, annualMin, annualMax} when pay is published |
educationLevel / visaSponsorship | Degree asked for, and visa sponsorship when stated |
department / team | Organization details, when available |
summary / description | Short summary and full description |
url / applyUrl | Posting and apply links |
postedAtIso / postedDaysAgo | Posting date (ISO 8601) and its age in days |
source / scrapedAt | Where the job came from and when it was collected |
Monitor new jobs on a schedule
Turn on Only new jobs and schedule the Actor (hourly, daily, weekly). Each run returns only postings earlier runs haven't delivered, and you're charged only for those.
Use it as an instant API
The Actor also runs in Standby mode — an always-ready endpoint that returns jobs in the response. Find the URL on the Standby tab:
curl "https://<standby-url>/?titleIncludes=engineer&maxItems=20" \-H "Authorization: Bearer <YOUR_APIFY_TOKEN>"
Pricing
Pay per result: $2 per 1,000 jobs plus a small start fee per run. Filtered-out, duplicate and (with Only new jobs) already-seen jobs are free. See the Pricing tab for exact rates, and set a maximum charge per run to cap spend.
On Apify's free plan each run returns up to 500 jobs. Any paid Apify plan removes the limit.
Related Actors
- Job Board Harvester — Multi-Platform — every filter and board in one Actor, including LinkedIn and job marketplaces.
- Remote Jobs Scraper — remote jobs.
- Startup Jobs Scraper — startup and tech jobs.
- Hiring Signals — which companies are hiring for the roles you sell to.
FAQ
Where does the salary come from? From the posting itself — a pay field on the job board or the range written in the description (e.g. “$140,000 – $180,000 per year”). Hourly and monthly pay is converted to annualMin / annualMax so roles compare directly. Nothing is estimated.
Which countries have the most data? The US (several states require pay ranges in postings), Canada, the UK and the EU. Use Countries to choose.
Is it legal? The Actor collects publicly listed job postings. You're responsible for how you use the data — for personal data in descriptions, follow the laws that apply to you (e.g. GDPR).
Support
Found a problem or need a field that isn't there yet? Open an issue on the Issues tab with your input and what you expected — requests decide what gets built next.