# Job Scraper API design

:::caution[Design reference]
This product is not live. Supported sources, final rates and production endpoint instructions will be published with the release.
:::

## Task

Find public job listings that match a query and supported filters. This is not an applicant tracking system, candidate profile search or a completeness guarantee for all open roles.

## Core inputs

| Field | Meaning |
| --- | --- |
| `query` | Search text. |
| `country` | Country scope for the query. |
| `sources` | Explicit list of sources to search. Only released sources will be accepted. |
| `limit` | Total requested record limit, not a separate limit per source. |
| `allowPartial` | Whether incomplete delivery is acceptable. Default behavior does not silently permit it. |
| `maxCredits` | Optional request-level credit ceiling, as a non-negative JSON number. |

These fields belong to the planned flat REST and MCP operation body. The current workspace stores a smaller draft containing query, country, limit and maxCredits; it does not execute that contract. See the [sample walkthrough](/docs/quickstart/). The product ID and route use `job-scraper`.

## Source filters

Not every board supports the same filters. Unsupported filters cause refusal before execution unless the caller explicitly allows eligible sources to proceed. If no eligible sources remain, the request is refused.

Indeed, LinkedIn and Glassdoor are candidate sources. None is currently enabled; the first release will publish a validated support table.

## Record shape

Records are designed to preserve source identity, title, URL and collection time. Optional information such as salary is represented honestly when absent. A missing value is not invented, and a missing salary period is not silently inferred.

## Delivery and billing

Job Scraper is planned to bill per eligible record delivered. A completed search with no matches has no charge. Failed or excluded sources remain visible in the response. All-or-nothing requests that cannot complete fail without billed partial delivery.

## Long-running work

The contract supports a completed response or an accepted task handle when work outlasts the synchronous window. Reading an existing task does not start another collection. Production timing, retention and limits will be listed before access opens.

Product preview: https://truefetch.io/apis/job-scraper/
Status: inDevelopment. Callable: false.
