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

# Connectors overview

> Prebuilt integrations for WordPress, n8n, Google Sheets, and MCP clients — for teams who want Jobo's job data without writing API calls.

A connector is a small, maintained integration that talks to the [Jobs API](/docs/introduction) for you. Point it at a WordPress site, an n8n workflow, a spreadsheet, or an AI assistant, and it handles authentication, filtering, and pagination behind a native UI for that platform. If you're building your own integration instead, start with the [quickstart](/docs/quickstart) and an [SDK](/docs/sdks).

All four connectors are built on the same shared core, so a filter, an error, or a credit behaviour works identically wherever you meet it.

| Connector                | What it does                                                                                                                          | Get it                                                                                                 |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| **WordPress plugin**     | Syncs a filtered slice of the job index into WP Job Manager or a built-in post type, on a schedule.                                   | [wordpress.org/plugins/career-site-jobs](https://wordpress.org/plugins/career-site-jobs/)              |
| **n8n node**             | Search, feed, and company/location lookups as workflow steps, plus a trigger that starts a workflow when a new job is indexed.        | [npmjs.com/package/n8n-nodes-jobo-job-search](https://www.npmjs.com/package/n8n-nodes-jobo-job-search) |
| **Google Sheets add-on** | One-shot import of a filtered set of jobs into a new sheet, for research and benchmarking.                                            | [Setup guide](/docs/connectors/google-sheets)                                                               |
| **MCP server**           | Gives Claude, ChatGPT, Cursor, and other MCP clients live job search, including the search/fetch pair ChatGPT Deep Research requires. | [jobs-mcp.jobo.world](https://jobs-mcp.jobo.world) or `npx jobo-job-search-mcp`                        |

<Info>
  The Google Sheets add-on isn't in the Workspace Marketplace yet. Install it directly for now — see [Google Sheets](/docs/connectors/google-sheets) for the interim install path, and swap to the Marketplace listing once it's live.
</Info>

Each connector page below covers install, configuration, filters, cost, and troubleshooting for that platform. Three things work the same way across all of them — read them once here, not four times:

***

## Authentication

Every connector — except the MCP server's hosted deployment — authenticates with a **customer API key** from [enterprise.jobo.world/api-keys](https://enterprise.jobo.world/api-keys). Keys look like `jbe_live_…` (or `jbe_test_…`), are 74 characters long, and are validated client-side before anything is saved, so a typo fails immediately rather than on the first sync.

Paste the key once during setup. Each connector stores it in the safest place its platform offers — WordPress in an options row, n8n in an encrypted credential, Sheets against your Google account rather than the document. None of them expose the key to anyone who can just view the workflow, spreadsheet, or admin screen.

The hosted MCP server (`https://jobs-mcp.jobo.world`) is the one exception: it uses **OAuth sign-in** with your Jobo account instead of a pasted key. See [MCP server](/docs/connectors/mcp) for the client configuration and what changes if you self-host it.

For the full key format, rotation, and storage guidance, see [Authentication](/docs/authentication).

***

## Cost model

Connectors don't have separate pricing — they spend the same wallet credits as calling the API directly, through whichever endpoint they use:

* **Billed per job returned.** An empty result — no matches, or an empty poll — costs nothing.
* **Search-style calls cost roughly 3 credits per job returned.** The balance precheck prices the *requested* page size before the request runs, so a page of 25 needs a 75-credit balance even if the response comes back empty. Below that threshold you get `402`, not `429` — see [Errors](/docs/errors#402-payment-required).
* **Feed calls are cheaper per job**, and are included at no extra cost on a Jobs Feed plan. The WordPress plugin uses the feed; n8n and Sheets can use either the feed or search depending on the operation you pick.
* **Checking for closed jobs is always free** — `GET /api/jobs/expired` never deducts credits.
* **Polling cost tracks filter breadth, not frequency.** With a correctly persisted watermark, polling every 15 minutes costs the same as polling hourly — what drives the bill is how many *new* jobs match your filter, not how often you check.

See [Billing and metering](/docs/billing) for the full mechanics, including what happens on a failed or rate-limited request (nothing — no credits move).

***

## Polling and watermark semantics

The n8n trigger and the WordPress scheduled sync both work the same way under the hood: they persist a **watermark** — the `discovered_after` timestamp of the last job they saw — rather than recomputing a relative time window on every run. This is what makes cost independent of polling frequency, and it has two consequences worth knowing before you rely on either:

* **The first run returns nothing.** It records a starting point rather than backfilling the whole index, which would be both surprising and expensive on an unfiltered account.
* **Polling requires at least one narrowing filter** — a query (`q`), `location`, `sources`, `skills`, or `industries`. `GET /api/jobs` is relevance-ordered with no sort parameter, so a partial page of an unfiltered poll is an arbitrary subset: advancing the watermark past it would silently drop jobs, and holding it back would re-bill the same window forever. Rather than guess, both connectors refuse to run without a narrowing filter and fail loudly if a filter is still too broad for one page.

The Google Sheets add-on and the MCP server don't poll — Sheets does a one-shot import, and MCP answers requests as they come in — so this section only applies to the WordPress sync and the n8n trigger.

***

## Autocomplete on filter fields

Wherever a connector asks for a location, an ATS source, or an industry, start typing and it suggests real values as you go — locations resolve through Jobo's geocoder, sources and industries are pulled live from the index. Skills are free-entry: type a skill and press enter to add it as a chip, since skills aren't a fixed list. This means you're always sending a value the API actually recognises, rather than guessing at spelling and getting an empty result back (see the [search recipes](/docs/guides/search-recipes) warning on unrecognised filter values).

Each connector page below shows what this looks like on that platform.

***

<CardGroup cols={2}>
  <Card title="WordPress plugin" icon="wordpress" href="/docs/connectors/wordpress">
    Fill a job board automatically, on a schedule.
  </Card>

  <Card title="n8n node" icon="diagram-project" href="/docs/connectors/n8n">
    Search, sync, and trigger workflows on new jobs.
  </Card>

  <Card title="Google Sheets add-on" icon="table" href="/docs/connectors/google-sheets">
    Pull a filtered slice of jobs into a spreadsheet.
  </Card>

  <Card title="MCP server" icon="server" href="/docs/connectors/mcp">
    Give an AI assistant live job search.
  </Card>
</CardGroup>
