Ashby Jobs Scraper & New Job Monitor
Pricing
Pay per event
Ashby Jobs Scraper & New Job Monitor
Scrape every open job from any company's Ashby job board and monitor new, updated and closed jobs. Salaries included, filters, clean JSON. No login.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Bryan Masias
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Get every open job from any company that hires with Ashby, as clean JSON, with the salary ranges the company publishes. Run it once for a full snapshot, or schedule it daily in changes mode to get only the jobs that were added, updated or closed since the last run.
No login, no cookies, no proxies. It reads Ashby's public Job Postings API, one request per company.
What you can do with it
- Job boards and aggregators: keep a fresh feed of startup jobs from hundreds of companies.
- Sales teams: spot hiring signals ("Acme opened 5 data engineering roles this week").
- Recruiters and analysts: track hiring and pay ranges by company, team and location.
- AI agents: one-line input, flat output, and you pay only for the jobs you get.
Quick start
{ "companies": ["openai", "ramp", "linear"] }
Each entry can be a job board name (ramp), a board URL (https://jobs.ashbyhq.com/ramp),
a job URL from that board, or a company name.
Monitor new jobs
{ "companies": ["openai", "ramp"], "mode": "changes", "keywords": ["engineer"] }
Schedule it daily. Each job comes with changeType: new, updated or closed.
If a company fails to load, its jobs are never reported as closed. If you hit your
spending limit, the jobs you did not receive are reported again on the next run.
Use a different monitorId for each watch list or set of filters.
Input
| Field | Type | Default | Description |
|---|---|---|---|
companies | string[] | required | Job board names, board URLs or company names |
mode | all / changes | all | Full snapshot, or only changes since the last run |
keywords / excludeKeywords | string[] | [] | Match on title, department and team, case- and accent-insensitive |
locations | string[] | [] | Match on any of the job's locations, e.g. remote, Germany, London |
departments | string[] | [] | Match on department or team names |
remoteOnly | boolean | false | Only jobs marked as remote |
postedWithinDays | number | none | Only jobs published in the last N days |
includeDescription | text / html / none | text | Description format. none gives the smallest output |
maxJobsPerCompany | number | 1000 | Safety cap per company |
monitorId | string | default | Name of the saved state for changes mode |
emitOnFirstRun | boolean | true | If off, the first changes run only saves a baseline |
Output
One item per job, in the same format as our Greenhouse, Workday and Lever Actors. Every field is
always present (null when unknown), and dates are UTC ISO 8601.
{"jobId": "ashby:ramp:2f1c0a9e-0000-4000-8000-000000000000","source": "ashby","companyToken": "ramp","companyName": null,"title": "Senior Backend Engineer","departments": ["Engineering", "Platform"],"offices": ["New York, NY", "San Francisco, CA"],"location": "New York, NY","countryCode": "US","workplaceType": "hybrid","isRemote": false,"employmentType": "full-time","url": "https://jobs.ashbyhq.com/ramp/2f1c0a9e-0000-4000-8000-000000000000","firstPublishedAt": "2026-10-18T13:00:00.000Z","updatedAt": null,"requisitionId": null,"language": null,"salary": { "min": 150000, "max": 190000, "currency": "USD", "period": "year" },"descriptionText": "...","descriptionHtml": null,"changeType": "new","scrapedAt": "2026-10-25T12:00:00.000Z"}
departments holds the department and the team. salary is the base salary the company
publishes (equity and bonus are left out), and null when it does not publish one.
Ashby's API does not return the company's display name, so companyName is null; use
companyToken. A run summary (companies checked, failed companies with the reason, counts
per change type) is saved in the OUTPUT record of the run's key-value store.
Pricing
Pay per event, no subscription:
- $0.0015 per job returned ($1.50 per 1,000 jobs)
- $0.0005 per company checked
Salaries are included at no extra cost. Filters run before you are charged, so you only pay for jobs that match.
Is it legal?
This Actor reads Ashby's public Job Postings API, which Ashby provides so companies can show their open jobs anywhere, with no authentication. It returns job postings that employers published. It does not collect data about individuals: emails and phone numbers inside job descriptions are masked. You are responsible for how you use the data.
FAQ
Why is a company missing?
It may not use Ashby, or its board name differs from its name. Open one of its job postings
and copy the name from the jobs.ashbyhq.com/<name> link. Custom career domains cannot be
resolved to a board name.
I changed my filters and got many closed or new jobs.
The monitor compares against the saved state of that monitorId. Use a new monitorId
when you change filters.
Greenhouse, Workday or Lever? See our Greenhouse, Workday and Lever Actors: same input, same output.
Use it from an AI agent
Want Claude, Cursor or your own agent to search these jobs directly? The
Career Site Jobs MCP Server exposes Greenhouse,
Ashby, Lever and Workday as MCP tools (search_jobs, get_job_changes, get_salary_stats),
with company names resolved automatically.