Ashby Jobs Scraper & API: Daily New-Job Feed
Pricing
from $1.05 / 1,000 job delivereds
Ashby Jobs Scraper & API: Daily New-Job Feed
Scrape every public job from Ashby job boards (jobs.ashbyhq.com) as clean JSON: locations, remote and hybrid flags, pay ranges the company publishes, teams, dates, apply links, and plain-text descriptions. Give board names, URLs, careers pages, or domains. Incremental mode returns only new jobs.
Pricing
from $1.05 / 1,000 job delivereds
Rating
0.0
(0)
Developer
Ervin Amaya
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Security
Limited permissionsShare
Ashby jobs scraper and API. Scrape every public job posting from any Ashby job board (jobs.ashbyhq.com) into clean, structured JSON: title, department, team, all locations, remote/hybrid/on-site, pay ranges the company publishes, employment type, dates, apply link, and a plain-text description. It reads Ashby's public Job Postings API: no login, no API key, no browser.
Give it board names (ramp), board URLs, careers pages, or bare domains. Turn on incremental mode and each scheduled run returns only jobs you haven't received yet: a ready-made daily Ashby job feed for job boards, recruiting tools, sales signals, market research, and AI agents.
Built and maintained by an AI agent operated by Elite Tech Global LLC (Deftcell). Issues are monitored and answered by the same AI-assisted team.
Need Greenhouse, Lever, or Workable too? ATS Jobs API reads all four in one run with the same output schema. This edition is the same engine, focused on Ashby.
What this Ashby jobs scraper does
- Reads Ashby's public Job Postings API, the one companies use to publish openings on their own careers sites. No login, no API key, no browser. Unlisted postings (hidden from the public board on purpose) are skipped.
- Pay ranges, parsed carefully. Ashby's structured compensation comes first, and only when the company chose to show pay on its postings. If a posting has none, a salary range is taken from the description only when it is clearly stated next to words like "salary", "base", or "pay". Every salary says where it came from (
salarySource) and the wording it was read from (salaryText). - Every location. The primary location and Ashby's secondary locations are both returned.
- Remote and workplace flags from Ashby's own workplace and remote fields.
workplaceTypeisremote,hybrid,onsite, ornullwhen unknown;isRemoteistruefor fully remote jobs and jobs with a remote option. - Board finder. Pass
https://example.com/careersorexample.comand the Actor finds the company's Ashby board from that one page. - Filters: keywords, locations, remote only, "posted within N days", and a per-company cap. Filtered-out jobs are not charged.
- Incremental mode for daily feeds, with one memory per
feedName. - Polite and reliable: at most 5 requests in flight, robots.txt (including Crawl-delay) honoured, retries with backoff on 429/5xx, timeouts on every request.
How to scrape Ashby jobs: input examples
Board names (the simplest input):
{ "companies": ["ramp", "linear", "notion"] }
URLs, careers pages, and domains:
{"companies": ["https://jobs.ashbyhq.com/ramp","https://api.ashbyhq.com/posting-api/job-board/linear","https://www.example.com/careers"],"maxJobsPerCompany": 100}
Remote engineering jobs from the last two weeks:
{"companies": ["ramp", "linear", "notion"],"keywords": ["engineer", "developer"],"remoteOnly": true,"postedWithinDays": 14}
Daily feed of new jobs only (pair it with an Apify schedule):
{"companies": ["ramp", "linear", "notion"],"incremental": true,"feedName": "daily-ashby-feed"}
Input fields
| Field | Type | Default | Description |
|---|---|---|---|
companies | array (required) | – | Ashby board names, board or API URLs, careers-page URLs, domains, or { "ats": "ashby", "token", "companyName" } objects. Up to 10,000 per run. |
keywords | string[] | [] | Keep jobs whose title, department, or team contains any keyword. Whole words, case-insensitive; engineer also matches "Engineering". |
keywordsInDescription | boolean | false | Also search the description text. |
locations | string[] | [] | Keep jobs matching any location: city, region, country, or Remote. US/USA/United States are treated as the same place. |
remoteOnly | boolean | false | Keep only jobs with isRemote: true. |
postedWithinDays | integer | none | Keep jobs whose postedAt (or updatedAt) is within this many days. |
maxJobsPerCompany | integer | none | Deliver at most this many jobs per company, newest first. |
includeDescriptionHtml | boolean | false | Add the original description HTML (descriptionHtml). Plain text is always included. |
incremental | boolean | false | Deliver only jobs not delivered by earlier runs with the same feedName. |
feedName | string | "default" | Name of the feed whose memory is used. |
Output: Ashby job data as JSON, CSV, or Excel
One dataset item per job, in the same schema as ATS Jobs API. A real posting from a test run on 2026-10-07, description shortened:
{"id": "08af4af8f366bf678952519a","ats": "ashby","companyToken": "ramp","companyName": null,"atsJobId": "b599c5a9-9c9d-4826-b67a-ca5e012faaad","title": "Partner Development Representative | Reseller","department": "Sales","team": "Channel Sales","employmentType": "FULL_TIME","employmentTypeRaw": "FullTime","locations": ["New York, NY (HQ)","Remote (US)"],"isRemote": true,"workplaceType": "hybrid","salaryMin": 110000,"salaryMax": 120000,"salaryCurrency": "USD","salaryPeriod": "YEAR","salarySource": "ats","salaryText": "$110K - $120K","postedAt": "2026-10-06T19:25:07.450Z","updatedAt": null,"applyUrl": "https://jobs.ashbyhq.com/ramp/b599c5a9-9c9d-4826-b67a-ca5e012faaad/application","jobUrl": "https://jobs.ashbyhq.com/ramp/b599c5a9-9c9d-4826-b67a-ca5e012faaad","descriptionText": "About Ramp\n\nRamp is building the smart infrastructure for finance teams, embedded in the transaction flow of every dollar a business spends. We automa …","companyInput": "ramp","scrapedAt": "2026-10-07T14:40:03.235Z"}
idis stable across runs (a hash of ATS + board + job ID), so you can de-duplicate or upsert on it.companyNameisnullunless you give it: Ashby's public API doesn't publish the company's display name. Pass an object such as{"ats": "ashby", "token": "ramp", "companyName": "Ramp"}to fill it.companyTokenalways holds the board name.- In the example the job is hybrid at its primary location and also open to remote candidates in the US, so
workplaceTypeishybridandisRemoteistrue. salarySourceisatswhen the range comes from Ashby's structured compensation anddescriptionwhen it was read from the posting text.jobUrlis the Ashby posting page andapplyUrlis its application form.- Personal e-mail addresses in descriptions are replaced with
[email removed].
The dataset's Overview tab shows company, title, locations, workplace, type, salary, posted date, and job link. Export as JSON, CSV, Excel, or through the API.
Each run also saves RUN_SUMMARY in its key-value store: one record per input with its status (ok, no_jobs, no_matching_jobs, no_new_jobs, duplicate, board_not_found, not_detected, robots_disallowed, unsupported_ats, invalid_input, error, and the charge-limit statuses), the board it resolved to, and job counts.
Daily feed of new Ashby jobs (incremental mode)
- Set
incremental: trueand pick afeedName, such as"daily-feed". - Create an Apify schedule that runs the Actor (or a saved task) every day.
- The first run delivers every matching job. Later runs deliver only jobs no earlier run with the same
feedNamedelivered.
Delivered job IDs are stored per board in a named key-value store in your Apify account, ashby-jobs-api-incremental. It's separate from ATS Jobs API's store, so a feed's memory doesn't carry over between the two Actors. A job counts as seen only once it is actually delivered. IDs of removed jobs are forgotten after 180 days. Don't run two incremental runs with the same feedName at the same time. To start a feed over, use a new feedName.
How much does the Ashby Jobs API cost?
Pay per event: $1.50 per 1,000 jobs delivered ($0.0015 per job) on Apify's Free plan, and $1.35, $1.20, or $1.05 per 1,000 on Starter, Scale, or Business-and-higher plans (Apify Store discounts), plus Apify's small automatic start event per run. Final prices are on the Actor's pricing tab. Jobs removed by filters, jobs already delivered in incremental mode, boards on other ATSs, and companies that fail are never charged. Set a maximum charge per run to cap spend.
Ashby Jobs API for AI agents and MCP clients
- Smallest useful input:
{"companies": ["ramp"], "maxJobsPerCompany": 20}. - API:
POST https://api.apify.com/v2/actors/deftcell~ashby-jobs-api/run-sync-get-dataset-items?token=<APIFY_TOKEN>&maxTotalChargeUsd=1with the input JSON as the body. - MCP: add
https://mcp.apify.com?tools=deftcell/ashby-jobs-apito your MCP client (Apify MCP docs).
FAQ: Ashby job scraping
Why did a company return no jobs? Check RUN_SUMMARY. not_detected: no Ashby board was found from the page you gave; pass the board name or URL. board_not_found: Ashby has no public board with that name. A board can also exist but have 0 open postings (no_jobs). unsupported_ats: the company uses another ATS; use ATS Jobs API.
How do I find a company's board name? Open one of its job posts. The board name is the part after jobs.ashbyhq.com/. Or just pass the careers page.
Why does a job have no salary when the company pays well? Ashby lets each company decide whether pay is shown on its postings. If it isn't shown and the description doesn't state a range, the salary fields stay null; nothing is guessed.
Can it scrape LinkedIn, Indeed, or arbitrary sites? No. It reads only Ashby's public Job Postings API, plus the single careers page you give it for detection.
Data source and compliance
- Jobs come only from Ashby's public Job Postings API, which companies use to publish openings. No data is taken from behind a login.
- The output contains job postings, not people. Recruiter and contact fields are never output, and personal e-mail addresses are removed. Role mailboxes such as
careers@stay. - robots.txt is respected for every host, including Crawl-delay. Requests are rate-limited and identified by the user agent
DeftcellJobsAPI/1.0 (+https://apify.com/deftcell). - You are responsible for how you use the data, including the hiring companies' terms and applicable privacy law.
- Not affiliated with or endorsed by Ashby. The name only describes where the data comes from.
Related Deftcell Actors
Same engine and output schema, different ATS. Each Actor keeps its own incremental memory.
- ATS Jobs Scraper & API: Greenhouse, Lever, Ashby, and Workable in one run, with auto-detection from careers pages.
- Greenhouse Jobs Scraper & API: Greenhouse job boards.
- Lever Jobs Scraper & API: Lever job sites, EU-hosted sites included.
- Workable Jobs Scraper & API: Workable careers pages (apply.workable.com).
Support
Open an issue on the Issues tab with your run ID and what you expected. Built and maintained by an AI agent operated by Elite Tech Global LLC (Deftcell).