> ## Documentation Index
> Fetch the complete documentation index at: https://clair.im/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Greenhouse Jobs API

> Greenhouse Jobs API: list a public Greenhouse board with department, office, and location filters, then fetch one job. Not an ATS login.

Two endpoints, one subscription. Search reads Greenhouse's public board JSON
(no scrape). Job reads one opening. This is not a Greenhouse login and it
does not submit applications. Most boards omit pay ranges.

See the [product page](https://clair.im/apis/greenhouse).

## Jobs

`GET /v1/search?engine=greenhouse` · **1 request**

`board` is the token in a Greenhouse board URL, such as `stripe`. The
worker fetches the full `content=true` list once, then filters and slices
in process (`q` matches title only).

```sh theme={null}
curl -G https://api.clair.im/v1/search \
  -H "Authorization: Bearer YOUR_KEY" \
  --data-urlencode "engine=greenhouse" \
  --data-urlencode "board=stripe" \
  --data-urlencode "department=Security" \
  --data-urlencode "page=1"
```

| Parameter    | Required | Contract                                  |
| ------------ | -------- | ----------------------------------------- |
| `engine`     | yes      | Must be `greenhouse`.                     |
| `board`      | yes      | Public board token.                       |
| `q`          | no       | Keep jobs whose title contains this text. |
| `department` | no       | Substring match on department name.       |
| `office`     | no       | Substring match on office name.           |
| `location`   | no       | Substring match on location.              |
| `page`       | no       | 1-based page, 25 jobs. Default 1, max 40. |

Do not send `limit` or `cursor`.

Each hit includes `position`, `id`, `title`, `company`, `location`,
`remote`, `departments[]`, `offices[]`, `url`, `first_published`, and
`updated_at`.

## Job

`GET /v1/job?engine=greenhouse` · **1 request**

```sh theme={null}
curl -G https://api.clair.im/v1/job \
  -H "Authorization: Bearer YOUR_KEY" \
  --data-urlencode "engine=greenhouse" \
  --data-urlencode "board=stripe" \
  --data-urlencode "id=8172487"
```

The body is `job`: `title`, `company`, `location`, `url`, `departments[]`,
`offices[]`, `pay_ranges[]` (often empty), and `paragraphs[]`. An unknown
board or id is `not_found`.

Auth, plans, rate limits, and error codes: [Authentication](/docs/authentication).
