How to Get Greenhouse Job Postings via API (No Harvest API Key)
By the RoleDawn team · Published · Updated
Send one GET request to https://roledawn.com/api/v1/jobs?ats=greenhouse&company=<board slug>. You get every open job on that company's public Greenhouse job board as JSON (title, location, department, remote flag, job URL and posting date), with filters for remote jobs, title and location, and up to 500 jobs per page. No Harvest API key, no Greenhouse account and no sign-up: the public demo allows 50 requests per IP per day; for production volume, use the ATS Jobs API on RapidAPI.
- No Harvest key. Harvest is for a company's own Greenhouse account; this reads the public job board any candidate can see.
- Filters and paging. Remote only, title text, location text, up to 500 jobs per page with next_offset.
- A clean remote flag. remote is true or false for every job, from the location text or the ATS.
- Same fields for Lever and Ashby. Switch ats=lever or ats=ashby and your parser does not change.
Which Greenhouse API do I need?
| Who can use it | What you get | |
|---|---|---|
| Harvest API | Admins of that company's Greenhouse account, with an API key | Jobs, openings, candidates and more for your own company only |
Job Board API boards-api.greenhouse.io | Anyone, no key | The whole public board in one response; departments only with content=true, which also returns the full HTML of every job; no remote flag (some companies add their own custom field). Filtering and paging are up to you |
| RoleDawn Jobs API | Anyone, no key | Any company's public board with remote/title/location filters, paging, a remote flag on every job and the same fields as Lever and Ashby |
To track jobs at other companies (lead lists, job boards, market research), you do not need Harvest. Use a public board endpoint.
Step 1: find the company's board slug
Open the company's careers page and click a job. On Greenhouse-hosted boards the slug is in the address: job-boards.greenhouse.io/airbnb or boards.greenhouse.io/airbnb. Companies that embed Greenhouse on their own site use links with gh_jid=; the slug then appears in the "Apply" link.
Step 2: request the jobs
Engineering jobs at Airbnb (q matches the title):
curl "https://roledawn.com/api/v1/jobs?ats=greenhouse&company=airbnb&q=engineer&limit=2"
Real response, captured 2026-10-07:
{
"ats": "greenhouse",
"company": "airbnb",
"company_name": "Airbnb",
"board_url": "https://job-boards.greenhouse.io/airbnb",
"fetched_at": "2026-10-07T12:40:36.145Z",
"total": 49,
"count": 2,
"limit": 2,
"offset": 0,
"next_offset": 2,
"jobs": [
{
"id": "8259526",
"title": "Staff Software Engineer, Payments (AirCover Insurance Platform)",
"company": "airbnb",
"company_name": "Airbnb",
"ats": "greenhouse",
"location": "Remote - USA",
"department": "Software Engineering",
"remote": true,
"url": "https://careers.airbnb.com/positions/8259526?gh_jid=8259526",
"posted_at": "2026-10-06T19:59:10.000Z"
},
{
"id": "8259504",
"title": "Engineering Manager, Payments (AirCover Insurance Platform)",
"company": "airbnb",
"company_name": "Airbnb",
"ats": "greenhouse",
"location": "Remote - USA",
"department": "Software Engineering",
"remote": true,
"url": "https://careers.airbnb.com/positions/8259504?gh_jid=8259504",
"posted_at": "2026-10-06T19:57:58.000Z"
}
]
}
How do I get only remote jobs?
Add remote=true. GitLab's remote jobs, one per page:
curl "https://roledawn.com/api/v1/jobs?ats=greenhouse&company=gitlab&remote=true&limit=1"
Real response, captured 2026-10-07:
{
"ats": "greenhouse",
"company": "gitlab",
"company_name": "GitLab",
"board_url": "https://job-boards.greenhouse.io/gitlab",
"fetched_at": "2026-10-07T12:41:37.085Z",
"total": 186,
"count": 1,
"limit": 1,
"offset": 0,
"next_offset": 1,
"jobs": [
{
"id": "8860248002",
"title": "Regional Sales Director - France",
"company": "gitlab",
"company_name": "GitLab",
"ats": "greenhouse",
"location": "Remote, France",
"department": "EMEA - Enterprise",
"remote": true,
"url": "https://job-boards.greenhouse.io/gitlab/jobs/8860248002",
"posted_at": "2026-10-07T09:37:57.000Z"
}
]
}
Use location=London for text in the location, or remote=false for on-site and hybrid jobs.
How do I get every job on a large board?
Ask for limit=500 and repeat the request with offset set to the next_offset of the previous response until next_offset is null. total tells you up front how many jobs match. Jobs are sorted newest first, and paging runs on the cached board, so walking a big board stays fast.
curl "https://roledawn.com/api/v1/jobs?ats=greenhouse&company=airbnb&limit=500"
curl "https://roledawn.com/api/v1/jobs?ats=greenhouse&company=airbnb&limit=500&offset=500"
What if the slug is wrong?
You get a JSON error with a stable code, not an empty list:
curl "https://roledawn.com/api/v1/jobs?ats=greenhouse&company=no-such-board-123"
Real response (HTTP 404), captured 2026-10-07:
{
"error": {
"code": "company_not_found",
"message": "No public greenhouse job board found for \"no-such-board-123\". Check the slug in the company's careers-page URL.",
"param": "company",
"docs": "https://roledawn.com/api#errors"
}
}
Limits
- Each board is read live and cached at the edge for up to 15 minutes;
fetched_atsays when it was read. - Direct calls to roledawn.com are a free demo: 50 requests per IP per day across all RoleDawn APIs (reset at 00:00 UTC) and 60 per minute. The
X-RateLimit-Daily-Remainingheader shows what is left. - Need more calls or an API key? The ATS Jobs API on RapidAPI has the same endpoints and fields, with a free plan, paid monthly plans and a usage dashboard.
- Public data only: the API reads each host's robots.txt first and follows it, and identifies itself as RoleDawnBot. No logins.
All parameters, fields and error codes: Jobs API reference · OpenAPI spec.
FAQ
Do I need a Greenhouse Harvest API key?
No. Harvest is for a company's own Greenhouse account. RoleDawn reads the public job board that the company publishes for candidates, so no key and no Greenhouse login are needed.
Can I get jobs from any company that uses Greenhouse?
Yes, any company with a public Greenhouse job board. You choose the company; the board is read live, so there is no waiting for a database to add it.
Does the response include job descriptions?
No. Each job has its title, location, department, remote flag, posting date and the public job URL, where the full description is.
How fresh are the jobs?
Boards are read live and cached for up to 15 minutes. fetched_at gives the time of the live read.
Is it free?
Direct calls are a free demo: 50 requests per IP per day and 60 per minute, no key. For production volume, the ATS Jobs API on RapidAPI has a free plan and paid monthly plans.
Does it work for Lever and Ashby too?
Yes. Use ats=lever with the slug from jobs.lever.co/<slug>, or ats=ashby with the slug from jobs.ashbyhq.com/<slug>. The fields are the same for all three.
Related: Jobs API reference · Lever jobs API · Ashby jobs API · ATS Jobs API on RapidAPI · Companies that just started hiring a new team. RoleDawn is not affiliated with Greenhouse.