How to integrate Ashby jobs
Fetch Ashby job postings for free from their public job board endpoints. Just grab the board URLs from our catalog and you're ready to go. We're refreshing the catalog daily.
Company job feeds
3,529
Jobs
51,432
New feeds (30 days)
+231
Pull verified jobs page names and feed_url values from the catalog instead of guessing {account} slugs.
HTTP GET each board's feed URL and parse the jobs array. Each job includes title, location, department, publishedAt, jobUrl, applyUrl, and description fields in one response.
Refresh on your cadence when new boards appear or feeds retire from the catalog.
New to the catalog workflow? Start with Getting started.
Fetch jobs from the public API
The {account} segment is the organization's Ashby jobs page name — the final path on jobs.ashbyhq.com, not always the company brand name.
https://api.ashbyhq.com/posting-api/job-board/{account}?includeCompensation={true|false}curl "https://api.ashbyhq.com/posting-api/job-board/{account}?includeCompensation=false"The response includes apiVersion and a jobs array. Each job carries title, location, department, team, workplaceType, publishedAt, URLs, and description fields. Pass includeCompensation=true to add a root-level compensation object with tiers and salary summaries — it changes the response shape.
{
"apiVersion": "1",
"jobs": [
{
"title": "Product Manager",
"location": "Houston, TX",
"secondaryLocations": [
{
"location": "San Francisco",
"address": {
"addressLocality": "San Francisco",
"addressRegion": "California",
"addressCountry": "USA"
}
}
],
"department": "Product",
"team": "Growth",
"isListed": true,
"isRemote": true,
"workplaceType": "Remote",
"descriptionHtml": "<p>Join our team</p>",
"descriptionPlain": "Join our team",
"publishedAt": "2021-04-30T16:21:55.393+00:00",
"employmentType": "FullTime",
"address": {
"postalAddress": {
"addressLocality": "Houston",
"addressRegion": "Texas",
"addressCountry": "USA"
}
},
"jobUrl": "https://jobs.ashbyhq.com/example_job",
"applyUrl": "https://jobs.ashbyhq.com/example/apply"
}
],
"compensation": {
"compensationTierSummary": "$81K – $87K • 0.5% – 1.75% • Offers Bonus",
"scrapeableCompensationSalarySummary": "$81K - $87K",
"compensationTiers": [
{
"id": "cedc8928-e850-47e8-a510-e412f61d068a",
"tierSummary": "Estimated based on experience $81K – $87K • 0.5% – 1.75% • Offers Bonus",
"title": "Zone A",
"additionalInformation": null,
"components": [
{
"id": "5d131ad4-6b3a-4f01-938e-511c60bd0398",
"summary": "0.5% – 1.75%",
"compensationType": "EquityPercentage",
"interval": "NONE",
"currencyCode": null,
"minValue": 0.5,
"maxValue": 1.75
},
{
"id": "5c8de1b0-52d6-41d7-8ae3-671ee74c745a",
"summary": "Estimated based on experience $81K – $87K",
"compensationType": "Salary",
"interval": "1 YEAR",
"currencyCode": "USD",
"minValue": 81000,
"maxValue": 87000
},
{
"id": "5f881813-f164-4b91-b652-fd713627e810",
"summary": "Offers Bonus",
"compensationType": "Bonus",
"interval": "1 YEAR",
"currencyCode": "USD",
"minValue": null,
"maxValue": null
}
]
}
],
"summaryComponents": [
{
"compensationType": "EquityPercentage",
"interval": "NONE",
"currencyCode": null,
"minValue": 0.5,
"maxValue": 1.75
},
{
"compensationType": "Salary",
"interval": "1 YEAR",
"currencyCode": "USD",
"minValue": 81000,
"maxValue": 87000
},
{
"compensationType": "Bonus",
"interval": "1 YEAR",
"currencyCode": "USD",
"minValue": null,
"maxValue": null
}
]
}
}Jobs with isListed=false may appear in the API but should not be shown on public job boards. One public endpoint exists per company, so scaling to many boards means many parallel fetches.
API reference: Ashby Public Job Posting API.
Pricing
Get the full Ashby feed catalog
Get access to 3,529 validated job feeds with 51,432 jobs on Ashby and other ATS platforms in our catalog via API or CSV export.