Monviso ATS Job Importer — real vacancies from company career pages, inside WP Job Manager.
Point the plugin at a company's applicant-tracking board and it mirrors every open role into WP Job Manager: title, description, location, apply link. New roles appear hourly, closed roles expire on their own.
Free under GPLv2 · no API key · no account · nothing sent to us. Version 0.2.0 submitted to WordPress.org — in review.
One board in, one job board out.
WP Job Manager gives you the board; it does not give you jobs. This plugin fills it from the source a company already maintains, so nobody re-types a vacancy.
- Hourly sync on WP-Cron — new roles are published as
job_listingposts. - Updates in place — when the posting changes, the title, description and location change with it.
- Expiry — a role missing from the board is set to expired, with
_job_expiresdated yesterday. - Standard fields — company, location and the public apply URL land in the WP Job Manager meta, not in a private format.
- Several boards — add one row per company, each tracked separately.
Verified live on five platforms: Greenhouse (746 roles on one board), Ashby (809), Lever, Workable and SmartRecruiters.
Five ATS, five public endpoints.
| ATS | Board name looks like | Endpoint used |
|---|---|---|
| Greenhouse | stripe from boards.greenhouse.io/stripe | boards-api.greenhouse.io |
| Lever | leverdemo from jobs.lever.co/leverdemo | api.lever.co |
| Ashby | openai from jobs.ashbyhq.com/openai | api.ashbyhq.com |
| Workable | seedlegals from apply.workable.com/seedlegals | apply.workable.com |
| SmartRecruiters | SmartRecruiters from careers.smartrecruiters.com | api.smartrecruiters.com |
SmartRecruiters does not return descriptions in its list response, so those listings carry the apply link and summary only — stated here rather than promised away.
Free plugin, paid add-on.
Everything the free plugin's code can do, it does — no locks, no trial counters, no quota. That is a WordPress.org directory requirement, and it is also the honest way to publish software. The paid part is a separate add-on, hosted here, that talks to our job-market index.
Monviso ATS Job Importer
Free · GPLv2- All five ATS platforms
- Unlimited boards
- Hourly sync, dedupe, expiry
- Community support on WordPress.org
Pro add-on
At launch- Search our index: ~1.4 M roles across ~35 000 company boards
- Company → category and department mapping
- Salary field normalisation
- Email support, one business day
The add-on is not in the WordPress.org directory by design: premium code lives outside the plugin you download for free. Billing is handled by Freemius as merchant of record — prices are in USD and tax, where it applies, is calculated at checkout.
Five minutes, four steps.
- Install and activate WP Job Manager — the plugin imports into its
job_listingpost type. - Upload the plugin zip, or install it from the Plugins screen once the directory listing is live.
- Open Tools → ATS Job Importer, pick the ATS, paste the board name, save.
- Press Sync now; the first import runs immediately, then hourly.
Requires WordPress 6.0+, PHP 7.4+, WP Job Manager active. Tested against WordPress 7.1.
When a sync returns nothing.
- 0 jobs found. Check the board name, not the company name:
boards.greenhouse.io/acme→acme. A wrong slug returns an empty list, not an error. - HTTP 404 from the board. The company moved off that ATS or closed the public board. Try the careers page in a browser first; if the list is not public there, the plugin cannot see it either.
- Nothing expires. WP Job Manager expires listings on its own schedule. If
DISABLE_WP_CRONis set, add a real cron entry hittingwp-cron.phpevery 5 minutes, otherwise both the import and the expiry stall. - Jobs import but no descriptions. SmartRecruiters returns descriptions only per vacancy; the plugin stores the apply link and summary instead of making one extra request per job.
- Duplicates after changing the board. Listings are keyed by ATS + board + job id. Point a row at a different board and the old listings stop matching, so they expire on the next run rather than duplicating.
0.2.0 — admin that scales
- Add and remove board rows without reloading the page.
- One board per request with a progress indicator, so large imports no longer hit the PHP timeout.
- Log of the last 20 runs: time, trigger, per-board created/updated/expired and errors.
- Live count of imported vacancies per board, cached for five minutes.
- Sync interval setting: hourly, every two hours or daily.
0.1.0 — first release
- Greenhouse, Lever, Ashby, Workable and SmartRecruiters adapters.
- Hourly, 2-hourly or daily WP-Cron sync, manual run from Tools → ATS Job Importer.
- Dedupe by vendor job id, in-place updates, expiry of closed roles.
- Readme, uninstall cleanup and translation-ready strings.
Next: WordPress.org review, then the Pro add-on with market search.
What buyers ask first.
- Do I need an API key? No. Every endpoint is the public board the vendor serves to browsers.
- Where does my data go? The plugin writes to your own database; the only outbound requests go to the vendor's board API.
- Is it allowed on WordPress.org? The free plugin is GPLv2, has no locked features and no external calls beyond the boards — that is what the directory requires.
- Who builds it? International Solutions OÜ (Monviso), Tartu, Estonia. Same team that runs roleticker.com and the ATS Jobs MCP server.
Something does not work with your board?
Tell us the board name and what came out wrong — that is the fastest way to get an adapter fixed. Write to the address on the contact page; we answer within one business day.