Ashby Jobs Scraper: Any Ashby Job Board avatar

Ashby Jobs Scraper: Any Ashby Job Board

Pricing

from $0.80 / 1,000 jobs

Go to Apify Store
Ashby Jobs Scraper: Any Ashby Job Board

Ashby Jobs Scraper: Any Ashby Job Board

Get every open job from any Ashby job board (jobs.ashbyhq.com): title, department, team, locations, country, remote/hybrid/onsite, employment type, salary range when published, posted date, apply link and full description. Paste the board URL or its name. Pay per job plus a small start fee.

Pricing

from $0.80 / 1,000 jobs

Rating

0.0

(0)

Developer

PlainRows

PlainRows

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Get every open job from any Ashby job board (jobs.ashbyhq.com) as clean rows: title, department, team, locations, country, remote / hybrid / onsite, employment type, salary range when the company publishes it, posting date, job and apply link, and the full description as plain text. Paste the job board URL or just the board name (ramp), one company per line, up to 1,000 companies per run.

It reads the public Ashby job board API that careers pages use: no browser, no proxies, no login. One request brings all the jobs of a board with their descriptions and pay ranges, so a board of 800 jobs takes a few seconds. You pay per job returned, plus $0.002 per run start. Companies not found, boards without open jobs and jobs removed by your filters are free.

Greenhouse, Lever, Recruitee, Workable, SmartRecruiters and Workday boards work in the same run, with the same output (see ATS Jobs Scraper for those, Greenhouse Jobs Scraper, Lever Jobs Scraper and Workday Jobs Scraper).

Typical uses

  • Job boards and aggregators: fill a niche board with fresh jobs straight from the startups and AI companies that hire through Ashby.
  • Sales and recruiting intelligence: which target accounts are hiring, for which departments and teams, in which cities and countries.
  • Market and talent research: count openings per team, follow hiring trends, compare published salary ranges across companies.
  • Job seekers and career tools: watch a list of companies for new roles matching your keywords or locations. With Only new jobs on, a scheduled run returns (and bills) only jobs it has never delivered.
  • Automations and AI agents: feed n8n, Make, Zapier, Google Sheets, Airtable or an MCP client with structured JSON.

What you get for each job

FieldDescription
company, ats, boardToken, boardUrlBoard name (e.g. ramp: Ashby's public job data has no separate company name), ashby, and the board URL
jobId, titleAshby posting ID (e.g. 190c265a-ca4f-48b7-b2a4-13412299249d) and job title
department, teamDepartment and team as set by the company (e.g. Sales / Account Manager)
location, locationsMain location and all listed places (e.g. New York, NY (HQ), San Francisco, CA)
countryCodeCountry of the job's main address (e.g. US, IE, GB)
workplaceType, isRemoteremote, hybrid or onsite as set by the company (null when it sets none); isRemote is Ashby's remote flag, also true for remote jobs or jobs listing a remote location
employmentTypeFULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY, INTERN from Ashby's employment type
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryTextPay range when the company shows it on Ashby (e.g. USD 180,000-247,000 per YEAR), with Ashby's pay summary in salaryText (e.g. $180K – $247K • Offers Equity • Offers Commission)
postedAtDate the job was published on Ashby, UTC ISO 8601
jobUrl, applyUrlJob page on jobs.ashbyhq.com and its application form
descriptionTextFull description as readable plain text (descriptionHtml too with includeHtml)
companyInput, observedAtYour input line and when the data was fetched

updatedAt is always null on Ashby: its public job data has no update date. Missing values are always null, never guessed. Jobs are sorted newest first within each company. Unlisted jobs (hidden from the company's own board) are left out.

In our tests on 2026-10-14 (Ramp, Notion and Replit, 20 newest jobs each), department, team, location, country, employment type, posting date and description were filled for every job; workplace type for 54 of 60; salary for 20 of 20 Ramp jobs, 19 of 20 Replit jobs and none of Notion's (it shows no pay range on Ashby).

Input

{
"companies": [
"https://jobs.ashbyhq.com/ramp",
"https://jobs.ashbyhq.com/notion",
"replit"
],
"maxJobsPerCompany": 500,
"titleKeywords": ["engineer"],
"locations": ["New York", "Remote"],
"departments": ["Engineering"],
"remoteOnly": false,
"postedWithinDays": 7
}
  • companies: up to 1,000 per run. Ashby boards as jobs.ashbyhq.com/<name> (a job link from the board works too), the API URL api.ashbyhq.com/posting-api/job-board/<name>, or just the board name (replit): names are looked up on Greenhouse first, then on Lever, Ashby, Recruitee, Lever EU and SmartRecruiters (the first board with open jobs wins; set ats to ashby to look only on Ashby). A company website is also accepted (see below), and so are Greenhouse, Lever, Recruitee, Workable, SmartRecruiters and Workday URLs.
  • maxJobsPerCompany: 1 to 10,000 (default 500), most recent first.
  • Free filters: titleKeywords, excludeTitleKeywords, locations (case and accent insensitive), departments (department or team), remoteOnly, postedWithinDays. Jobs removed by a filter are never billed.
  • includeDescription (default true) and includeHtml (default false) control description fields.
  • onlyNewJobs and monitorName (optional, monitoring): see below.

Companies without a result get one free row with found: false and a reason: COMPANY_NOT_FOUND, NO_OPEN_JOBS, NO_JOB_MATCHED_FILTERS, NO_NEW_JOBS, DUPLICATE_BOARD, SOURCE_UNAVAILABLE (the job board did not answer; retry later) or SOURCE_FORMAT_CHANGED (the board's jobs came without any description: nothing is charged).

Where to find the board name

Open the company's job list. If its address is jobs.ashbyhq.com/ramp, the board name is ramp; a job link (jobs.ashbyhq.com/ramp/<job id>) works as is. If the company shows its Ashby jobs on its own careers site, paste the company website and the Actor looks for the jobs.ashbyhq.com link itself.

Monitor companies: get only new jobs

Turn on Only new jobs ("onlyNewJobs": true) and add an Apify schedule (daily, for example). The first run returns every matching job and remembers their IDs in a key-value store of your own Apify account; each later run returns and bills only jobs it has never delivered. A company with nothing new gets a free row with reason NO_NEW_JOBS.

  • History is kept per job board, whatever the filters: a job is delivered once. Jobs left out by maxJobsPerCompany or your run budget stay new for the next run.
  • Use a different monitorName per monitoring task to keep separate histories, or a new name to start over. The default history (plainrows-jobs-monitor) is shared with ATS Jobs Scraper, Greenhouse Jobs Scraper, Lever Jobs Scraper and Workday Jobs Scraper: a job delivered by one is not delivered again by the others.

Output example

Real row from a local run of this code on 2026-10-14 (input https://jobs.ashbyhq.com/ramp; description shortened here):

{
"companyInput": "https://jobs.ashbyhq.com/ramp",
"found": true,
"company": "ramp",
"ats": "ashby",
"boardToken": "ramp",
"jobId": "190c265a-ca4f-48b7-b2a4-13412299249d",
"title": "Manager, Account Manager | Growth",
"department": "Sales",
"team": "Account Manager",
"location": "New York, NY (HQ)",
"locations": [
"New York, NY (HQ)",
"San Francisco, CA"
],
"countryCode": "US",
"workplaceType": "hybrid",
"isRemote": true,
"employmentType": "FULL_TIME",
"salaryMin": 180000,
"salaryMax": 247000,
"salaryCurrency": "USD",
"salaryPeriod": "YEAR",
"salaryText": "$180K – $247K • Offers Equity • Offers Commission",
"postedAt": "2026-10-13T15:07:59.917Z",
"updatedAt": null,
"jobUrl": "https://jobs.ashbyhq.com/ramp/190c265a-ca4f-48b7-b2a4-13412299249d",
"applyUrl": "https://jobs.ashbyhq.com/ramp/190c265a-ca4f-48b7-b2a4-13412299249d/application",
"boardUrl": "https://jobs.ashbyhq.com/ramp",
"boardDiscoveredFrom": null,
"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 automate how over $200B in annualized spend flows in and out of 70,000+ companies: authorizing payments, f...",
"observedAt": "2026-10-13T22:35:50.279Z",
"schemaVersion": "1.0"
}

Company websites

You can also paste a company website (https://www.example.com). The Actor first looks for a job board named after the domain; if none has open jobs, it reads the homepage and, if needed, one careers page linked from it, and looks for a link to an Ashby board (or another known job board); boardDiscoveredFrom tells you on which page it was found. At most 2 pages per website, without JavaScript, within 20 seconds, respecting robots.txt.

When the careers site is built with JavaScript or embeds Ashby without a link to jobs.ashbyhq.com, nothing is found: the company comes back free as COMPANY_NOT_FOUND, with a note saying the website was read. Paste the board URL or name instead.

Pricing

Pay per job returned plus $0.002 per run start, no subscription, no proxy costs. See the Pricing tab for current prices: one event per job found, cheaper on higher Apify plans. Salary, locations, team, dates and the full description are included in that price (no "details" add-on).

Companies not found, boards without open jobs, duplicate boards, jobs removed by your filters and input mistakes cost nothing beyond the start fee. The run never spends more than the maximum cost you set; when the budget runs out, the most recent jobs are delivered first.

Free Apify plan: each run returns up to 20 jobs for up to 3 companies, so you can check the output. A paid Apify plan removes these limits.

Use it from code, automations or AI agents

API (one call, results returned directly):

curl -X POST "https://api.apify.com/v2/acts/plainrows~ashby-jobs-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companies": ["ramp", "notion"], "ats": "ashby", "titleKeywords": ["engineer"], "maxJobsPerCompany": 100}'

n8n, Make, Zapier: use the Apify integration, pick plainrows/ashby-jobs-scraper, schedule it daily and push new jobs to Google Sheets, Airtable, Slack or your job board's database (jobId + boardToken is a stable key for de-duplication).

AI agents (MCP): add https://mcp.apify.com?tools=plainrows/ashby-jobs-scraper to Claude, Cursor or any MCP client. The agent gets a typed tool and pays per result.

What this is not

  • Not a search across all companies: you choose the companies. It does not crawl LinkedIn, Indeed or Google Jobs.
  • No company display name: Ashby's public job data only has the board name, returned in company as is.
  • No recruiter or hiring manager data, no application questions. E-mail addresses are removed from descriptions. Descriptions are otherwise the company's own text.
  • Not affiliated with Ashby.

Run summary

Each run stores a summary in the key-value store (OUTPUT): companies with results, without new jobs (companiesWithoutNewJobs, jobsAlreadySeen, monitoring only), not found, without open jobs or unavailable, boards per ATS, open jobs seen, jobs removed by filters, jobs over your per-company limit or cut by the budget, duplicates and invalid inputs, and anything skipped because of the free-plan or budget limit.

FAQ

How do I scrape Ashby jobs? Paste the job board URL (https://jobs.ashbyhq.com/ramp) or just the board name (ramp) in companies and run. One row per job with department, team, locations, country, workplace type, salary range when published, posting date, apply link and full description, newest first.

Does it return salaries? Yes, when the company shows a pay range on Ashby: salaryMin, salaryMax, salaryCurrency, salaryPeriod and Ashby's pay summary in salaryText (equity, commission). Otherwise these fields are null; a range written only in the text stays in descriptionText.

How many jobs per board? All open jobs of the board, from one request: a board of 805 jobs (14 MB) was downloaded in under half a second in our tests, and the whole local run took about 4 seconds. maxJobsPerCompany (default 500) caps what you get and pay for.

Can I keep only remote, recent or engineering jobs? Yes: remoteOnly, postedWithinDays, titleKeywords, locations and departments filter for free; removed jobs are not billed.

Can I search jobs across all companies? No: you choose the companies. To search jobs by title and city across job boards, use Google Jobs Scraper.

More PlainRows tools

Same pay-per-result pricing, same clean JSON, built to chain together in n8n, Make, Zapier or AI agents.

Support

Missing a field, an ATS or found a bug? Open an issue on this page. Issues are read and answered.