← All integrationsCMS

A job board that fills itself.

Most job importers hand you a CSV or an RSS feed and leave the hard parts to you. The Jobo plugin is built around the two things that actually keep a board healthy: each sync resumes from a stored cursor instead of re-scanning from the top, and jobs retire themselves when they disappear from the employer's careers page. That second half is the one nobody else does — and checking for closed jobs never costs credits.

Get an API keyWordPress.org plugin directory — coming soon

What it does

Works with your existing theme

Writes the same job_listing fields WP Job Manager's templates already read, so imported jobs render through your theme with no configuration. No WP Job Manager? The plugin registers its own job post type.

Incremental sync

Each run resumes from a stored cursor, so syncs stay fast as the board grows and you are not billed repeatedly for jobs you already have.

Listings close themselves

Jobo tracks when a role disappears from the employer's careers page and tells your site, so you stop advertising jobs that were filled weeks ago. This check is free on every plan.

Filter what you import

By location, ATS source, work model, employment type and experience level — so a niche board stays niche, and your bill stays proportional.

Edits are respected

Updates never change the status of a listing. Unpublish something by hand and it stays unpublished; the content still refreshes from the source.

Cost stays visible

Credit balance and sync history sit in the admin screen, updated after every run.

Setting it up

  1. Install the plugin

    Search for “Jobo Jobs” in Plugins → Add New, then activate it.

  2. Add your API key

    Go to Settings → Jobo Jobs and paste your key. Create one at enterprise.jobo.world/api-keys — it takes about a minute.

  3. Choose which jobs to import

    Set locations, sources and filters. Leave them blank to import everything, though a narrower filter keeps the board relevant and the cost down. Locations take one per line: “Country”, “Region, Country”, or “City, Region, Country”.

    Germany
    Bavaria, Germany
    Berlin, Berlin, Germany
  4. Sync

    Click Sync now, or wait for the scheduled run. Pick hourly, twice daily or daily to match how fast your niche moves.

Things that trip people up

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 the balance looks non-zero. Top up, or lower “Jobs per request”.
The sync stops part-way through a large import
Each run is bounded by “Jobs per request” × “Requests per run” and a time budget, so it does not exhaust PHP's execution limit. The cursor is saved, so the next run resumes exactly where it stopped.
Imported jobs have no job type
WP Job Manager only registers the job type taxonomy when job types are enabled in its settings. Turn them on and re-sync. Types with no matching term — Contract, for instance, which is not a WP Job Manager default — are created rather than dropped.
A job was filled but is still showing
Expiry runs on the same schedule as import. Set “When a job closes” to draft or trash; leaving it published is a deliberate option, not the default.

Getting the most out of it

  • Start with a narrow filter and widen it. You are billed per job delivered, so breadth is what drives cost.
  • Import as draft on the first run if you want to review the content before it goes live.
  • Use a Jobs Feed plan if you are importing continuously — feed jobs are included rather than metered per job.
  • Leave expiry on. A board full of filled roles loses trust faster than a board with fewer listings.
  • Hourly is enough for almost every niche. More frequent syncing costs the same but delivers no benefit.