# Overview

> What is BetterJobs, and where do I start?

Source: https://docs.betterjobs.cc/

Diagram: one search request goes to 7 sources: BetterJobs index (contributed fields), Reqbeat (duplicate, merged), SignalsAPI (no match), TheirStack (contributed fields), JobsPipe (duplicate, merged), Coresignal (no match), Techmap (contributed fields). Results are merged and deduplicated into one canonical job whose sources array lists betterjobs, theirstack, techmap.

Illustrative: one request, seven sources, one canonical job. Duplicates are merged and free.

Without BetterJobs, every job-data provider means a separate signup, key and invoice. With BetterJobs you send one request. It goes to the BetterJobs index and to Reqbeat, SignalsAPI, TheirStack, JobsPipe, Coresignal and Techmap, as your plan allows. The same opening seen by three providers comes back as one canonical job, with every source listed in `sources[]`.

**1 credit = 1 unique job returned. Duplicates and empty searches are free.** See [Credits and billing](https://docs.betterjobs.cc/concepts/credits-and-billing.md).

> v1 preview
>
> The API is a preview. Endpoints and fields may change before general availability. The [OpenAPI spec](/openapi.yaml) is the source of truth.

## Pick your path

[Clay and no-code](https://docs.betterjobs.cc/getting-started/choose-your-path.md#clay-and-no-code)Add a job-search column in Clay, n8n, Make, Zapier or Google Sheets. No code.

[Developer](https://docs.betterjobs.cc/getting-started/choose-your-path.md#developer)Call the REST API from your backend. curl, Python and TypeScript.

[AI agent builder](https://docs.betterjobs.cc/getting-started/choose-your-path.md#ai-agent-builder)Connect Claude, Cursor or your own agent over MCP, with credit costs per tool.

[Data team](https://docs.betterjobs.cc/getting-started/choose-your-path.md#data-team)Backfill up to 10,000 jobs per search, then keep a table in sync.

[Recruiter](https://docs.betterjobs.cc/getting-started/choose-your-path.md#recruiter)Find companies hiring for a role and get told when they start or stop.

[Coming from another provider](https://docs.betterjobs.cc/getting-started/choose-your-path.md#coming-from-another-provider)Translate TheirStack, Coresignal, Techmap or JobsPipe queries and fields.

## Hello world

Three calls cover most of what people do with BetterJobs. The first needs no key.

Search jobs

Cost: FreeKeyless sandbox. Fixed illustrative data.

Head of RevOps in DACH, posted in the last 7 days. Runs against the keyless sandbox.

```bash
curl https://api.betterjobs.cc/v1/sandbox/jobs/search \
  -H "Content-Type: application/json" \
  -d '{"filters":{"title_or":["Head of RevOps"],"country_code_or":["DE","AT","CH"],"posted_within_days":7},"limit":10}'
```

[Quickstart](https://docs.betterjobs.cc/getting-started/quickstart.md) · [API reference](/api/operations/searchjobs/)

Check if a company is hiring

Cost: 1 credit / profile

`is_hiring.value` is `true`, `false` or `null`. `null` means unknown, never “not hiring”.

```bash
curl https://api.betterjobs.cc/v1/companies/acme-robotics.example \
  -H "Authorization: Bearer $BETTERJOBS_API_KEY" \
  -H "BetterJobs-Version: 2026-10-01"
```

[Find companies hiring](https://docs.betterjobs.cc/guides/find-companies-hiring.md) · [API reference](/api/operations/getcompany/)

Watch a company

Cost: 1 credit / job.openedCreating the watch is free. Other events, and jobs you already paid for, are free.

Get a signed webhook when the company opens jobs or starts or stops hiring. Webhooks are listed on the Pro plan and above.

```bash
curl https://api.betterjobs.cc/v1/watches \
  -H "Authorization: Bearer $BETTERJOBS_API_KEY" \
  -H "BetterJobs-Version: 2026-10-01" \
  -H "Content-Type: application/json" \
  -d '{"type":"company","domain":"acme-robotics.example","webhook_url":"https://hooks.northwind.example/betterjobs"}'
```

[Detect hiring changes](https://docs.betterjobs.cc/guides/detect-hiring-changes.md) · [API reference](/api/operations/createwatch/)

All example companies use fictional `.example` domains. Sample responses are illustrative.

## Learn the model

[The waterfall](https://docs.betterjobs.cc/concepts/waterfall.md)How one request fans out to up to seven sources and comes back as one list.

[Canonical jobs](https://docs.betterjobs.cc/concepts/canonical-jobs.md)What one job means when five sources saw it.

[Provenance and confidence](https://docs.betterjobs.cc/concepts/provenance-and-confidence.md)Who saw each job, and how sure we are it is real.

[Providers](https://docs.betterjobs.cc/providers.md)What each of the six partner providers and the BetterJobs index brings.

## For machines

- [`/openapi.yaml`](/openapi.yaml): the full OpenAPI 3.1 spec.
- [`/llms.txt`](/llms.txt): an index of these docs for AI agents. See [llms.txt and Markdown](https://docs.betterjobs.cc/agents/llms-txt.md).
- Replace the trailing `/` of a page URL with `.md` to get it as Markdown, for example `/concepts/waterfall/` → [`/concepts/waterfall.md`](/concepts/waterfall.md). This page is [`/index.md`](/index.md). API reference pages under `/api/` have no Markdown twin; read `/openapi.yaml` instead.
- [`/.well-known/pricing.json`](/.well-known/pricing.json): plans and credits as JSON.
