> ## 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.

# WordPress plugin

> Fill a WordPress job board automatically from Jobo's live job index, with incremental sync and self-closing listings.

**Jobo Jobs** keeps a WordPress job board stocked without anyone posting a job by hand. It pulls listings from Jobo's index — sourced directly from employer career sites and 100+ applicant tracking systems — and keeps them current on a schedule.

Works with **WP Job Manager** out of the box, writing the same fields your theme already renders. No WP Job Manager? The plugin ships its own job post type, so it works on any site.

<Card title="Get the plugin" icon="download" href="https://wordpress.org/plugins/career-site-jobs/" horizontal>
  wordpress.org/plugins/career-site-jobs
</Card>

This page assumes you've read the shared [Authentication](/docs/connectors/overview#authentication) and [Cost model](/docs/connectors/overview#cost-model) sections on the [connectors overview](/docs/connectors/overview) — it only covers what's specific to WordPress.

***

## Install

<Steps>
  <Step title="Install and activate">
    Search for **Jobo Jobs** in **Plugins → Add New**, then activate it.
  </Step>

  <Step title="Add your API key">
    Go to **Settings → Jobo Jobs** and paste your key. [Create one](https://enterprise.jobo.world/api-keys) if you don't have one yet — the free tier is enough to try it out.
  </Step>

  <Step title="Choose what to import">
    Set locations, sources, and filters, or leave them blank to import everything. See [Filters](#filters) below.
  </Step>

  <Step title="Sync">
    Click **Sync now**, or wait for the first scheduled run.
  </Step>
</Steps>

***

## Filters

All filters live under **Which jobs to import**. Leave everything blank to import the whole index — narrowing keeps your board relevant and your bill down, since import is billed per job delivered.

| Field                | Behaviour                                                                                                                                                                                                                                             |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Locations**        | One per line. Accepts `"Country"`, `"Region, Country"`, or `"City, Region, Country"`. Start typing and pick from the suggestions — the field resolves what you type against Jobo's geocoder, so you don't have to guess the exact spelling or format. |
| **Sources**          | Which ATS platforms to import from (Greenhouse, Lever, Workday, and 100+ others). Start typing to see matching sources suggested live from the current index, or leave blank for all.                                                                 |
| **Work model**       | Checkboxes: remote, hybrid, onsite.                                                                                                                                                                                                                   |
| **Employment type**  | Checkboxes: full-time, part-time, contract, internship, freelance, temporary.                                                                                                                                                                         |
| **Experience level** | Checkboxes: intern, entry, mid, senior, lead, executive.                                                                                                                                                                                              |

<Note>
  If JavaScript is disabled, the plain text fields still submit correctly — the suggestion pickers are a convenience layer on top of them, not a requirement.
</Note>

The plugin also has two settings that shape *how* a sync runs rather than *what* it imports:

* **Jobs per request** and **Requests per run** multiply into the most jobs a single run will import, so a run never exhausts PHP's execution time limit. The cursor is saved between runs, so a bounded run always resumes exactly where it left off — nothing is skipped.
* **When a job closes**: draft it, trash it, or leave it published. Checking for closed jobs never costs credits, regardless of which you choose.

***

## Cost

Feed jobs delivered through the plugin are billed at **\$1 per 1,000**, and are included at no extra cost on a Jobs Feed plan. Checking for closed jobs is always free. The settings screen shows your current credit balance after every sync, so cost is never a surprise.

See [Cost model](/docs/connectors/overview#cost-model) for how this fits into the wider billing picture, and [Billing and metering](/docs/billing) for the full mechanics.

***

## Troubleshooting

| Problem                                                 | Fix                                                                                                                                                                                                                                                                            |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Nothing imports, and the admin shows a payment error    | The balance check prices the whole requested batch before the request runs, so it can fail even when your balance looks non-zero. Top up, or lower **Jobs per request**.                                                                                                       |
| The sync stops part-way through a large import          | Expected. Each run is bounded by **Jobs per request** × **Requests per run** and a time budget. The cursor is saved, so the next run resumes exactly where it stopped — nothing is lost or duplicated.                                                                         |
| Imported jobs have no job type                          | WP Job Manager only registers the job type taxonomy when job types are enabled in its own settings. Turn them on and re-sync. A type with no matching term (Contract, for instance, isn't a WP Job Manager default) is created rather than dropped.                            |
| A job was filled but is still showing                   | Expiry runs on the same schedule as import. Check **When a job closes** — leaving it published is a deliberate option, not the default, so confirm you picked draft or trash if you want closed roles to disappear.                                                            |
| A location or source doesn't show up in the suggestions | The suggestion list reflects what's currently in the index — a very new or very small ATS source may not have enough live jobs to appear yet. You can still type it in exactly and it will match if it's a real value; an unrecognised value simply imports nothing, silently. |

***

## FAQ

<AccordionGroup>
  <Accordion title="Do I need WP Job Manager?">
    No. If WP Job Manager is active, the plugin writes to it, so your existing theme and shortcodes work unchanged. If it isn't, the plugin registers its own Jobs post type.
  </Accordion>

  <Accordion title="Will this duplicate listings?">
    No. Every listing is matched on its Jobo job ID, so repeated syncs — even a full resync — update in place rather than duplicating.
  </Accordion>

  <Accordion title="Where do the jobs come from?">
    Jobo's index, sourced directly from employer career sites and 100+ applicant tracking systems including Greenhouse, Lever, Workday, Ashby, SmartRecruiters, and BambooHR. See [Sources](/docs/sources) for the full platform list.
  </Accordion>

  <Accordion title="I'm stuck — how do I get help?">
    Email [support@jobo.world](mailto:support@jobo.world), or check this page and the [connectors overview](/docs/connectors/overview) first — most setup issues are covered above.
  </Accordion>
</AccordionGroup>
