Ashby Salary Scraper - Startup Job Pay Ranges
Pricing
Pay per event
Ashby Salary Scraper - Startup Job Pay Ranges
Ashby job postings with normalized annual salary ranges, equity flags and new-since-last-run detection.
Pricing
Pay per event
Rating
0.0
(0)
Developer
datagrit
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What does Ashby Salary Scraper do?
Ashby Salary Scraper reads the public job boards of companies that hire through Ashby and returns every posting as a clean record, with the published salary range converted to yearly amounts. Pay is the point: you can keep only postings with a salary, set a minimum annual pay, pick the currency of the pay range, and get equity, bonus and commission flags plus every location pay tier next to each role. Export the data as JSON, CSV or Excel, call it through the Apify API, or plug it into n8n, Make and AI agents through MCP.
Who is it for?
- Recruiters and sourcers who want a feed of new roles at fast-growing companies, filtered by team and location.
- Job seekers and career coaches who compare pay ranges across startups before negotiating.
- Compensation and HR analysts who benchmark salary bands by role, level, location and currency.
- Sales teams who use hiring as a buying signal and want to know which companies are opening roles right now.
How to use it
- Enter the companies you want as Ashby board names or URLs. The name is the last part of the careers link:
jobs.ashbyhq.com/rampmeans the name isramp. Some board names contain spaces, such asjobs.ashbyhq.com/the%20browser%20company; paste the link as it is or typethe browser company. - Add filters if you need them: title keywords, department, team, location, fully remote only, only postings with a salary, minimum annual salary, salary currency, or how recent the posting is.
- For a recurring feed, switch on Only postings new since my last run and schedule the Actor. Each run then returns only the matching postings it has not delivered to you before.
- Download the dataset or fetch it from the API.
Example output
| company | title | location | workplaceType | salaryMin | salaryMax | salaryCurrency | payTierCurrencies | salaryAnnualMax |
|---|---|---|---|---|---|---|---|---|
| ramp | Security Engineer, Cloud | New York, NY (HQ) | Hybrid | 211400 | 290600 | USD | USD | 290600 |
| zapier | Finance Manager, Marketing | NAMER | Remote | 158300 | 237500 | USD | USD, CAD | 237500 |
{"company": "zapier","id": "cb1aec2c-05cd-4598-8117-bd1f7ed9a49f","title": "Finance Manager, Marketing","department": "Finance","employmentType": "FullTime","location": "NAMER","isRemote": true,"workplaceType": "Remote","publishedAt": "2026-09-21T20:13:45.355Z","hasSalary": true,"salaryMin": 158300,"salaryMax": 237500,"salaryCurrency": "USD","salaryInterval": "1 YEAR","salaryAnnualMin": 158300,"salaryAnnualMax": 237500,"equityOffered": true,"bonusMentioned": true,"commissionMentioned": false,"salarySummary": "$158.3K - $237.5K","payTiers": 2,"payTierCurrencies": "USD, CAD","payTierSummaries": "USD $158.3K – $237.5K • Offers Equity • Offers Bonus | CA$158.3K – CA$237.5K • Offers Equity • Offers Bonus","jobUrl": "https://jobs.ashbyhq.com/zapier/cb1aec2c-05cd-4598-8117-bd1f7ed9a49f","found": true}
What data do you get?
Each record contains the title, department, team, employment type, primary and secondary locations with country, region and city plus one allLocations column that joins them, the workplace type and Ashby's remote flag, publication date and age, the posting and application links, and the compensation: the headline range as published with its interval and currency, the same range annualised, equity, bonus and commission flags, the salary text shown on the posting, the number of location-based pay tiers with their currencies and summaries. The full description text is available on request.
Annualising multiplies monthly pay by 12, weekly by 52, daily by 260 and hourly by 2080. Amounts stay in the currency of the headline range: the Actor does not convert currencies, so combine the minimum salary filter with the currency filter.
What the live boards looked like
Measured by us on 30 September 2026 on the live Ashby API: the openai board listed 838 postings, 677 of them with a salary; ramp listed 155 postings, 148 with a salary (144 yearly, 4 monthly ranges); zapier listed 11 postings, 9 with a USD headline range, 8 of which add a Canadian pay tier. Boards such as deel and vercel existed but had no open postings.
Remote, hybrid and on-site
Ashby sets its isRemote flag to true for hybrid roles as well: on openai all 524 Hybrid postings carried it (measured 30 September 2026). The Remote roles only switch therefore keeps workplace type Remote and drops Hybrid and on-site roles; on that day it returned 29 of 838 openai postings (24 marked Remote, 5 without a workplace type whose location says remote, such as "Bangalore - Remote").
How much does it cost?
You pay per posting returned. Pricing depends on your Apify plan: a small fee when a run starts, then a price per result that is lower on paid plans. The Apify free plan includes monthly credit you can use to try it. The status row of an empty run is never charged, and you can set a maximum spend on the run: the Actor stops when the limit is reached. It reads a public API over plain HTTP, so runs are fast and light on platform resources.
Input
- Companies – Ashby board names or URLs, letter case does not matter and names with spaces work. Boards that do not exist, and entries that are not a board name or an Ashby link, are skipped and listed in the run status; if none of them can be read, the run fails.
- Job title keywords – match words in the job title.
- Departments, Teams – match words in the department, or in the team one level below it. Companies name departments differently (OpenAI files sales roles under Go To Market), so check a first run.
- Locations – match whole words or phrases in
allLocations(primary and secondary locations, city, region and country):USmatches "Remote (US)" but not "Australia" or "Houston". - Remote roles only – workplace type Remote; Hybrid and on-site are excluded.
- Only postings with a published salary – skip postings without a pay range.
- Minimum annual salary, Salary currencies – pay filters on the headline range (
salaryCurrency). A posting with a USD headline and an extra CAD tier counts as USD; every tier currency is inpayTierCurrencies. - Published within days – at most N × 24 hours old.
- Only postings new since my last run, State key – incremental feed, see the FAQ.
- Include description text – adds the plain-text description.
- Maximum results – total limit for the run.
Is it legal to scrape this data?
The Actor reads only the public job board API that Ashby offers to employers for publishing their open roles. It does not log in, bypass access controls or collect candidate data. Job postings can contain personal data such as a recruiter name in the description, so if you request descriptions you are responsible for handling them in line with applicable data protection law. This description is not legal advice.
FAQ
Which companies are covered? Any company that publishes its roles through Ashby. Board names that return "not found" and entries that are not a board name or an Ashby link are listed in the run status, so you can spot typos, and boards that exist but have no open postings are named there too, even when your filters removed every posting from the other boards.
Why do some postings have no salary? Employers decide whether to publish pay. Use the salary filter to keep only postings that show it.
How does the only-new mode work? The Actor keeps a memory in a storage on your account, separately for every company and every combination of filters. Only postings actually returned to you are remembered, so a posting cut off by the result limit or excluded by your filters comes back in a later run, and a second schedule with different filters gets its own complete feed. Two schedules with identical filters share one memory unless you give each a different state key. Postings that leave the board are forgotten after 30 days. Your first run returns everything that matches.
What happens when a run finds nothing? You get one free status row with found: false, and the run status says why: the board has no open postings, your filters matched nothing, or there is nothing new since your last run.
How fresh is the data? Every run reads the live job boards.
Something looks wrong. Open an issue with the input you used; changes at the source are fixed quickly.
Related Actors
Other public-data Actors from the same publisher are listed on the Store profile.