# WP Job Manager: a shortcode based job board for an existing WordPress site

> WP Job Manager is a lightweight WordPress plugin that adds job listing functionality without imposing a theme, because every output element is rendered through shortcodes. It covers the plugin core, while the paid extensions for applications, resumes, bookmarks and company listings live separately, and the whole thing is developed in the open by Automattic.

**Automattic/WP-Job-Manager** — Manage job listings from the WordPress admin panel, and allow users to post jobs directly to your site.

- Repository: https://github.com/Automattic/WP-Job-Manager
- Website: https://wpjobmanager.com
- Stars: 897 · Forks: 370
- Language: PHP
- License: GPL-3.0
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/automattic-wp-job-manager

## A plugin that refuses to impose a theme

WP Job Manager is described as a lightweight job listing plugin for adding job-board like functionality to a WordPress site. The design decision that defines it is stated in one clause: being shortcode based, it can work with any theme, given a bit of CSS styling, and is really simple to setup.

That is the whole proposition. A job board plugin could have shipped a complete front end with its own templates and its own styling, and some do. This one deliberately does not, and instead exposes shortcodes that a site owner places in a page or a template.

The consequence cuts both ways. On the positive side, the job section inherits the site's typography, spacing, colours and responsiveness, and a site that already has a design system does not have to fight one. The plugin is the data model plus the listing logic, and the presentation is the site owner's problem.

On the negative side, that CSS work is real work, and the readme says so plainly with the parenthetical given a bit of CSS styling. A site owner without a developer will find that the plugin gives them structure and a set of shortcodes but not a finished page.

The repository layout shows the scope of the core. There are includes/ for the plugin's PHP logic, lib/ for the classes, templates/ for the output templates, assets/ for the front end files, and languages/ for translations. The main plugin files sit at the root: wp-job-manager.php, wp-job-manager-autoload.php, wp-job-manager-functions.php, wp-job-manager-template.php and wp-job-manager-deprecated.php, plus uninstall.php. The templates directory is the key one for the shortcode model, because it is where the markup for each shortcode is defined and overridden.

The plugin is also developed by Automattic, the company behind WordPress.com, and the core is free under the GPL, with the add-ons sold separately.

## Install it from the admin panel, or upload it by hand

The installation section offers the two standard WordPress routes, and the first one is unusually frictionless.

Automatic installation is described as the easiest option, because WordPress handles the file transfers itself and you do not even need to leave your web browser. You log in to the WordPress admin panel, navigate to the Plugins menu and click Add New. In the search field you type WP Job Manager and click Search Plugins, and once you have found the plugin you can view details about it such as the point release, rating and description, and install it by clicking Install Now.

The manual method involves downloading the plugin file and uploading it to your web server via your favourite FTP application.

The steps are: download the plugin file to your computer and unzip it, then using an FTP program or your hosting control panel upload the unzipped plugin folder to your WordPress installation's wp-content/plugins/ directory, and activate the plugin from the Plugins menu within the WordPress admin.

There is a third option that is worth knowing about because it removes the local setup entirely. The documentation links a WordPress Playground blueprint, and the readme says no install is required. That is a hosted sandbox that spins up a WordPress instance with the plugin already in it, which is the fastest way to see whether the shortcode output and the templates suit you before you commit to styling anything.

That last point matters more than it looks. Because the plugin leaves presentation to you, evaluating it means seeing the actual output rather than reading about it, and a blueprint that runs the real plugin in a browser is a better evaluation than any screenshot.

## The core plugin is only part of a job board

The readme is careful to describe the scope, and the surrounding documentation makes the division clear: documentation for the core plugin and add-ons is on the docs site, and there is a separate support help desk for the add-ons specifically.

So the core provides the job listing functionality, and the pieces a recruitment operation actually needs beyond that are separate products. A job board without an application form is a page, and the readme points to a separate site for hiring a developer if you need customisation work done, and to a jobs directory for that purpose.

The consequences for an evaluator are concrete. If you need applicants to submit a CV against a posting, that is an add-on rather than part of the core. If you need candidate accounts and a profile, that is an add-on. If you want companies to have their own logo and description page, that is an add-on too. The repository topics confirm the shape of the ecosystem, listing the plugin under job-board and WordPress territory with related packages for the wider set of features around it.

That structure has an upside as well. The core is small enough to read, which is unusual for a WordPress plugin of its age, and the add-ons can be bought only if the corresponding need is real. A site that only wants to publish a list of open roles and take an email address does not pay for the rest of the stack.

The core is also deliberately extensible in the WordPress way. The templates/ directory is where the markup lives, and the shortcode model means the output can be overridden without touching the plugin, which is what makes the CSS customisation the readme mentions a reasonable activity rather than a hack.

## A modern toolchain around a WordPress plugin

The repository is a good example of a WordPress plugin built with a contemporary toolchain, and the file list makes it clear.

There is a composer.json and composer.lock for the PHP side, a package.json and package-lock.json for the JavaScript, a webpack.config.js for bundling, and a phpcs.xml.dist for PHP coding standards plus psalm.xml and a .psalm/ directory for static analysis. JavaScript is checked with eslint, using .eslintrc.js and .eslintignore, and formatted with prettier through .prettierrc.

The package.json requires npm 7 or newer and Node 20 or newer, and the Makefile enforces that with a check_node macro that fails the build if Node is missing or older than 20, printing an nvm hint if you are using nvm.

The test and local environment machinery is the more interesting part, because it is built on wp-env, the official @wordpress/env package at version 11.0.0. The Makefile defines two environments: the development one as COMPOSE_PROJECT_NAME=wp-job-manager npx @wordpress/env, and the test one using a separate compose project name with the .wp-env.tests.json config file. Both are started and stopped side by side, so the development site and the test site never share a database.

The test target runs PHPUnit inside the test environment against the plugin directory, with the working directory set to wp-content/plugins/wp-job-manager. The JavaScript side has jest.config.js and the wp scripts test preset, and the frontend is built with wp-scripts, with separate build:assets and build:vendor steps, the latter copying select2's distribution files into assets/lib/select2. There is a playwright dependency in the dev tree, and a .wp-env.json plus a .wp-env.tests.json.

A blueprint.json at the root is what powers the WordPress Playground link, and there is a release.config.js plus a postarchive script that rewrites the plugin zip, which is the packaging step for a release.

## Where WP Job Manager is the wrong choice

The clearest case against it is a site that already has a recruiting platform and only needs a small careers page. If you are on Workable, Greenhouse, Lever or Ashby and want those jobs mirrored onto your WordPress site, a plugin that stores its own listings in the WordPress database duplicates data you already have and gives you two sources of truth to keep in step.

The second case is a requirement for a richer workflow. Applications with screening questions, candidate accounts, saved searches, job alerts, matching and scoring all sit outside the core, and even the add-ons for them are simpler than what a dedicated ATS provides. If the recruitment process is the point rather than the website, a WordPress plugin is the wrong layer.

The third is the theme and CSS commitment, which the readme understates. The shortcode model means you own the presentation, and a job board has more page types than a normal content site: the listing archive with filters and pagination, the single job view, the application form, the search results, the company page. Each is a template override and a set of CSS rules, and none of that ships with the plugin.

The fourth is that a job board on WordPress inherits WordPress. That means it inherits the update treadmill, the plugin and theme conflicts, the shared hosting performance ceiling, and the fact that a recruiter who can log into the admin panel can also change site content. For a site whose job listings change weekly and whose traffic is measured in hundreds, that is fine. For a site expecting thousands of applications on the day a role is posted, it is a different conversation.

The alternative approaches split cleanly. A hosted job board handles the workflow, the templates and the applications, at the cost of a monthly fee and a subdomain or a reverse proxy setup. A static site generator with a job feed from an ATS gives you a fast careers page with no WordPress to maintain. A full purpose built applicant tracking system gives you the workflow. WP Job Manager is the option for a WordPress site owner who wants the listings to live inside their own site and who is prepared to style them.

## Conclusion

WP Job Manager suits a site owner who already runs WordPress, wants a careers section rather than a separate job board application, and accepts the shortcode model with its accompanying CSS work. It does not suit someone who wants a full applicant tracking system out of the box, since applications, resumes and company profiles are separate add-ons, and it does not suit a site that needs a richer recruiting workflow than a listing and an application form. Before adopting it, read the documentation site rather than the readme, because the readme explicitly defers the frequently asked questions there, and try the WordPress Playground blueprint first to see the plugin running with no local install.

## FAQ

### What does WP Job Manager do?

It is a lightweight job listing plugin that adds job-board like functionality to a WordPress site. Being shortcode based, it can work with any theme given a bit of CSS styling, and it is described as really simple to setup.

### How do I install WP Job Manager?

Automatically through the WordPress admin panel by going to Plugins, Add New, searching for WP Job Manager and clicking Install Now. Or manually: download the plugin file, unzip it, upload the folder to wp-content/plugins/ via FTP or your hosting control panel, and activate it from the Plugins menu.

### Does WP Job Manager include applications and resumes?

The core covers job listings. The readme separates documentation for the core plugin and for add-ons, and points to a separate support help desk for the add-ons specifically, so features like applications, resumes and company listings are separate products rather than part of the core.

### How is WP Job Manager developed and tested?

The repository uses @wordpress/env for separate development and test WordPress environments, PHPUnit for the PHP tests, Jest with the WordPress preset for JavaScript, plus Playwright, Psalm, PHPCS, ESLint and Prettier. The Makefile enforces Node 20 or newer before any target runs.

### What licence does WP Job Manager use?

The repository licence field says GPL-3.0 and the package.json declares GPL-2.0-or-later. The last push was on 2026-10-19 with the latest listed release being version 2.4.8 from 2026-10-07.

## Sources

- [Automattic/WP-Job-Manager on GitHub](https://github.com/Automattic/WP-Job-Manager)
- [License: GPL-3.0](https://github.com/Automattic/WP-Job-Manager/blob/trunk/LICENSE)
- [Project website](https://wpjobmanager.com)
- [README](https://github.com/Automattic/WP-Job-Manager/blob/trunk/README.md)
- [Releases](https://github.com/Automattic/WP-Job-Manager/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/automattic-wp-job-manager
