Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


Manage job listings from the WordPress admin panel, and allow users to post jobs directly to your site.

Subscribe to updates I use WP-Job-Manager

Statistics on WP-Job-Manager

Number of watchers on Github 595
Number of open issues 132
Average time to close an issue about 1 month
Main language PHP
Average time to merge a PR 5 days
Open pull requests 53+
Closed pull requests 29+
Last commit over 1 year ago
Repo Created over 6 years ago
Repo Last Updated over 1 year ago
Size 5.75 MB
Homepage http://wordpress....
Organization / Authorautomattic
Latest Release1.30.1
Page Updated
Do you use WP-Job-Manager? Leave a review!
View open issues (132)
View WP-Job-Manager activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating WP-Job-Manager for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

WP Job Manager

Contributors: mikejolley, automattic, adamkheckler, annezazu, cena, chaselivingston, csonnek, davor.altman, drawmyface, erania-pinnera, jacobshere, jakeom, jeherve, jenhooks, jgs, jonryan, kraftbj, lamdayap, lschuyler, macmanx, nancythanki, orangesareorange, rachelsquirrel, ryancowles, richardmtl, scarstocea
Tags: job manager, job listing, job board, job management, job lists, job list, job, jobs, company, hiring, employment, employer, employees, candidate, freelance, internship, job listings, positions, board, application, hiring, listing, manager, recruiting, recruitment, talent
Requires at least: 4.3.1
Tested up to: 4.9
Stable tag: 1.30.1
License: GPLv3
License URI:

Manage job listings from the WordPress admin panel, and allow users to post job listings directly to your site.


WP Job Manager is a lightweight job listing plugin for adding job-board like functionality to your WordPress site. Being shortcode based, it can work with any theme (given a bit of CSS styling) and is really simple to setup.


  • Add, manage, and categorize job listings using the familiar WordPress UI.
  • Searchable & filterable ajax powered job listings added to your pages via shortcodes.
  • Frontend forms for guests and registered users to submit & manage job listings.
  • Allow job listers to preview their listing before it goes live. The preview matches the appearance of a live job listing.
  • Each listing can be tied to an email or website address so that job seekers can apply to the jobs.
  • Searches also display RSS links to allow job seekers to be alerted to new jobs matching their search.
  • Allow logged in employers to view, edit, mark filled, or delete their active job listings.
  • Developer friendly code Custom Post Types, endpoints & template files.

The plugin comes with several shortcodes to output jobs in various formats, and since its built with Custom Post Types you are free to extend it further through themes.

Read more about WP Job Manager.


Documentation for the core plugin and add-ons can be found on the docs site here. Please take a look before requesting support because it covers all frequently asked questions!


The core WP Job Manager plugin is free and always will be. It covers all functionality we consider 'core' to running a simple job board site.

Additional, advanced functionality is available through add-ons. Not only do these extend the usefulness of the core plugin, they also help fund the development and support of core.

You can browse available add-ons after installing the plugin by going to Job Listings > Add-ons. Our popular add-ons include:


Allow candidates to apply to jobs using a form & employers to view and manage the applications from their job dashboard.

WooCommerce Paid Listings

Paid listing functionality powered by WooCommerce. Create custom job packages which can be purchased or redeemed during job submission. Requires the WooCommerce plugin.

Resume Manager

Resume Manager is a plugin built on top of WP Job Manager which adds a resume submission form to your site and resume listings, all manageable from WordPress admin.

Job Alerts

Allow registered users to save their job searches and create alerts which send new jobs via email daily, weekly or fortnightly.

Core add-on bundle

You can get the above add-ons and several others at discount with our Core Add-on Bundle. Take a look!

Contributing and reporting bugs

You can contribute code to this plugin via GitHub: and localizations via

Thanks to all of our contributors.


Use the forums for community support where we try to help all users. If you spot a bug, you can log it (or fix it) on Github where we can act upon them more efficiently.

If you need help with one of our add-ons, please raise a ticket in our help desk.

If you want help with a customization, please consider hiring a developer! is a good place to start.


Automatic installation

Automatic installation is the easiest option as WordPress handles the file transfers itself and you don't even need to leave your web browser. To do an automatic install, log in to your WordPress admin panel, navigate to the Plugins menu and click Add New.

In the search field type WP Job Manager and click Search Plugins. Once you've found the plugin you can view details about it such as the point release, rating and description. Most importantly of course, you can install it by clicking Install Now.

Manual installation

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

  • Download the plugin file to your computer and unzip it
  • Using an FTP program, or your hosting control panel, upload the unzipped plugin folder to your WordPress installation's wp-content/plugins/ directory.
  • Activate the plugin from the Plugins menu within the WordPress admin.

Getting started

Once installed:

  1. Create a page called jobs and inside place the [jobs] shortcode. This will list your jobs.
  2. Create a page called submit job and inside place the [submit_job_form] shortcode if you want front-end submissions.
  3. Create a page called job dashboard and inside place the [job_dashboard] shortcode for logged in users to manage their listings.

Note when using shortcodes, if the content looks blown up/spaced out/poorly styled, edit your page and above the visual editor click on the 'text' tab. Then remove any 'pre' or 'code' tags wrapping your shortcode.

For more information, read the documentation.

Frequently Asked Questions

How do I setup WP Job Manager?

View the getting installation and setup guide for advice getting started with the plugin. In most cases it's just a case of adding some shortcodes to your pages!

Can I use WP Job Manager without frontend job submission?

Yes! If you don't setup the [submit_job_form] shortcode, you can just post from the admin backend.

How can I customize the job application process?

There are several ways to customize the job application process in WP Job Manager, including using some extra plugins (some are free on

See: Customizing the Job Application Process

How can I customize the job submission form?

There are three ways to customize the fields in WP Job Manager;

  1. For simple text changes, using a localisation file or a plugin such as
  2. For field changes, or adding new fields, using functions/filters inside your theme's functions.php file:
  3. Use a 3rd party plugin such as which has a UI for field editing.

If you'd like to learn about WordPress filters, here is a great place to start:

How can I be notified of new jobs via email?

If you wish to be notified of new postings on your site you can use a plugin such as Post Status Notifier.

What language files are available?

You can view (and contribute) translations via the


  1. The submit job form.
  2. Submit job preview.
  3. A single job listing.
  4. Job dashboard.
  5. Job listings and filters.
  6. Job listings in admin.



  • Fix: Minor issue with a strict standard error being displayed on some instances. (@alexsanford)


  • Enhancement: Adds ability to have a reCAPTCHA field to check if job listing author is human. (@jom)
  • Enhancement: Allows for option to make edits to job listings force listing back into pending approval status. (@jom)
  • Enhancement: Adds spinner and disables form when user submits job listing. (@jom)
  • Enhancement: Update the add-ons page of the plugin. (@jom)
  • Enhancement: Added the ability to sort jobs randomly on the Featured Jobs Widget. (@jom)
  • Enhancement: Improved handling of alternative date formats when editing job expiration field in WP admin. (@jom)
  • Enhancement: Added star indicator next to featured listings on [job_dashboard]. (@jom)
  • Enhancement: Opt-in to usage tracking so we can better improve the plugin. (@alexsanford, @donnapep, @jom)
  • Enhancement: Introduced new asset enqueuing strategy that will be turned on in 1.32.0. Requires plugin and theme updates. (@jom; Dev notes:
  • Fix: Use WordPress core checks for image formats to not confuse docx as an image. (@tripflex)
  • Fix: Issue with [jobs] shortcode when categories argument is provided. (@jom)
  • Fix: Issue with double encoding HTML entities in custom text area fields. (@jom)
  • Fix: Updates job-dashboard.php template with colspan fix on no active listings message. (@jom)
  • Fix: Clear job listings cache when deleting a user and their job listings. (@jom)
  • Dev: Adds is_wpjm() and related functions to test if we're on a WPJM related page. (@jom)
  • Dev: Adds job_manager_user_edit_job_listing action that fires after a user edits a job listing. (@jom)
  • Dev: Adds job_manager_enable_job_archive_page filter to enable job archive page. (@jom)
  • Dev: Adds date field for custom job listing form fields. (@alexsandford)


  • Fix: When retrieving job listing results, cache only the post results and not all of WP_Query (@jom; props slavco)


  • Fix: PHP Notice when sanitizing multiple inputs (bug in 1.29.1 release). (@albionselimaj)


  • Enhancement: When retrieving listings in [jobs] shortcode, setting orderby to rand_featured will still place featured listings at the top. (@jom)
  • Enhancement: Scroll to show application details when clicking on Apply for Job button. (@jom)
  • Change: Updates account-signin.php template to warn users email will be confirmed only if that is enabled. (@jom)
  • Fix: Sanitize URLs and emails differently on the application method job listing field. (@jom)
  • Fix: Remove PHP notice in Featured Jobs widget. (@himanshuahuja96)
  • Fix: String fix for consistent spelling of license when appearing in strings. (@garrett-eclipse)
  • Fix: Issue with paid add-on licenses not showing up when some third-party plugins were installed. (@jom)
  • Dev: Runs new actions (job_manager_recent_jobs_widget_before and job_manager_recent_jobs_widget_after) inside Recent Jobs widget. (@jom)
  • Dev: Change wpjm_get_the_job_types() to return an empty array when job types are disabled. (@jom)
  • See all:


  • Enhancement: Moves license and update management for official add-ons to the core plugin. (@jom)
  • Enhancement: Update language for setup wizard with more clear descriptions. (@donnapep)
  • Fix: Prevent duplicate attachments to job listing posts for non-image media. (@tripflex)
  • Fix: PHP error on registration form due to missing placeholder text. (@jom)
  • Fix: Apply the_job_application_method filter even when no default is available. (@turtlepod)
  • Fix: Properly reset category selector on [jobs] shortcode. (@jom)


  • Enhancement: Improves support for Google Job Search by adding JobPosting structured data. (@jom)
  • Enhancement: Adds ability for job types to be mapped to an employment type as defined for Google Job Search. (@jom)
  • Enhancement: Requests search engines no longer index expired and filled job listings. (@jom)
  • Enhancement: Improves support with third-party sitemap generation in Jetpack, Yoast SEO, and All in One SEO. (@jom)
  • Enhancement: Updated descriptions and help text on settings page. (@donnapep; Props to @michelleweber for updated copy)
  • Enhancement: Lower cache expiration times across plugin and limit use of autoloaded cache transients. (@jom/files)
  • Fix: Localization issue with WPML in the [jobs] shortcode. (@jom)
  • Fix: Show job listings' published date in localized format. (@jom)
  • Fix: Job submission form allows users to select multiple job types when they go back a step. (@jom)
  • Fix: Some themes that overloaded functions would break in previous release. (@jom)
  • Dev: Adds versions to template files so it is easier to tell when they are updated. (@jom)
  • Dev: Adds a new wpjm_notify_new_user action that allows you to override default behavior. (@jom)
  • Dev: Early version of REST API is bundled but disabled by default. Requires PHP 5.3+ and WPJM_REST_API_ENABLED constant must be set to true. Do not use in production; endpoints may change. (@pkg)


  • Enhancement: Admins can now allow users to specify an account password when posting their first job listing. (@jom)
  • Enhancement: Pending job listing counts are now cached for improved WP Admin performance. (@tripflex)
  • Enhancement: Allows users to override permalink slugs in WP Admin's Permalink Settings screen. (@jom)
  • Enhancement: Allows admins to perform bulk updating of jobs as filled/not filled. (@jom)
  • Enhancement: Adds job listing status CSS classes on single job listings. (@jom)
  • Enhancement: Adds wpjm_the_job_title filter for inserting non-escaped HTML alongside job titles in templates. (@jom)
  • Enhancement: Allows admins to filter by post_status in [jobs] shortcode. (@jom)
  • Enhancement: Allows accessing settings tab from hash in URL. (@tripflex)
  • Fix: Make sure cron jobs for checking/cleaning expired listings are always in place. (@jom)
  • Fix: Better handling of multiple job types. (@spencerfinnell)
  • Fix: Issue with deleting company logos from job listings submission form. (@jom)
  • Fix: Warning thrown on job submission form when user not logged in. (@piersb)
  • Fix: Issue with WPML not syncing some meta fields. (@jom)
  • Fix: Better handling of AJAX upload errors. (@tripflex)
  • Fix: Remove job posting cookies on logout. (@jom)
  • Fix: Expiration date can be cleared if default job duration option is empty. (@spencerfinnell)
  • Fix: Issue with Safari and expiration datepicker. (@jom)


  • Fix: Prevents use of Ajax file upload endpoint for visitors who aren't logged in. Themes should check with job_manager_user_can_upload_file_via_ajax() if using endpoint in templates.
  • Fix: Escape post title in WP Admin's Job Listings page and template segments. (Props to @EhsanCod3r)


  • Enhancement: Add language using WordPress's current locale to geocode requests. (@jom)
  • Fix: Allow attempts to use Google Maps Geocode API without an API key. (@spencerfinnell)
  • Fix: Issue affecting job expiry date when editing a job listing. (@spencerfinnell, @jom)
  • Fix: Show correct total count of results on [jobs] shortcode. (@jom)


  • Enhancement: Warn the user if they're editing an existing job. (@donnchawp)
  • Enhancement: WP Admin Job Listing page's table is now responsive. (@turtlepod)
  • Enhancement: New setting for hiding expired listings from [jobs] filter. (@turtlepod)
  • Enhancement: Use WP Query's built in search function to improve searching in [jobs]. (@jom)
  • Fix: Job Listing filter only searches meta fields with relevant content. Add custom fields with job_listing_searchable_meta_keys filter. (@turtlepod)
  • Fix: Improved support for WPML and Polylang. (@jom)
  • Fix: Expired field no longer forces admins to choose a date in the future. (@turtlepod)
  • Fix: Listings with expiration date in past will immediately expire; moving to Active status will extend if necessary. (@turtlepod, @jom,
  • Fix: Google Maps API key setting added to fix geolocation retrieval on new sites. (@jom)
  • Fix: Issue when duplicating a job listing with a field for multiple file uploads. (@turtlepod)
  • Fix: Hide page results when adding links in the [submit_job_form] shortcode. (@jom)
  • Fix: Job feed now loads when a site has no posts. (@dbtlr)
  • Fix: No error is thrown when deleting a user. (@tripflex)
  • Dev: Plugins and themes can now retrieve JSON of Job Listings results without HTML. (@spencerfinnell)
  • Dev: Updated inline documentation.

See additional changelog items in changelog.txt

Upgrade Notice


Make job types optional! Date format improvements! Update today!

WP-Job-Manager open issues Ask a question     (View All Issues)
  • almost 3 years WC Paid Listings "My Job Packages" not show in My Account page
  • almost 3 years Display job category on default single job template
  • almost 3 years Define a Primary Column in CPT List Table
  • almost 3 years Move all actions and filters outside constructor functions
  • almost 3 years Geocoding transform the address in two languages
  • almost 3 years Use Registered Taxonomy Label for Singular Job Type Metabox Title
  • almost 3 years Set a placeholder for Job Types Multiselect
  • almost 3 years Date filtering and tags filtering in resume manager
  • almost 3 years addon "application" application form will not be displayed
  • about 3 years Add ability to pass post status through to get_job_listings
  • about 3 years Multilangual site (WPML) - Setting Pages only one page for all languages can be set
  • about 3 years Submit Job Form issue - Not saving correctly
  • about 3 years Search Job Titles Only (Not Descriptions, etc)
  • about 3 years Add Excerpt field to be used with Jetpack's Publicize
  • about 3 years Add an option to export job listings to .csv
  • about 3 years Date Format Options
  • about 3 years Indicate featured listings in Job Dashboard
  • about 3 years Empty categories shown in multiselect
  • about 3 years job category page not showing
  • about 3 years Set Company Logo Translation Bug with WPML
  • about 3 years Add body class on single job listings for filled positions
  • about 3 years Jobs being loaded only in default language
  • about 3 years RSS feed for resumes
  • about 3 years links changed for job_listing_type taxonomy?
  • about 3 years Allow pasting rich content into description fields
  • about 3 years Filter the job types filter args
  • about 3 years Suggestion - Option to change format of 'Posted Date'
  • about 3 years Improve appearance on mobile
  • about 3 years Re-assigning active job listings - Listing count not updating
  • about 3 years Can't upload new company logo for existing job posting on front-end
WP-Job-Manager open pull requests (View All Pulls)
  • Added HTML5 history management
  • Add jQuery datepicker to custom date-type input fields
  • Handed over size parameter to get company image.
  • Minor English tweak
  • Adds a job_feed_item hook
  • Updates github repo link in readme.txt
  • Fixes incorrect settings description.
  • Create to properly format readme on github in markdown
  • Stop using
  • Remove WPJM taxes from tag cloud
  • Allow resuming editing while pending payment
  • Update tested to version
  • Add view button for file input fields in admin (w/ dynamic support)
  • Start using `grunt-wp-i18n`
  • Don't Show Job Type Drop Down if There Are No Job Types.
  • Add Readme->Markdown processor
  • Include a filter to disable the Job Listings cache
  • Job post form categories are now properly cached and displayed
  • update/fix visibility declarations
  • Adding additional contributors
  • Add phpDocs to class properties
  • Enhancement / Date format setting
  • Set job_id to 0 instead of reading from the request array. See #690
  • Fix the_company_video unnecessary call to wp_oembed_get causing additional site load time
  • 669 optional job types
  • Add the wpml_object_id filter to aid multi language use of the plugin.
  • Remove Grunt POT
  • Warn the user if they're editing an existing job.
  • Add search values to the job_manager_get_listings_custom_filter_text filter
  • Add filter to "get_job_listing_types"
  • Move individual widgets to their own files
  • Add REST API Version Endpoint
  • Modify file path for multisite url support
  • Add filterable search-able meta keys
  • Expired listing inconsistency issue and additional settings
  • Allow AJAX searching to return JSON early
  • Allow linking to specific settings tab via hash in URL
  • Introduce REST API settings endpoint take 2
  • Add/edit job redirect hook#1298
  • use wp_ext2type to check if file is image to show upload image previe…
  • Add Job Listing Gutenberg block
  • REST API: Enable/Disable via setting (and filter)
  • Turn into Hybrid Extension
  • [WIP] Add Code of Conduct and Contributing documentation
  • Add usage tracking tests to main test suite
  • Add usage data for jobs created by guests
  • [WIP] Track system data
  • Fix the nonce check
  • Add job categories usage tracking
  • Add job types usage tracking
  • Remove test dependencies from usage data tests
  • Added new filter for job dashboard actions which allows success message
  • Add additional arg to job dashboard action hook to provide more context
WP-Job-Manager questions on Stackoverflow (View All Questions)
  • how to add custom search filter to jobs page in wp job manager.?
  • WP Job Manager: Creating a custom job search form
  • WP Job Manager - Manually trigger update search results
  • WP Job Manager - Show number of all search results found
  • Multiple keyword search (wp job manager)
  • WP-Job-Manager job preview not working
  • WP Job Manager - Orderby Customfield
  • Get nearest location in wp job manager plugin
  • Order by meta key Wp Job Manager
  • wp job manager custom filter
  • Wordpress theme removing comments. How to place them back (WP-job-manager)
  • Perform sorting in WP job manager applied job listing
  • WP job manager plugin, location search to search address only?
WP-Job-Manager list of languages used
WP-Job-Manager latest release notes
1.30.1 1.30.1

Release of 1.30.1

1.30.0 1.30.0

Release of 1.30.0

1.29.3 1.29.3

Release of 1.29.3

Other projects in PHP