Ashby Jobs Scraper & Salary API
Pricing
from $1.50 / 1,000 job listings
Ashby Jobs Scraper & Salary API
Ashby jobs scraper and API. Get every open position from any Ashby job board as clean JSON: title, department, team, location, workplace type, compensation range and full description. Paste a careers link or a company name. Pay per job.
Pricing
from $1.50 / 1,000 job listings
Rating
0.0
(0)
Developer
Aditya Sapra
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Ashby Jobs Scraper turns any company's Ashby job board into clean, structured data: one consistent JSON record per open position, with pay ranges where they exist. Use it as a Ashby jobs API for job aggregators, recruiting and sales-intelligence tools, hiring-signal tracking and labour-market research.
It reads the public data behind Ashby career pages, so it is fast and stable: no browser, no proxies, no blocked requests.
Not affiliated with, endorsed by or sponsored by Ashby. "Ashby" is used only to describe which public job boards this Actor reads.
What is it good for?
- Job boards and aggregators: fill your board straight from company career pages.
- Recruiting and talent teams: see which competitors are hiring for which roles, and where.
- Sales and RevOps: hiring is a buying signal, so list the companies hiring for the roles your product serves.
- Analysts and researchers: build salary benchmarks and labour-market trends from the pay ranges employers publish.
Try it in 30 seconds
- Press Start: the input is prefilled with real examples.
- Open the Output tab and download JSON, CSV or Excel.
- Replace the examples with your own and run again. You pay about $1.50 per 1,000 jobs.
A taste of the output
| Company | Title | Location | Pay |
|---|---|---|---|
| Ramp | Security Engineer, Cloud | New York, NY (HQ) | $211.4K - $290.6K |
The full record has more fields; see the example output further down.
What does Ashby Jobs Scraper do?
Give it Ashby career-page links or company names and it returns every open position as JSON, CSV or Excel, or through the API. Filter by job-title keywords, location, department, employment type, remote only or posting date, and schedule it to receive only newly posted jobs.
What data can I scrape from Ashby job boards?
- title
- department and team
- primary and secondary locations
- country
- employment type
- workplace type
- compensation range when published
- posting date
- full description
Every record uses the same fields across platforms, so you can combine this data with other job sources.
Example output
One record per job:
{"id": "ashby:ramp:34413f8d-26bf-4bbc-8ade-eb309a0e2245","ats": "ashby","companySlug": "ramp","companyName": "Ramp","title": "Security Engineer, Cloud","department": "Engineering","departments": ["Engineering"],"team": "Backend","location": "New York, NY (HQ)","locations": ["New York, NY (HQ)","Remote (Canada)","Remote (US)","Miami, FL"],"country": "USA","workplaceType": "hybrid","isRemote": false,"employmentType": "full_time","postedAt": "2026-04-07T17:12:35Z","updatedAt": null,"url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245","applyUrl": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application","salary": {"min": 211400,"max": 290600,"currency": "USD","interval": "year","summary": "$211.4K - $290.6K","source": "api"},"description": "ABOUT RAMP Ramp is building the smart infrastructure for finance teams, embedded in the transaction flow of every dollar a business spends...."}
| Field | Description |
|---|---|
title, companyName, url, applyUrl | Basics. companyName is taken from the platform where it is published, otherwise derived from the board name |
department, departments, team | Department or team as published |
location, locations, country | Primary location, all locations, and country where the platform provides it |
workplaceType | remote, hybrid or onsite when the platform provides it |
isRemote | true if the role is remote, or lists a remote option among its locations |
employmentType | full_time, part_time, contract, internship, temporary or other (original in employmentTypeRaw) |
postedAt, updatedAt | ISO 8601 UTC |
salary | min, max, currency, interval (year, hour, ...), summary and source |
description, descriptionHtml | Full job description as text and/or HTML |
id, ats, companySlug, matchedBy | Stable unique id, source platform, board name, and whether you gave an exact link (explicit) or a name we matched (slug-probe) |
How is salary data handled?
- Ashby publishes structured compensation (minimum, maximum, currency, interval) for roles where the employer shows it; that is passed through (
salary.source = "api"). About seven in ten roles on the boards we checked carried one. - We only return a value when a currency, a range and a pay-related keyword are all present, and we leave it empty instead of guessing.
- Values are exactly what the employer published. If a yearly range looks like it was typed without the "K" (for example 230 to 350), the record carries
"suspect": true.
How do I scrape Ashby jobs?
-
Add companies, one per line. Any of these work:
https://jobs.ashbyhq.com/ramphttps://jobs.ashbyhq.com/openaiashby:notion- Short form:
ashby:ramp
A plain company name or website (for example
ramp.com) is also accepted: the Actor guesses the board name. -
Optionally filter by job title keywords, location, department, employment type, remote only or posting date.
-
Run it, then download the data as JSON, CSV or Excel, or read it through the API.
How do I find a company's Ashby board name?
Open the company's careers page. If its address looks like jobs.ashbyhq.com/<name>, <name> is the board name.
Example input
{"companies": ["https://jobs.ashbyhq.com/ramp","https://jobs.ashbyhq.com/openai"],"keywords": ["engineer","data"],"locations": ["United States","Remote"],"postedWithinDays": 14,"maxJobsTotal": 500}
How do I get only new Ashby jobs?
Turn on Only jobs not returned before and schedule the Actor (hourly, daily, ...). The first run returns everything and saves a baseline; every later run returns only openings that were not returned before for the same company list.
How much does it cost to scrape Ashby jobs?
You pay per job returned: $0.0015 per job, about $1.50 per 1,000 jobs, plus a tiny fixed fee per run. Apify bills the platform usage of the run (compute) on top, which is normally a small fraction of the per-job price. Max jobs in total is a hard cap on the cost of a run, and the run also stops if it reaches the maximum charge you set in the run options. The Pricing tab always shows the current rate.
Can I use Ashby Jobs Scraper through the API?
Yes. Like every Apify Actor it can be started from code, scheduled in the Apify Console, or connected to Make, Zapier, n8n, Google Sheets and webhooks through Apify integrations.
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run_input = {"companies": ["https://jobs.ashbyhq.com/ramp","https://jobs.ashbyhq.com/notion"],"keywords": ["engineer"],"maxJobsTotal": 25}run = client.actor("cyborg_cell/ashby-jobs-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const input = {"companies": ["https://jobs.ashbyhq.com/ramp","https://jobs.ashbyhq.com/notion"],"keywords": ["engineer"],"maxJobsTotal": 25};const run = await client.actor('cyborg_cell/ashby-jobs-scraper').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
cURL
curl -X POST "https://api.apify.com/v2/acts/cyborg_cell~ashby-jobs-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"companies": ["https://jobs.ashbyhq.com/ramp", "https://jobs.ashbyhq.com/notion"], "keywords": ["engineer"], "maxJobsTotal": 25}'
FAQ
Is it legal to scrape Ashby job boards?
This Actor reads only the public job-postings data that Ashby career pages publish so that employers can show their own openings. It does not log in to anything, bypass any protection or collect candidate or other personal data, and it sends modest, rate-limited requests. Laws and website terms differ by country and by use, so you are responsible for how you use the data. This is not legal advice.
Do I need proxies or a browser?
No. The data comes from public endpoints, so there is nothing to unblock and no browser to run.
Which companies does it work for?
Companies whose careers page runs on Ashby. Companies on other platforms are not covered; if you need several platforms in one run, use the ATS Job Scraper (Greenhouse, Lever, Ashby, Workday and four more platforms).
What is not available on Ashby?
Ashby does not publish a last-updated date. Jobs the employer marks as unlisted are not returned. isRemote is true when the role is remote or lists a remote option among its locations.
A company should work but does not. What now?
Open an issue on the Actor page with the company link and we will look at it.
Other Actors by the same author
- ATS Job Scraper (Greenhouse, Lever, Ashby, Workday and four more platforms): all eight platforms in one run.
- More single-platform scrapers: Greenhouse Jobs Scraper, Lever Jobs Scraper, Workday Jobs Scraper, SmartRecruiters Jobs Scraper, Workable Jobs Scraper, Recruitee Jobs Scraper.
- Remote Jobs Scraper (RemoteOK, Himalayas, Jobicy, Arbeitnow): one feed from four remote job boards.
- Also by the same author: Email Validator, Website Screenshot API & URL to PDF Converter, YouTube Transcript Scraper.