# Search jobs

Search one page of Indeed job listings by text, location, radius, age, job type, and sort order. Vary the query and filters to cover more jobs.

- Platform: Indeed
- Request: `GET https://api.toolzerhub.com/v1/indeed/jobs/search`
- Auth: `x-api-key` header
- Cost: 1 credit per successful request. Failed requests are not billed.
- Page: https://docs.toolzerhub.com/reference/indeed/jobs/search-indeed-jobs

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `query` | query | yes | string | What to search for, as free text — Indeed's own q. This is the main axis of coverage: because there is only ever one page of results, more jobs come from more queries, not from paging. |
| `location` | query | no | string | Where to search — Indeed's own l. A city and state, a state, a postcode, or "remote". Omit for a nationwide search. |
| `radius` | query | no | integer | Miles around location to include. Only meaningful together with location — Indeed has nothing to measure a radius from without it. |
| `days_ago` | query | no | integer | Only postings first seen within this many days (Indeed's fromage). Restricted to 1, 3, 7, 14 because those are the only values Indeed acts on; any other number is silently ignored upstream, which would answer a different question than the one asked. |
| `job_type` | query | no | string | Employment type filter (Indeed's jt): fulltime, parttime, contract, temporary, internship. |
| `sort` | query | no | string | Result ordering. Omit for Indeed's own relevance ranking, which is the site default. |

## Example request

```bash
curl "https://api.toolzerhub.com/v1/indeed/jobs/search?query=<query>" \
  -H "x-api-key: $TOOLZERHUB_API_KEY"
```

Success responses are wrapped as `{ "data": ... }`. Errors return `{ "error": { "code", "status", "message", "retryable", "details" } }`. See https://docs.toolzerhub.com/docs/responses-and-errors.
