Ashby Jobs Scraper API - Job Boards with Salaries
Pricing
from $1.20 / 1,000 jobs
Ashby Jobs Scraper API - Job Boards with Salaries
Scrape all open jobs from Ashby job boards (jobs.ashbyhq.com) by company name, domain or URL (OpenAI, Ramp, Notion), or search 2,700+ verified Ashby boards by title, location, remote and minimum salary. Salary ranges, remote type, new & closed job feed. No login. $1.50 per 1,000 jobs.
Pricing
from $1.20 / 1,000 jobs
Rating
0.0
(0)
Developer
HireWatch
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Security
Limited permissionsShare
Ashby Jobs Scraper API: job boards with salaries, by company name
Get all open jobs from any company's Ashby job board (jobs.ashbyhq.com) as clean JSON, CSV or Excel, with no login and no API key. Type a company name (e.g. Ramp), a website domain (e.g. openai.com) or the board URL, or search all 2,791 verified Ashby boards at once by job title, location, remote and minimum salary. You get salary ranges (Ashby boards often publish them), remote / hybrid / on-site type, department and team, and full descriptions, and every run labels jobs new / unchanged / closed, so a daily schedule becomes a new-jobs feed. Works from the Apify API and from AI agents through MCP.
Independent tool: not affiliated with, endorsed by or sponsored by Ashby, Inc. "Ashby" is used only to describe which job boards this works with.
Two ways to use it
- Name the companies. Type company names, website domains or job-board URLs, and get every open job at those companies.
- Search all companies. Turn on
searchAllCompaniesand the Actor searches a built-in directory of 2,791 verified Ashby job boards, biggest employers first, with your filters: title keywords, location, remote only, posted date and minimum salary. It works like a live job search API across company career sites. There's no cached database: every board is read at run time, so closed jobs never show up.
{"searchAllCompanies": true,"titleKeywords": ["machine learning"],"locationKeywords": ["Remote", "United States"],"minSalary": 100000,"salaryCurrency": "USD","postedWithinDays": 14,"maxItems": 200}
maxCompaniessets how many boards are searched (default 100, about 1–3 minutes). Raise it for wider coverage.- Search-all runs stop at
maxItemsmatching jobs (500 if you leave it at 0) and output job rows only, without company summaries. - Every board in the directory was checked live against its public jobs API on 2026-10-20 and had at least one open job. Boards that close later are skipped and listed in
RUN_REPORT, so they never fail the run. - For a daily new-jobs feed, schedule a search with
"outputMode": "changesOnly". After the first run, each run returns only jobs that are new (or closed) since the previous one.
How to scrape Ashby jobs
- Click Try for free (or Start) on this page. Apify's free plan includes monthly credit, so a first test costs nothing.
- In Companies, type company names, domains or careers-page URLs, e.g.
OpenAIandRamp. Or leave it empty and turn on Search all companies. - Optional: add title keywords, location keywords, remote only, posted within N days or a minimum salary.
- Click Start. Small runs finish in seconds; a whole large company takes a few minutes.
- Download the jobs as JSON, CSV, Excel or HTML, or read them through the API. Add a schedule to get new jobs every day.
What you can use it for
- Startup hiring signals. Ashby is popular with fast-growing startups and AI companies. See who's hiring, in which teams, and how fast.
- Salary research. Compensation comes back as
salaryMin,salaryMax,salaryCurrencyandsalaryInterval, plus the original summary text (e.g. "$190K – $330K • Offers Equity"). - Job boards and newsletters. Get complete listings straight from the source, with descriptions included.
- Candidates. Get new roles at your target companies as soon as they're posted.
Why this Ashby scraper
- Company-name lookup.
Ramp,Notionandopenai.comall work. Names are matched against 2,791 verified boards first; otherwise the Actor tries the usual board spellings, then the company's/careerspage. - Accepts any Ashby link:
jobs.ashbyhq.com/<company>, a link to a single job, embedded boards, or a careers page that embeds Ashby. - Salary ranges wherever the company publishes compensation. In our test, 651 of 812 OpenAI jobs and 158 of 165 Ramp jobs had them.
- Remote / hybrid / on-site from Ashby's own remote flag and workplace type, plus department, team, employment type and secondary locations.
- Filters: title keywords, location keywords, remote only, posted within N days, max jobs per company, and an overall
maxItemscap. - New / closed tracking between runs, plus an optional hiring-signal summary per company: open jobs, new and closed jobs, trend, jobs posted in the last 7 and 30 days, top departments and locations.
- Fast and polite. A whole board comes back in one request, and descriptions add no extra requests. It uses Ashby's public job-board API, needs no login, and respects robots.txt. Contact details are never collected, and e-mails and phone numbers in descriptions are masked.
Input examples
By company name, domain or URL:
{"targets": ["Ramp", "openai.com", "https://jobs.ashbyhq.com/notion"],"maxJobsPerCompany": 0}
Remote jobs posted in the last 30 days, with descriptions:
{"targets": ["Ramp", "OpenAI", "Notion"],"remoteOnly": true,"postedWithinDays": 30,"includeDescriptions": true}
Daily change feed for engineering roles (schedule it daily):
{"targets": ["OpenAI", "Ramp", "Cursor", "Linear"],"maxJobsPerCompany": 0,"outputMode": "changesOnly","titleKeywords": ["engineer"]}
Output
One row per job (real example from a test run, trimmed):
{"recordType": "job","platform": "ashby","companySlug": "ramp","companyName": "Ramp","jobId": "d84bbf19-572a-499c-9c87-0c154ce85caf","globalId": "ashby:ramp:d84bbf19-572a-499c-9c87-0c154ce85caf","title": "Account Manager | Mid-Market","department": "Sales","team": "Account Manager","employmentType": "full_time","remoteType": "remote","location": "New York, NY (HQ)","country": "USA","postedAt": "2026-09-23T16:15:40Z","salaryText": "$190K – $330K • Offers Equity • Multiple Ranges","salaryMin": 190000,"salaryMax": 330000,"salaryCurrency": "USD","salaryInterval": "year","url": "https://jobs.ashbyhq.com/ramp/d84bbf19-572a-499c-9c87-0c154ce85caf","changeStatus": "new","firstSeenAt": "2026-10-11T23:29:18Z"}
Every row has the same fields (missing values are null), including applyUrl, locations, descriptionText and descriptionHtml. globalId stays the same across runs, so use it as your key. changeStatus is new, unchanged or closed (with closedAt). Optional company_summary rows hold the hiring signals, which are also saved as COMPANY_SUMMARIES. A per-company RUN_REPORT shows status and errors, such as a name with no matching board.
Pricing (pay per event)
- $1.50 per 1,000 job records on the Free plan, $1.40 on Bronze, $1.30 on Silver and $1.20 on Gold and higher Apify plans (per job, including jobs labelled
closed) - $0.01 per company summary (optional; turn off
includeCompanySummaryto skip it)
Examples: all ~810 OpenAI jobs ≈ $1.23. 50 startups with ~60 jobs each ≈ $5. You pay only for results. Set Maximum cost per run (or maxItems) to cap spending.
Tips & limits
- Name lookups use the built-in directory first, then check a few spellings (e.g.
Scale AI→scaleai,scale-ai). If the board found isn't the one you meant, pass the URL instead. - Unlisted jobs (hidden from the public board) are skipped.
- Closed jobs are only reported when the whole board was fetched in both runs, so use
maxJobsPerCompany: 0for tracking.
Use with AI agents / MCP
This Actor is built to be called by AI agents (Grok Bot, Claude, ChatGPT, Cursor, LangChain and others) through the Apify MCP server or the Apify API.
- Add only this tool:
https://mcp.apify.com?tools=hirewatch/ashby-jobs-scraper. You can also let your agent find it throughsearch-actors. - Keep calls small so they finish fast. The MCP
call-actortool waits up to 45 seconds, so setmaxItems(e.g. 50) andmaxJobsPerCompany(e.g. 100), and leaveincludeDescriptionsoff unless you need the text. Cap spend withmaxTotalChargeUsdincallOptions. - Read results with
get-dataset-itemsusing the run'sdatasetId. Each row hasrecordType:jobrows share one flat schema, andcompany_summaryrows hold the hiring signals. Per-company errors are in theRUN_REPORTkey-value record, so one bad input never fails the whole run. - Pay without an Apify account. The Actor uses pay-per-event pricing with limited permissions, so agents can pay per run with agentic payments (x402 / MPP prepaid tokens or Skyfire).
Job search across many companies (no company names needed; maxCompanies: 20 keeps it to roughly 30 seconds, inside the MCP 45-second wait):
{"searchAllCompanies": true, "titleKeywords": ["data engineer"], "remoteOnly": true, "maxCompanies": 20, "maxItems": 50}
Minimal agent call for named companies:
{"targets": ["OpenAI"],"titleKeywords": ["engineer"],"remoteOnly": true,"maxItems": 50,"includeCompanySummary": false}
Other HireWatch jobs Actors
| Actor | Best for |
|---|---|
| Workday Jobs Scraper | Workday career sites (*.myworkdayjobs.com) by company name or URL, including sites with more than 2,000 jobs |
| Greenhouse Jobs Scraper | Greenhouse boards by company name or domain, with published salary ranges |
| Lever Jobs Scraper | Lever boards (jobs.lever.co) by company name or domain, with salaries and remote/hybrid type |
| Ashby Jobs Scraper | Ashby boards (jobs.ashbyhq.com), popular with startups and AI companies, with salary ranges |
| Workday, Greenhouse, Lever, Ashby & Oracle Jobs Scraper | Mixed lists across all five platforms in one run and one schema, plus job search across all of them |
| Website Tech Stack Detector + DMARC/SPF Checker | Find out what the hiring companies' websites are built with |
All of them use the same output schema and the same new/closed tracking, so you can combine their datasets.
How much does it cost to scrape Ashby jobs?
You pay only for job records in your dataset. There is no monthly fee and no charge for jobs your filters remove.
| Job records | Free plan ($1.50 / 1,000) | Gold+ plans ($1.20 / 1,000) | Typical use |
|---|---|---|---|
| 100 | $0.15 | $0.12 | a quick check of one company |
| 1,000 | $1.50 | $1.20 | every job at a few mid-size companies |
| 10,000 | $15.00 | $12.00 | a weekly market-wide search |
| 100,000 | $150.00 | $120.00 | a large job board backfill |
Optional company summaries cost $0.01 each. Set Maximum cost per run in the run options (or maxItems) and the run stops cleanly at your budget.
Integrations and API
Run it from your own code, a no-code tool or a schedule:
- Schedules: run daily or hourly from the Schedules tab, with
"outputMode": "changesOnly"for a new-jobs feed. - No-code: Make, Zapier, n8n, Google Sheets, Slack, Airbyte and webhooks are available under Integrations.
- Export: JSON, CSV, Excel, XML, RSS or HTML from the dataset, or stream rows through the API.
- AI agents: use it as an MCP tool (see below).
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("hirewatch/ashby-jobs-scraper").call(run_input={"targets": ["OpenAI", "Ramp"], "maxItems": 100})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["title"], job["location"], job["url"])
JavaScript / Node.js (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('hirewatch/ashby-jobs-scraper').call({ targets: ['OpenAI', 'Ramp'], maxItems: 100 });const { items } = await client.dataset(run.defaultDatasetId).listItems();
cURL (runs the Actor and returns the jobs in one request):
curl -X POST "https://api.apify.com/v2/acts/hirewatch~ashby-jobs-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"targets": ["OpenAI"], "maxItems": 50}'
FAQ
How do I get all open jobs at a company? Put its name in targets, e.g. ["OpenAI", "Ramp"], and set maxJobsPerCompany to 0. A careers-page URL or the company's website domain works too.
Can I search jobs without knowing the companies? Yes. Turn on searchAllCompanies and add title keywords, a location or a minimum salary. The Ashby Jobs Scraper searches the built-in directory of verified boards.
Do I need a login, cookies or an API key for the job site? No. Only public job postings are read, the same data the company's careers page shows to every visitor.
Can I get only new jobs every day? Yes. Schedule the Actor with "outputMode": "changesOnly". Each run then returns jobs that are new or closed since the previous run.
Can I filter by salary? Yes. minSalary (yearly; hourly and monthly pay is converted, full time), salaryCurrency and onlyWithSalary keep only jobs that publish pay.
How do I use it from code or an AI agent? Call hirewatch/ashby-jobs-scraper through the Apify API with the JSON input shown above or the Apify MCP server. See the AI agents section above.
Is there an official Ashby jobs API? Ashby has a public job-board feed for each customer's board, but you need the exact board name for every company and you get raw, platform-specific fields. This Actor finds the board from a company name, reads it, and returns one clean schema with salaries, filters and new/closed tracking.
How is this different from LinkedIn or Indeed scrapers? Jobs come straight from the employer's own careers site, so they are complete, up to date and free of reposts and recruiter spam, and closed jobs are flagged closed on the next run.
Can I export to Excel or Google Sheets? Yes. Download CSV or Excel from the dataset, or use the Google Sheets integration to append new jobs automatically.
Is it legal?
It reads only publicly available job postings from Ashby's public job-board API, which employers use to publish their jobs. It does not log in or bypass any access control, and it follows robots.txt. Job postings are not personal data, but you are responsible for how you use the results and for following the laws and site terms that apply to you.
Support
A company that doesn't resolve, or a board that fails? Open an issue on the Issues tab.