BYTETOOLS

Greenhouse Job Board API

Free 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 API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 21 Aug 2026

What is the Greenhouse Job Board API?

Greenhouse's Job Board API serves any company's public postings as JSON without an API key. Each job returns its title, location, application URL, requisition id, publication and update timestamps, plus whatever custom metadata the employer has configured.

Greenhouse is one of the two applicant tracking systems that dominate technology hiring, and its Job Board API is genuinely public — no key, no partner agreement. The board token is simply the company's identifier in its careers URL, so if a company's job listings live on `job-boards.greenhouse.io/{token}`, you can read the same postings as structured data.

The `metadata` array is what distinguishes it from other ATS feeds. Employers define their own custom fields — career site category, seniority, function, whatever their taxonomy needs — and those come back as typed name/value pairs. That means a well-configured board gives you far richer faceting than the standard fields alone. The `data_compliance` block is also worth noticing: it declares GDPR consent and retention requirements per posting, which matters if you are storing applications rather than just linking to them. Adding `content=true` returns the full job description too, which the default listing omits.

Quick facts

Base URL
https://boards-api.greenhouse.io/v1/boards
Authentication
No API key for the public job board. Greenhouse's Harvest API, covering candidates and hiring data, requires authentication.
Rate limit
No published limit for the board API. Cache per company; boards change daily at most.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Greenhouse 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 Greenhouse job board

GET https://boards-api.greenhouse.io/v1/boards/vercel/jobs

curl
curl 'https://boards-api.greenhouse.io/v1/boards/vercel/jobs'
JavaScript (fetch)
const res = await fetch("https://boards-api.greenhouse.io/v1/boards/vercel/jobs");
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://boards-api.greenhouse.io/v1/boards/vercel/jobs", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "jobs": [
    {
      "absolute_url": "https://job-boards.greenhouse.io/vercel/jobs/6136160004",
      "data_compliance": [
        {
          "type": "gdpr",
          "requires_consent": false,
          "requires_processing_consent": false,
          "requires_retention_consent": false,
          "retention_period": null,
          "demographic_data_consent_applies": true
        }
      ],
      "internal_job_id": 5196261004,
      "location": {
        "name": "Hybrid - London"
      },
      "metadata": [
        {
          "id": 18783104004,
          "name": "Career Site Categories",
          "value": "Sales",
          "value_type": "single_select"
        }
      ],
      "id": 6136160004,
      "updated_at": "2026-08-18T18:06:19-04:00",
      "requisition_id": "1311",
      "title": "Account Executive, Commercial",
      "company_name": "Vercel",
      "first_published": "2026-08-06T12:50:10-04:00",
      "language": "en",
      "application_deadline": null
    },
    {
      "absolute_url": "https://job-boards.greenhouse.io/vercel/jobs/5999792004",
      "data_compliance": [
        {
          "type": "gdpr",
          "requires_consent": false,
          "requires_processing_consent": false,
          "requires_retention_consent": false,
          "retention_period": null,
          "demographic_data_consent_applies": true
        }
      ],
      "internal_job_id": 5156316004,
      "location": {
        "name": "Hybrid - London"
      },
      "metadata": [
        {
          "id": 18783104004,
          "name": "Career Site Categories",
          "v

Parameters

ParameterTypeRequiredDescription
(board token)pathRequiredThe company's board token, taken from its Greenhouse careers URL. vercel
contentqueryOptionalSet true to include the full HTML job description on each posting. true
/departmentspathOptionalThe board's departments with their jobs nested underneath.
/officespathOptionalThe board's offices, likewise with jobs nested.

Response fields

jobsarray
Every currently published role on the board.
jobs[].id / internal_job_idinteger
Public posting id and the internal requisition-level id. A single requisition can have several postings.
jobs[].titlestring
Job title as published.
jobs[].absolute_urlstring
Public posting page, which is also the application entry point.
jobs[].location.namestring
Free-text location string such as `Hybrid - London`. It is not normalised, so parsing it is guesswork.
jobs[].updated_at / first_publishedstring
ISO 8601 timestamps with a numeric offset, typically US Eastern rather than UTC.
jobs[].requisition_idstring
The employer's own requisition reference, useful for reconciling against their internal systems.
jobs[].company_namestring
Company display name, echoed on every posting.
jobs[].metadataarray
Employer-defined custom fields as `name`, `value` and `value_type` triples — the richest faceting source in the response.
jobs[].data_compliancearray
Per-posting GDPR flags covering consent and retention requirements.
jobs[].languagestring
Posting language code.
jobs[].application_deadlinestring
Closing date where the employer has set one; null otherwise.

What you can build with the Greenhouse Job Board API

  • Render a live careers page from the company's own ATS
  • Aggregate roles across a watchlist of employers
  • Facet a job board using employer-defined metadata fields
  • Track how long roles stay open using first_published and updated_at

Common errors and how to fix them

404

The board token is wrong or the board is not public.

Fix: Take the token from the company's Greenhouse careers URL. Private boards are not exposed through this API.

No job descriptions

The default listing omits body content.

Fix: Add `content=true` to include the full HTML description on each posting.

Location parsing is unreliable

`location.name` is free text set by the employer.

Fix: Expect strings like `Hybrid - London` or `Remote (US)`. Use the `/offices` endpoint if you need something structured.

Timestamps compare incorrectly

Offsets are typically US Eastern, not UTC.

Fix: Parse into a real datetime and normalise before sorting across companies.

Greenhouse Job Board API — frequently asked questions

Is the Greenhouse Job Board API free?

Yes, and public with no key. The separate Harvest API, which exposes candidates and hiring data, does require authentication.

Where do I find a company's board token?

In their Greenhouse careers URL — the segment after `job-boards.greenhouse.io/`. That segment is the token this endpoint takes.

How do I get the full job description?

Add `content=true` to the request. The default listing returns metadata only to keep the payload small.

What is in the metadata array?

Custom fields the employer defined on their board — categories, seniority, function and so on — returned as typed name/value pairs. It is the best source of structured facets in the response.

Tools that pair with this API

Alternatives to Greenhouse Job Board API

If Greenhouse 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
HimalayasFree remote job API with no key: nearly 99,000 listings with salary ranges, required timezones, seniority and company profiles. Tested curl example included.No keyNo21 Aug 2026
JobicyFree remote job API with no key: filter by industry, geographic region and job type, with company logos and salary annotations. Tested curl example included.No keyYes21 Aug 2026
All Business & Commerce APIs

Greenhouse 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.