Ashby Jobs Scraper: Ashby Job Board API
Pricing
$2.00 / 1,000 job scrapeds
Ashby Jobs Scraper: Ashby Job Board API
Ashby jobs scraper for any Ashby job board (jobs.ashbyhq.com). Exports all open Ashby jobs: title, location, remote flag, team, employment type, posting date, published salary range, description and apply URL. No API key. $2.00 per 1,000 jobs.
Pricing
$2.00 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
PulseData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Features
Share
Ashby Jobs Scraper: Export Any Ashby Job Board
Ashby Jobs Scraper exports every listed job from one or more Ashby job boards (jobs.ashbyhq.com) as JSON, CSV or Excel. You give it board URLs or just board names such as ramp, and it returns one record per job with title, primary and secondary locations, country, workplace type, department, team, employment type, Ashby's compensation summary, the description in HTML and plain text, and the job and application URLs. It costs $2.00 per 1,000 jobs, so a 500-job board costs about $1.00.
Features
- Scrape Ashby job boards by URL or by board name. A bare name like
openaiis expanded tohttps://jobs.ashbyhq.com/openai. - Export jobs.ashbyhq.com postings to CSV, JSON or Excel.
- Get Ashby salary and equity info. The actor requests compensation from Ashby's public job board API, and many Ashby boards publish it.
- Scrape Ashby jobs with all secondary locations, so a role listed in New York plus remote Canada shows both.
- Filter Ashby jobs by keyword, location, remote and posting date. Ashby flags remote roles explicitly, which helps when you look for remote startup jobs.
- Monitor new Ashby job postings of a company: with
onlyNewJobsa scheduled run returns and charges only jobs it has not delivered before. - No API key and no login. Ashby publishes each board through a public posting API.
Use cases
- Startup job boards: keep a curated list of Ashby-hosted startups in sync with their real openings.
- Compensation research: compare published pay bands for one role across many startups that use Ashby.
- Venture and market research: use hiring by department and location as a growth signal for portfolio or target companies.
- Lead generation: startups that open their first "RevOps" or "Security Engineer" role are often about to buy tools for it.
Input
{"startUrls": ["https://jobs.ashbyhq.com/ramp","openai","linear"],"keywords": ["engineer", "product"],"locations": ["San Francisco", "New York", "Remote"],"remoteOnly": false,"postedWithinDays": 7,"includeDescription": true,"maxJobsPerCompany": 0}
| Field | Type | Default | What it does |
|---|---|---|---|
startUrls | array of strings | (required) | Ashby board URLs or bare board names, one per line. |
keywords | array | [] | Keep only jobs whose title contains one of these words (case-insensitive). |
locations | array | [] | Keep only jobs whose primary location, a secondary location or the country contains one of these strings. |
remoteOnly | boolean | false | Keep only jobs Ashby marks as remote, or whose location mentions remote. |
postedWithinDays | integer | 0 | Keep only jobs published in the last N days. 0 means no limit. |
includeDescription | boolean | true | Include descriptionHtml and descriptionText. Ashby returns both in the same request, so this adds no extra requests. |
maxJobsPerCompany | integer | 0 | Cap per board, applied after the filters. 0 means no limit. |
onlyNewJobs | boolean | false | Monitor mode: output and charge only jobs not delivered on an earlier run. |
monitorStoreName | string | empty | Key-value store that remembers delivered jobs. Empty means a name derived from the board URLs and filters. |
proxyConfiguration | object | { "useApifyProxy": false } | Optional Apify Proxy. |
Accepted Ashby URL formats:
https://jobs.ashbyhq.com/ramphttps://jobs.ashbyhq.com/ramp/<job-id>(a single job URL; the actor reads the whole board)ramp(bare board name)https://company.com/careers(a page that embeds or links an Ashby board)
The board name is the path segment after jobs.ashbyhq.com/. Copy it from the board URL when in doubt.
Get new jobs from an Ashby board every day (monitor mode)
Turn on onlyNewJobs to get only the jobs a company posted since your last run:
{"startUrls": ["https://jobs.ashbyhq.com/ramp"],"maxJobsPerCompany": 0,"onlyNewJobs": true}
The IDs of delivered jobs are kept in a named key-value store in your Apify account, and later runs skip them. For alerts:
- Save the input as an Apify task.
- Add an Apify schedule, daily or weekly.
- Add an integration on the task (email, Slack, Google Sheets, Make, Zapier or a webhook) that fires on a succeeded run. Each run's dataset holds only the new jobs.
Details:
maxJobsPerCompanycounts new jobs only. Leave it at0on the first run so that run remembers every open job.- Jobs seen before are neither output nor charged.
- Without
monitorStoreNamethe store name is derived from the board URLs and filters, so each input keeps its own history. Set a name to share history between inputs, or a new one to start over. - A job cut off by
maxJobsPerCompany, the run timeout or the run's maximum cost is not remembered and comes on the next run. Schedule one run per store, since two parallel runs can deliver the same new job.
Output
One item per job:
{"title": "Security Engineer, Cloud","company": "ramp","location": "New York, NY (HQ)","locations": ["New York, NY (HQ)", "Remote (Canada)"],"country": "USA","remote": true,"workplaceType": "Hybrid","department": "Engineering","team": "Backend","employmentType": "FullTime","seniority": null,"salary": "$211.4K–$290.6K","postedAt": "2026-04-07T17:12:35.753Z","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","descriptionHtml": "<h1><strong>About Ramp</strong></h1><p>…</p>","descriptionText": "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams…","ats": "ashby","atsJobId": "34413f8d-26bf-4bbc-8ade-eb309a0e2245","sourceUrl": "https://jobs.ashbyhq.com/ramp","scrapedAt": "2026-09-25T08:31:10.000Z"}
What Ashby exposes, and how it maps:
companyis the board name from the URL.locationis the primary location;locationsadds every secondary location Ashby lists.countrycomes from the job's postal address in Ashby, when the company filled it in.remoteis Ashby's own remote flag (or remote in the location text).workplaceTypeis Ashby's value, such asOnSite,HybridorRemote. A hybrid job can still haveremote: trueif Ashby flags it as remote-eligible, as above.department,teamandemploymentType(FullTime,PartTime,Intern,Contract,Temporary) are Ashby's fields as published.salaryis Ashby's compensation summary as a single text string, formatted the way the board shows it (it can include notes such as "Offers Equity"). There are no separate min, max or currency fields. If a board publishes no compensation, the actor looks for a range near the start of the description.descriptionTextis Ashby's own plain-text version of the description.postedAtis Ashby's publish date.updatedAtandseniorityare not published by Ashby.- Jobs the company has marked as unlisted in Ashby are skipped.
If a board name does not exist, the dataset gets one row with sourceUrl, ats, slug and an error message. Error rows are not charged.
Pricing
Pay per event: $0.002 per job saved to the dataset ($2.00 per 1,000 jobs). There is no start fee.
Worked example: 100 Ashby-hosted startups with an average of 35 open roles is 3,500 jobs, or $7.00 per full export. A weekly run with postedWithinDays: 7 over the same list usually returns a few hundred new jobs, which is well under $1.00. Jobs removed by filters and error rows are not charged.
In monitor mode only new jobs are charged: a weekly run over the same 100 startups that finds 120 new jobs costs 120 x $0.002 = $0.24, and a run with nothing new costs nothing in result events.
Example pages
Each of these opens a ready-made run with a real input:
FAQ
Is compensation always included?
Only when the company publishes it on its Ashby board. The actor always asks Ashby for compensation, so if the board shows a pay band, you get it in salary.
How many jobs can it get from one board?
All listed jobs. Ashby returns the whole board in one response; use maxJobsPerCompany to cap it.
What can it not do?
It cannot see unlisted, internal or confidential Ashby jobs, application questions or candidate data. It does not render JavaScript, so if a careers page loads Ashby through a script, paste the jobs.ashbyhq.com URL.
Do I need proxies?
Normally no. The actor retries rate limits and server errors with backoff. Turn on proxyConfiguration only if a large list returns HTTP 429.
Can I mix Ashby with Greenhouse or Lever boards? Use the Career Page Jobs Scraper for mixed lists. It auto-detects 12 applicant tracking systems.
Use it from Claude, ChatGPT or Cursor (Apify MCP server)
Add the Apify MCP server to Claude, ChatGPT, Cursor or any other MCP client with this URL, which loads only this actor as a tool:
https://mcp.apify.com?tools=pulsedata/ashby-jobs-scraper
Then ask, for example, "which research roles does OpenAI have open on Ashby, and what salary ranges do they list", and the assistant fills the input, runs the actor and reads the jobs back as JSON. Billing is the same as a normal run.
Paying from an AI agent without an Apify account (x402 and Skyfire)
An agent can buy a prepaid, spend-capped Apify token at Apify AGI, paid in USDC through x402 or from a Skyfire wallet, and use it for both the API and the MCP server. This actor runs with limited permissions, so it works with these tokens. The smallest token is $1, tokens expire 14 days after purchase, and Apify marks agentic payments as experimental.
Related actors
- Career Page Jobs Scraper (12 ATS): multi-ATS version with auto-detection.
- Greenhouse Jobs Scraper: the same output for Greenhouse boards, the usual next step as startups grow.
- Lever Jobs Scraper: Lever boards, which publish structured salary ranges.
- Workday Jobs Scraper: enterprise careers sites on Workday.
- Website Tech Stack Detector: see which tools the hiring startups already run on their websites.