Ashby Jobs Scraper
Pricing
from $0.84 / 1,000 results
Ashby Jobs Scraper
Jobs from any company's Ashby job board (jobs.ashbyhq.com) via the public Job Posting API: title, department, team, location, remote/hybrid, employment type, salary range and currency, publish date, apply URL and full description. Filter by keyword, department, location, remote.
Pricing
from $0.84 / 1,000 results
Rating
0.0
(0)
Developer
Ibnu Adzim
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Every open job on any company's Ashby job board — Ramp, Linear, Notion
and the thousands of others hosted at jobs.ashbyhq.com/<org> — through
Ashby's public Job Posting API: title, department, team, location and
address, remote / hybrid / on-site, employment type, salary range with
currency and interval, publish date, apply URL and the full description
as text and HTML.
HTTP only, no login, no key, no browser. One request per organization returns the whole board.
What it is for
- Salary datasets — Ashby is the ATS where compensation is a structured field; Ramp publishes a range on 141 of 148 postings.
- Company watchlists — a list of orgs on a schedule, diff by
jobId. - Multi-company search — many orgs, one keyword, one dataset.
- Remote-only slices —
remoteOnlyuses the board's own flags.
Input
| field | what it does |
|---|---|
organizations | Org slugs (ramp) or URLs (jobs.ashbyhq.com/ramp, a job URL under the org). |
searchTerms, departments, locations, remoteOnly | Local filters on the full list (the API has no search). |
includeDescription | On by default; same response, bigger rows. |
maxItems, maxConcurrency, minRequestInterval, proxyConfiguration | Limits. |
Each org gets a BOARD_SUMMARY with its total, how many rows carry a
salary, what the filters dropped, and the board's own department and
location vocabularies.
Three things about this API worth knowing before you trust a run
1. There is no pagination, and page parameters are silently ignored
?page=2&limit=5 answers with all 148 Ramp jobs, same as no parameters. A
client that walks pages gets the whole board again on every "page". This
Actor makes one request per org and applies maxItems locally.
2. Compensation is off unless asked for, and nested three deep when on
Without includeCompensation=true there is no compensation key at all —
a scraper that forgets the flag reports "no salaries on Ashby". With it, the
numbers live in compensation.compensationTiers[].components[] beside
equity and bonus components. The Actor always sends the flag and lifts the
first tier's Salary component to salaryMin, salaryMax, salaryCurrency,
salaryInterval; the human string ("$211.4K – $290.6K • Offers Equity")
is compensationSummary, offersEquity is derived, and the raw object is
kept in compensation for boards with several tiers.
3. Titles can carry leading whitespace
" Security Engineer, Cloud" — sorted, grouped or matched raw it becomes a
different title. Stripped.
Other things measured
- An unknown org answers a bare
404 Not Found(text, not JSON). Reported asorganization_not_found; the other orgs in the run are unaffected. publishedAtis normalised to UTC (Z).addressis{locality, region, country}from the posting's postal address, or null;secondaryLocationsis the list of extra offices.- No throttling or anti-bot layer; responses up to ~3 MB per board.
Output
JOB—jobId,title,url,applyUrl,department,team,employmentType,workplaceType,isRemote,location,address,secondaryLocations,publishedAt,isListed,salaryMin,salaryMax,salaryCurrency,salaryInterval,compensationSummary,offersEquity,compensation,description,descriptionHtml,organization,resultPosition.BOARD_SUMMARY—organization,boardUrl,totalJobsOnBoard,jobsReturned,rowsWithSalary,stoppedReason,filteredOut,departmentsOnBoard,locationsOnBoard.ERROR—invalid_input,organization_not_found,payload_shape_changed,fetch_failed, with detail.
Known limits
- Salary is what the company chose to publish; boards outside pay-
transparency jurisdictions often have none (
rowsWithSalarysays how many). - Filters are substring matches on the board's own words
(
departmentsOnBoardin the summary is the vocabulary). - Unlisted postings are not served by the API and cannot be fetched.