BYTETOOLS

Ashby Job Board API

Free ATS job board API with no key: Ashby-hosted roles with structured secondary locations, departments, teams and employment type. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 21 Aug 2026

What is the Ashby Job Board API?

Ashby's posting API returns a company's public job board as JSON with no key. Each role gives its title, department, team, employment type and primary location, plus a structured list of secondary locations with proper postal address components.

Ashby is the newer entrant among applicant tracking systems, and it shows in the data model. Where older boards hand you a single free-text location string, Ashby returns `secondaryLocations` as an array of objects, each with a `postalAddress` containing separate country, region and locality fields — actual structured geography rather than a string you have to guess at.

That matters most for the increasingly common role advertised as "Remote - European Union" with a specific list of countries the company can actually employ in. The primary `location` gives you the headline, and `secondaryLocations` gives you the real answer, which is exactly the distinction a job seeker cares about. Departments and teams also arrive as separate fields rather than one concatenated string, so faceting works without parsing. Some address components come back as empty strings rather than null, so test for emptiness rather than existence.

Quick facts

Base URL
https://api.ashbyhq.com/posting-api/job-board
Authentication
No API key for the public job board. Ashby's full hiring API, covering candidates and interviews, requires an API key.
Rate limit
No published limit for the public board. Cache per company.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Ashby Job Board API

Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. Fetch a company's Ashby job board

GET https://api.ashbyhq.com/posting-api/job-board/ashby

curl
curl 'https://api.ashbyhq.com/posting-api/job-board/ashby'
JavaScript (fetch)
const res = await fetch("https://api.ashbyhq.com/posting-api/job-board/ashby");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.ashbyhq.com/posting-api/job-board/ashby", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "jobs": [
    {
      "id": "7458d4e9-da2e-47bd-98cb-adfda43d42b2",
      "title": "Engineering Manager - EU",
      "department": "Engineering",
      "team": "EMEA Engineering",
      "employmentType": "FullTime",
      "location": "Remote - European Union",
      "secondaryLocations": [
        {
          "location": "Spain",
          "address": {
            "postalAddress": {
              "addressRegion": "Spain",
              "addressCountry": "Spain",
              "addressLocality": "Spain"
            }
          }
        },
        {
          "location": "Italy",
          "address": {
            "postalAddress": {
              "addressRegion": "",
              "addressCountry": "Italy",
              "addressLocality": ""
            }
          }
        },
        {
          "location": "Germany",
          "address": {
            "postalAddress": {
              "addressCountry": "Germany",
              "addressLocality": ""
            }
          }
        },
        {
          "location": "Switzerland",
          "address": {
            "postalAddress": {
              "addressRegion": "",
              "addressCountry": "Switzerland",
              "addressLocality": ""
            }
          }
        },
        {
          "location": "Denmark",
          "address": {
            "postalAddress": {
              "addressRegion": "",
              "addressCountry": "Denmark",
              "addressLocality": ""
            }
          }
        },
        {
          "location": "Norway",
          "address": {
            "postalAddres

Parameters

ParameterTypeRequiredDescription
(job board name)pathRequiredThe company's Ashby board name, taken from its careers URL. ashby
includeCompensationqueryOptionalSet true to include compensation ranges where the employer publishes them. true

Response fields

jobsarray
Published roles on the board.
jobs[].idstring
Posting UUID.
jobs[].titlestring
Job title as published.
jobs[].department / teamstring
Organisational placement as two separate fields — `Engineering` and `EMEA Engineering` in the captured example.
jobs[].employmentTypestring
`FullTime`, `PartTime`, `Intern`, `Contract` or `Temporary`.
jobs[].locationstring
Primary location as a display string, for example `Remote - European Union`.
jobs[].secondaryLocationsarray
Additional eligible locations, each with a `location` label and an `address.postalAddress` holding separate `addressCountry`, `addressRegion` and `addressLocality` fields.
jobs[].jobUrl / applyUrlstring
Public posting page and the direct application link.
jobs[].isRemoteboolean
Whether the role is remote, where the employer has flagged it.
jobs[].publishedAtstring
ISO 8601 publication timestamp.
jobs[].descriptionHtml / descriptionPlainstring
Full job description in both markup and plain text.

What you can build with the Ashby Job Board API

  • Build a careers page that shows every country a remote role covers
  • Filter roles by employment type and department without string parsing
  • Aggregate postings across companies using Ashby
  • Map hiring locations from structured address components

Common errors and how to fix them

404

The board name is wrong or the board is not published.

Fix: Take it from the company's Ashby careers URL. Unpublished boards are not exposed.

Empty strings in address fields

Ashby serialises unset components as `""` rather than null.

Fix: Test for empty strings as well as null before rendering an address line.

No compensation data

Ranges are opt-in per employer and off by default.

Fix: Add `includeCompensation=true`, and accept that many employers publish nothing.

Location contradicts secondaryLocations

The primary location is a marketing label; the secondary list is the operational reality.

Fix: Show the primary string as the headline but use `secondaryLocations` for any eligibility filtering.

Ashby Job Board API — frequently asked questions

Is the Ashby job board API free?

Yes, public with no key. Ashby's full hiring API, which covers candidates and interviews, requires an API key and is a separate product.

How do I find a company's Ashby board name?

It is the segment after `jobs.ashbyhq.com/` in their careers URL, and that segment is what this endpoint takes.

What are secondaryLocations for?

They list every additional place a role can be filled, each with structured country, region and locality fields. For remote roles scoped to particular countries, this is the field that actually answers the question.

Can I get salary ranges?

Sometimes. Pass `includeCompensation=true` and you will get ranges for employers who publish them, which many do not.

Tools that pair with this API

Alternatives to Ashby Job Board API

If Ashby Job Board does not fit, these business & commerce apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
Arbeitnow Job BoardFree job board API with no key: developer and tech jobs across Europe with company, location, remote flag, salary tags and full descriptions. Tested example.No keyYes21 Aug 2026
RemotiveFree remote jobs API with no key: curated remote positions across software, design, marketing and support with salary, category and company data. Tested example.No keyYes19 Aug 2026
The Muse JobsFree job search API with no key for basic use: listings from vetted employers with company profiles, experience level and location filters. Tested curl example.No keyYes19 Aug 2026
OpenHolidaysFree European holidays API with no key: public and school holidays for 25+ countries including regional variations, in multiple languages. Tested example.No keyNo19 Aug 2026
Clearbit AutocompleteFree company autocomplete API with no key: type a company name and get matching companies with domains and logo URLs. CORS enabled. Tested curl example.No keyYes19 Aug 2026
Greenhouse Job BoardFree ATS job board API with no key: any company's open Greenhouse roles as JSON, with locations, requisition ids, custom metadata and GDPR flags. Tested example included.No keyYes21 Aug 2026
All Business & Commerce APIs

Ashby Job Board is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.