Greenhouse Jobs
List public employer jobs and filter by title or location.
GET/api/v1/greenhouse/jobs
Costs 1 credit per request; failed requests are refunded. Authentication, the search_metadata envelope and error codes are the same as for every endpoint (see the API reference). Try it in the playground.
Parameters
Request parameters
| Parameter | Type | Description |
|---|---|---|
boardrequired | string | Employer Greenhouse board name, such as cloudflare. |
q | string | Case-insensitive phrase in the job title.Up to 500 characters. |
location | string | Case-insensitive phrase in the job location.Up to 500 characters. |
page | integer | One-based results page.Default: 1.Range: 1 to 1000. |
limit | integer | Maximum jobs per page, from 1 to 100.Default: 20.Range: 1 to 100. |
include_content | boolean | Include each job's description, pay ranges and application questions. Defaults to false.Default: false. |
Response
A JSON object with search_metadata (request id, credits used and remaining) and the result groups the page returns. Groups and fields depend on the content of each page, so treat every field as optional.
Examples
cURL
curl "https://serpfast.com/api/v1/greenhouse/jobs?board=cloudflare&limit=2" \
-H "Authorization: Bearer $SERPFAST_KEY"Node.js 18+
const params = new URLSearchParams({
"board": "cloudflare",
"limit": 2
});
const res = await fetch(`https://serpfast.com/api/v1/greenhouse/jobs?${params}`, {
headers: { Authorization: `Bearer ${process.env.SERPFAST_KEY}` },
});
const data = await res.json();
console.log(data);Python
import os, requests
params = {
"board": "cloudflare",
"limit": 2
}
res = requests.get(
"https://serpfast.com/api/v1/greenhouse/jobs",
params=params,
headers={"Authorization": f"Bearer {os.environ['SERPFAST_KEY']}"},
timeout=120,
)
print(res.json())