Ashby Job Board API | Jobs, Companies & Salary Data avatar

Ashby Job Board API | Jobs, Companies & Salary Data

Pricing

from $0.40 / 1,000 job records

Go to Apify Store
Ashby Job Board API | Jobs, Companies & Salary Data

Ashby Job Board API | Jobs, Companies & Salary Data

Ashby Job Board API access without keys: live jobs from any Ashby career site with the employer's own salary ranges, company discovery, and new-postings feeds. Titles, locations, departments, compensation, and Markdown, HTML, or text descriptions. Pay per delivered row, no start fee.

Pricing

from $0.40 / 1,000 job records

Rating

0.0

(0)

Developer

John

John

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 hours ago

Last modified

Share

Ashby Job Board API

Scrape Ashby jobs from any Ashby job board through the public Ashby API, with no API key and no login. Give it company names, board slugs, or jobs.ashbyhq.com URLs and get back structured job records with titles, locations, departments, employment types, timestamps, full descriptions, and the employer's own published salary ranges. Or give it nothing and let it discover companies from its bundled directory of 2,700+ verified Ashby job boards.

Ashby is the ATS behind the careers pages of many of the fastest-growing companies, including OpenAI, Ramp, Notion, Linear, and Cerebras. This actor reads the same public API that powers every hosted Ashby job board, live at run time, so every row reflects what the employer's board says right now, not what an index remembered from last week. If you have been searching for an Ashby jobs API, an Ashby job board scraper, or a way to pull AshbyHQ jobs into your own pipeline, this is the maintained version of that tool.

What you get per job

Field groupFields
Identityid, title, companyName, boardToken, url, applyUrl
Structuredepartment, team, departments, employmentType, workplaceType
Locationslocation, secondaryLocations, locationsDerived, address, isRemote
TimestampsdatePublished (the employer's own publish stamp)
CompensationcompensationSummary, salaryRaw (structured pay data, verbatim), salaryDerived plus flat salaryMin, salaryMax, salaryCurrency, salaryPeriod columns, salaryTiers, offersEquity
ContentdescriptionMarkdown, descriptionHtml, descriptionText
Company add-oncompanyWebsite, companyLogo, remoteEligibility, applicationDeadline, directApply
Provenancesource, sourceType, sourceUrl, scrapedAt

Ashby salary data employers actually publish

Ashby job boards carry structured compensation: salary ranges with currency and pay period, equity flags, and human-readable summaries like "$211.4K - $290.6K". This actor passes the raw structure through as salaryRaw, normalizes it into salaryDerived, and flattens it into ready-to-export salaryMin, salaryMax, salaryCurrency, and salaryPeriod columns. When an employer does not display pay, a deterministic parser still checks the posting text for a published range. No model calls, no guessing: the Ashby salary fields come from what the employer wrote.

One actor, three ways to read a board

  1. Full job records (default): every open job on the Ashby job boards you name, with descriptions in the formats you pick and salary data on every row that has it.
  2. Job URLs only: the cheapest way to index everything: id, title, company, link, employment type, and the publish date, without descriptions.
  3. Company discovery: one row per company that hires through Ashby, live-verified with a current open-jobs count. The bundled directory covers 2,700+ boards found in public web archives and re-verified at run time.

Leave the company list empty and the actor sweeps the directory for you, capped by maxCompanies and maxJobs so an exploratory run stays small.

Company identity and remote eligibility

Turn on the company-data add-on and each job row is enriched from its own public job page: the hiring company's real name, website, and logo, the countries where remote applicants may live, the application deadline when the employer sets one, and whether the posting accepts direct applications. Remote-eligibility countries are the employer's own declaration, not a guess, which makes this the clean way to build location-aware remote job feeds from Ashby boards.

Find companies that use Ashby

Set outputMode to companiesOnly and the actor becomes an Ashby customers directory: one row per company with its board slug, board URL, and a live count of open roles. Filter it with discoveryQuery, or pass your own prospect list to check specific companies. Nobody publishes an official list of companies that use Ashby; this mode builds you one on demand.

Check whether a company has an Ashby job board

Type a company name the way you know it. The actor matches names to board slugs automatically ("Black Semiconductor" finds blacksemiconductor), and when a board does not exist it returns a clear in-band error row with the closest known slugs as did-you-mean suggestions. Point it at a list of prospects and it tells you exactly who hires through Ashby and how many roles they have open.

Track new Ashby job postings without state

Every Ashby job carries the employer's own publish timestamp. Set publishedAfter to 25h on a daily schedule and each run returns only what appeared since yesterday. There is no seen-list or delta store to maintain between runs, because the timestamp comes from the source.

Pay for exactly what you receive

Billing is per delivered row, with no start fee and no minimum spend. Filters (title, department, location, employment type, remote, dates) run before billing, so filtered jobs cost nothing. The base job record is one event, salary data included; Markdown, HTML, or plain-text descriptions, the company and remote-eligibility enrichment, and the whole-run report are optional add-ons, each billed only on the rows that actually carry them. Turn everything off and a job row costs a fraction of a cent.

Input parameters

ParameterTypeDefaultWhat it does
companiesarray["cerebras"]Company names, board slugs, or any board, embed, or single-job URL, mixed freely
startUrlsarray[]Same values in URL-list form; merged with companies
outputModeselectjobsjobs, urlsOnly, or companiesOnly
discoveryQuerystring""Text match over the company directory for discovery and sweeps
verifyCompaniesbooleantrueLive-probe each discovered company before returning it
titleKeywordsarray[]Keep jobs whose title contains any of these
departmentsarray[]Keep jobs in matching departments or teams
locationKeywordsarray[]Keep jobs in matching locations or addresses
employmentTypesarray[]Keep only these employment types (FullTime, PartTime, Intern, Contract, Temporary)
remoteOnlybooleanfalseKeep only jobs the board marks as remote
publishedAfterstring""New postings: 24h, 7d, 2w, or an ISO date
includeDescriptionMarkdownbooleantrueAdd the description as Markdown (paid add-on)
includeDescriptionHtmlbooleanfalseAdd the original HTML (paid add-on)
includeDescriptionTextbooleanfalseAdd the board's plain text (paid add-on)
includeCompanyDatabooleanfalseAdd company website, logo, remote-eligibility countries, deadline, and direct-apply from the job page (paid add-on)
reportselectnoneWrite a Markdown or HTML run report (paid add-on)
maxCompaniesinteger25Cap on companies in sweeps and discovery
maxJobsPerCompanyinteger0Per-board cap, 0 = all
maxJobsinteger100Whole-run cap, the main cost control
maxConcurrencyinteger5Parallel discovery probes

Example output

{
"resultType": "job",
"id": "b5f37f60-04b2-4b1c-8cf1-d1cbbf3f1b25",
"title": "Security Engineer, Cloud",
"companyName": "Ramp",
"boardToken": "ramp",
"url": "https://jobs.ashbyhq.com/ramp/b5f37f60-04b2-4b1c-8cf1-d1cbbf3f1b25",
"applyUrl": "https://jobs.ashbyhq.com/ramp/b5f37f60-04b2-4b1c-8cf1-d1cbbf3f1b25/application",
"department": "Engineering",
"location": "New York",
"isRemote": true,
"workplaceType": "Hybrid",
"employmentType": "FullTime",
"datePublished": "2026-07-11T14:02:11.000+00:00",
"compensationSummary": "$211.4K - $290.6K",
"salaryDerived": { "min": 211400, "max": 290600, "currency": "USD", "period": "year", "source": "native" },
"salaryMin": 211400,
"salaryMax": 290600,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"descriptionMarkdown": "# About Ramp\n\nRamp is building the smart infrastructure...",
"source": "ashby",
"scrapedAt": "2026-08-26T16:00:00Z"
}

Use cases

  • Job boards and aggregators: backfill and refresh listings straight from the source, not from a third-party index.
  • Recruiters and sourcers: pull every open role at target companies, filtered by title, department, location, or employment type.
  • Remote-work feeds: set remoteOnly and publishedAfter and you have a daily Ashby remote jobs pipeline.
  • Compensation research: Ashby employers publish structured pay ranges; collect Ashby salary data at scale for benchmarking.
  • Sales and GTM teams: hiring is a buying signal. Discover companies that use Ashby in your niche and watch where headcount is going.
  • AI agents: structured JSON, Markdown descriptions, stable field names, and MCP support make this a clean tool for agent pipelines.

Getting started

  1. Add company names, slugs, or board URLs to the companies field.
  2. Pick the description formats you want (Markdown is on by default).
  3. Run it. Rows land in the dataset; a per-board summary lands in the key-value store.

View on Apify Store

For scheduled monitoring, create a daily schedule with publishedAfter set to 25h and the actor becomes a new-postings feed for the boards you care about.

Integrations

  • Apify API and clients: run the actor and read the dataset from Python or JavaScript with the Apify API, or export results as JSON, CSV, or Excel straight from the console.
  • Schedules and monitoring: pair a daily schedule with publishedAfter for a hands-off new-roles feed.
  • MCP: add the actor to any MCP client through the hosted server (section below).
  • Automation platforms: connect through Apify's integrations for n8n, Make, Zapier, webhooks, and Google Sheets.
  • Crypto-native agents: pay per run over the x402 protocol (section below).

Part of a family of job-data APIs on this account:

🔌 Ashby MCP: use this API from Claude and AI agents

Looking for an Ashby MCP server that reads job boards instead of managing them? Add this actor as a tool in Claude Code (free trial), Claude Cowork (free trial), or any MCP client, through the hosted Apify MCP server:

https://mcp.apify.com/?tools=actors,docs,johnvc/ashby-job-board-scraper

Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp

💸 Pay per run with crypto (x402)

The Ashby Job Board API supports agentic payments via the x402 protocol. AI agents and MCP clients can pay for runs in USDC (on Base) with no Apify account or API token needed: point your agent at the Apify MCP server and it can discover, pay for, and run this actor autonomously. Read the Apify x402 announcement for details.

Ashby job board API pricing

Pay per event, per delivered row. The base job record covers every structured field, salary data included. Add-ons bill only on rows that carry them: description formats, the company and remote-eligibility enrichment, and the whole-run report. URL index rows and discovered companies have their own low per-row events. No start fee, no monthly rental, no minimum results per run, and filtered rows are never charged. Current prices are on the store page's pricing card.

FAQ

Is this an API or a web scraper?

Both, honestly. Under the hood it reads the same public endpoint a scraper would. What you get is an API: structured JSON on demand, filters, stable field names, and no HTML unless you ask for it. If you have been maintaining your own Ashby scraper, this is the version where someone else maintains the parser.

Can I use this from Claude or another MCP client?

Yes. Add the hosted MCP server URL from the section above and the actor shows up as a callable tool in Claude Code (free trial), Claude Cowork (free trial), or any MCP client. Agents can discover it, run it, and read the dataset without any glue code.

How do I check if a company has an Ashby job board?

Put the company's name in the companies field. The actor tries the name's slug spellings against the live API, and in companiesOnly mode it returns one row per company with its board URL and current job count, or a clear not-found error with did-you-mean suggestions.

Is there a page that lists all Ashby job boards?

Not from Ashby itself, which is exactly why this actor exists. Set outputMode to companiesOnly and it sweeps its bundled directory of verified boards, capped by maxCompanies. Raise the caps to go wider.

What is jobs.ashbyhq.com?

It is the domain where Ashby hosts its customers' public job boards: every company on Ashby gets a careers page at jobs.ashbyhq.com/companyname. Paste any of those URLs into this actor, board or single job, and it returns the structured data behind the page.

What is api.ashbyhq.com?

It is the public, read-only job posting API that powers every hosted Ashby job board. This actor reads it directly, which is why results are live rather than indexed.

What is the difference between Ashby and Greenhouse job boards?

They are competing applicant tracking systems with similar public job feeds. Ashby boards live at jobs.ashbyhq.com and publish structured salary data far more often; Greenhouse boards live at boards.greenhouse.io and carry an extra last-updated timestamp. This account maintains an actor for each: this one for Ashby, and the Greenhouse Job Board API for Greenhouse, with matching output schemas so you can merge both into one dataset.

Do I need an Ashby API key?

No. Ashby's authenticated APIs are for employers. This actor uses only the public job posting layer, so there is nothing to sign up for and no key to manage.

How do I get salary data for Ashby jobs?

It is on the base job row. Employers that display compensation publish structured ranges; those arrive as salaryRaw (verbatim) and salaryDerived (normalized min, max, currency, period, with source set to native). For employers that do not display pay, the actor still parses the posting text for a published range.

How do I get only new job postings?

Set publishedAfter to a window like 24h, or an ISO date. The actor uses the employer's own publish timestamps, so there is no state to manage between runs.

How do I find companies that use Ashby?

Set outputMode to companiesOnly. You get one row per company with its board slug, a live open-jobs count, and the board URL. Add a discoveryQuery to narrow by name, or pass your own prospect list to check specific companies.

Is the job description included by default?

Yes, as Markdown, which reads well in AI pipelines and converts cleanly to anything else. HTML and plain text are separate toggles. Each format is a per-row add-on charge, so you only pay for what you ship.

Why did a board return an error row?

Error rows carry a stable errorCode: board_not_found means the slug does not exist on the public API (check the didYouMean suggestions), job_not_found means a single-job URL pointed at a closed posting, http_error means the source answered abnormally. Errors are in-band rows, so your pipeline sees them without reading logs.

Ready-to-run examples that show this API solving a specific problem. Each opens its own setup so you can run it on your account in one click.

Agent skills

Install ready-made Claude skills that drive this API:

Install with npx skills add johnisanerd/claude-skill-ashby-jobs-scraper or add the folder to your agent's skills directory.

🌐 About Alpha OSINT

This Actor is part of Alpha OSINT, toolset of financial and operations data sources and APIs. For support or requests for this actor, please start a ticket directly on our support page.

Last Updated: 2026.08.27