View Categories

WordPress Plugin

The PCRecruiter Extensions plugin offers three ways to display your PCRecruiter jobs on your WordPress site. Choose the method that best fits your needs:

  • iFrame Embed – Quick and simple, embeds PCRecruiter’s job board by placing a pcrecruiter.net window into the page. All functionality and styling are controlled within PCR. The job search and listings are displayed within a single page on the WordPress site. Seamless to the jobseeker, easy to implement, but results in less friendly job URLs and sharing or SEO options.
    • The plugin also offers an RSS Feed feature, which periodically downloads an XML file of the current job openings into WordPress’s upload folder. This can be useful for pulling job data out for manipulation when not using the full sync function.
  • Full Job Sync – Advanced integration that syncs jobs to WordPress with searchable job pages. The job search and listings are handled by WordPress and are fully matched to the theming and structure of the website. More involved configuration and setup, but greater control and SEO capabilities. The ‘apply’ steps remain handled via iframe.
  • Custom Forms – The plugin can also embed Custom Forms, which are one-way registration forms to add contacts to the database or to trigger an iframe mode job search.

Requirements #

  • WordPress 5.0+ (WordPress 6.5+ recommended for Block Bindings feature)
  • PHP 7.4+
  • MySQL 5.6+ with InnoDB storage engine (for fulltext search support)

NOTE: In full sync mode, the plugin creates a fulltext index on your WordPress database during activation to enable fast keyword searching. If your hosting doesn’t support fulltext indexes (rare), keyword search will still function but may be slower on large job databases. The iframe mode does not interact with the WordPress software or database at all, and only adds HTML and JavaScript to the page when loaded.

Installation #

  1. Install from WordPress.org:
  2. Or install via upload:

iFrame Method (Basic) #

The iFrame Embed method displays your PCRecruiter Job Board inside an inline frame on your WordPress page — essentially a sub-browser window inside of the careers page. The job board remains hosted entirely on PCRecruiter’s servers, and the plugin simply shows that content in an auto-sized block on the page of your choosing.

In this setup, all of the individual job links will begin with your given page URL (mysite.com/careers/) followed by a long encoded string that tells PCR’s frame which job to load. This can lead to some drawbacks in regards to SEO and link sharing, but is a very simple and effective method of placing the job board into the site with minimal effort.

1. Work with PCR to configure your Job Board #

Because the job board in the iframe setup is entirely handled on the PCRecruiter servers, the first step will be to work with your PCR account team to get the job board configured to show the data you intend it to and styled to match your website.

2. Create / Edit Your Jobs Page #

  1. Go to Pages → Add New or Edit your existing careers page.
  2. Add the shortcode to the page content:
[PCRecruiter link="YOUR-DATABASE-ID"]

Replace YOUR-DATABASE-ID with your actual database ID, which is typically the name of the database followed by a period and the account ID. (e.g. Recruiting%20Database.RecruitingAgency)

  1. Click Publish

3. View Your Job Board #

Visit the page you just created – you should see your PCRecruiter job board embedded in the page.

Notify your PCRecruiter representative that the job board has been published so that the live URL can be logged in the Job Board Landing Page settings and added to the list of active job boards. If your Landing Page URL changes, you will need to update it in System >> Job Board >> Landing Pages for your URLs to function properly.

iFrame Troubleshooting #

  • If the iframe appears but shows says “invalid database”, verify that you have the correct database ID. If it looks correct, switch to “Code editor” view in WordPress and make sure that no HTML tags or unexpected characters appear in the shortcode.
  • If the iframe does not appear, you may have a page optimization plugin (WP Rocket, Autoptimize, LightSpeed, etc.) that is deferring the javascript or ‘lazy loading’ the iframe. Try disabling the plugin to see if that is the cause. If it is, check your optimization plugin’s documentation for details on how to exempt the pcrecruiter.net code, or to exempt your selected jobs page from its effects.

Custom Forms #

To use the plugin for embedding a Custom Form, append the ‘form=’ parameter with the ID of the form.

[PCRecruiter link="YOUR-DATABASE-ID" form="123"]

Optional RSS Feed #

The RSS Feed feature loads the dynamic XML feed of your job data from the PCRecruiter system and stores it as a static file in your WordPress site. This is completely optional and separate from the iFrame or Full Sync methods.

This is typically used in cases where the iFrame method is being used for embedding the PCR Job Board, but the job data or URLs need to be parsed by some feature in WordPress, such as an import utility, featured listings widget, etc.

1. Get Your PCR SessionID #

Contact PCRecruiter support to have a Session ID generated for you.

2. Enable the Feed #

  1. Go to Settings → PCRecruiter Extensions
  2. Find “PCRecruiter Feed Settings”
  3. Check the “Job Feed Enabled” box
  4. Paste your PCR SessionID in the text field

3. Configure Update Frequency #

Choose how often the feed refreshes. These settings use WordPress’s built-in timing (WP Cron) and can vary based on traffic to the site. The given timings are general.

  • Hourly – Best for high-volume hiring
  • Daily – Recommended for most users (less server load)
  • Twice Daily – Good balance

Use the Update Feed Now button to trigger an immediate download without waiting for the next automated sync.

4. Configure Fields and Query (Advanced) #

The query and fields are passed through the PCRecruiter API and converted to XML. This utility is limited solely to the Positions endpoint and cannot retrieve contacts, users, or other data outside of the job record. The fields and queries follow the API documentation.

Standard Fields: Enter comma-separated field names such as:

PositionId,JobTitle,City,State,JobType,MinSalary,MaxSalary

Custom Fields: Add any Position Custom Fields from your PCRecruiter database:

CustomField1,CustomField2

Query: Filter which jobs appear in feed.

Status eq Available and ShowOnWeb eq true and (NumberOfOpenings ne 0 OR NumberOfOpenings eq '')

Mode:

  • Job Link – The links in the feed go to job detail pages
  • Apply Link – The links skip the detail and go directly to apply steps

5. Save Settings #

Click “Save Changes” at the bottom of the page.

Once enabled, your job feed XML is available at:

https://yourwebsite.com/wp-content/uploads/pcrjobfeed.xml

The plugin also generates a JSON format at:

https://yourwebsite.com/wp-content/uploads/pcrjobfeed.json

Full Job Sync Method (Advanced) #

IMPORTANT: This method directly alters and updates your WordPress database. We highly recommend backing up your website and/or working with a development setup as a precaution before implementing the Full Sync.

Full Job Sync creates a true WordPress integration where jobs from PCRecruiter are synced to your WordPress database as individual posts. Each job gets its own WordPress page with a unique URL, making them searchable, SEO-friendly, and fully customizable with your theme.

NOTE: The plugin enables a fulltext index on your WordPress database when first activated, which allows all keyword searching to be directly managed by WordPress. If your hosting doesn’t support fulltext indexes (rare), keyword search will still function but may be slower on large job databases.

In the WordPress admin, you will see a “Jobs” item in the left sidebar. Each job is a WordPress post with all of the data synced from PCR based on the fields included in the PCR Job Board configuration.

Because this setup pushes the jobs into WordPress and uses WordPress to search and display them, the appearance and function of the job board is configured partly in PCR and partly in WordPress. This setup is, consequently, more complex and requires coordination of the website and PCR configuration.

Upgrading from Version 1.x: Settings from older versions are automatically migrated when you upgrade. iFrame and RSS feed functions are the same in 2.0 and no manual action is required.

If you are switching from the iFrame method to the Full Sync, you may ask PCR Support create a secondary configuration (aka ‘duplicate Data Location’) to allow the existing iframe method to carry on working while the sync version is built, and to have the ‘jobboarddev’ serial added to make sure no URLs are updated before launch.

Once launched, the plugin will attempt to redirect links for the old iframe URLs to their new equivalents.

WordPress Sync Setup #

1. Create Your Job Board Page #

(If you already have a careers page, you can use that rather than creating a new page.)

  1. Go to Pages → Add New
  2. Give it a title (e.g., “Careers”)
  3. Add the ‘jobmanager’ shortcode. Note that this is a different code than the database id version used for the iframe method.
[PCRecruiter link="jobmanager"]
  1. Click Publish

2. Generate Security Token #

  1. Go to Settings → PCRecruiter Extensions in WordPress’s menu.
  2. Scroll to “Job Board Sync Settings”
  3. Click “Generate Key” button
  4. A 256-character security token will appear in the text box
  5. Click “Save Changes”
  6. Copy the security token – you’ll need it for step 2

Important: Keep this token secure – it acts as the password authorizing PCR and WordPress to connect with each other.

3. Configure PCRecruiter WordPress Sync #

This step requires administrator level access to your PCRecruiter database.

  1. In PCRecruiter, go to: System → Job Board → WordPress Sync Settings
  2. Enter your WordPress information:
    • Page URL Containing PCR Job Board Shortcode: The URL of the careers page you created/edited in Step 1. (The sync may work even if the shortcode is missing from the page, but the job search/list will not be rendered and only direct /jobs/ links will function.)
    • Security Token: Paste the token from Step 2
  3. Other sync settings:
    • Sync Type:
      • Full Sync: Sends all jobs and screen configurations from scratch. Jobs will sync to WordPress within 5-15 minutes of initial configuration, depending on job quantity, site speed, and queues.
      • Differential Sync: Sends only changed jobs since the last run (new, modified, or deleted). Once a Full Sync has been run, subsequent synchronization is Differential. NOTE: If the Job Detail screen layout has been altered, a Full Sync may be required.
      • Disable: Turns off the sync.
      • Disable and Delete: Turns off the sync and deletes all the job postings from this database in WordPress.
      • Error Has Occurred: This means the last sync attempt failed. This could be related to issues with your configuration, a change in the URLs on WordPress, etc. and will require troubleshooting.
    • Use this database to sync Result and Search settings: The plugin can sync data from more than one database if the same Jobboard Security Token is copied into multiple databases. In these cases, only one database should be used to set the templates and other settings. This dropdown can be used to designate the database as a ‘child’ so that its settings / templates are not synced to the site.
    • Display Company Info on Job: If you are using the Company Name in postings or Schema data, this dropdown determines whether the plugin pulls in the Company Name from the company containing that Position in PCR or the default company name from System → Database Setup → Organization Details.
    • Title Override Field: By default, the plugin will use the Job Title from the Position record. This dropdown allows the configuration to pull a Position Custom Field value in place of the stock title. Because the title is used as a ‘slug’ in WordPress, a custom field can be a helpful backup in scenarios where multiple jobs have identical titles, or you want more direct URL control. If a given job does not have the designated field, the stock Job Title will be used.
    • Radius Search Locale: If a radius search is in use, this dropdown designates which country’s lookup it should use. The default is United States.
    • Last Sync Date and Time: Indicates the most recent successful sync.
    • Percent Complete: Indicates the progress of the current or most recent sync.
  4. Save settings

Other Plugin Options: #

Settings → PCRecruiter Extensions

  • Job Board Page URL – Enter the full URL of your primary job board page (where the [PCRecruiter link="jobmanager"] shortcode is placed). This URL is also used as the redirect location for visitors who land on the /job/ directory.
  • Pagination Style
    • Paged – Shows page numbers on desktop, Previous/Next buttons on small screens.
    • Simple – Previous/Next buttons only.
    • Show Job Count – Check the box to display a total count and current page count (e.g., “Showing 1-25 of 150 jobs”).
  • Job Not Found Page – When a job is gone, the site will return WordPress’s standard 404 Error. If you want to direct people to a specific page when they reach a 404 for a /job/ URL, such as a custom message page or the main job listing, enter the relative URL path.
  • Expired Job Handling – By default, jobs that are no longer available in PCR are automatically removed from WordPress. In some cases, you may wish to keep expired jobs on the site for SEO or candidate visibility. When activated, unavailable jobs are marked as ‘expired’ in WordPress rather than being removed. Expired jobs do not have an ‘apply’ button and get .job-status-expired and .pcr-expired-job classes added for styling, as well as a ‘filled’ notice on the page. Expired positions are excluded from search features.
  • Job Title & Image Tags
    • The title settings govern how the page title appears in the browser tab, search results, and link shares. The Job Title is always included, but you can also append city, state, country, Position ID, Job Type, and Company Name to it via these checkboxes.
    • If your site builder does not honor the Title Tag settings, the ‘Force Titles’ checkbox attempts to override it.
    • Use Position/Company logos from PCR (see SEO Features)
  • Strip Inline Styles – Job descriptions in PCRecruiter can contain full HTML which may conflict with your site’s CSS. Checking this box removes inline styles (i.e. style=”color: red”) from all elements in the description during sync to preserve font, color, and size control on the WordPress side.
  • PCRecruiter Attribution – A small ‘PCRecruiter’ attribution link appears below job listings. You may uncheck this box to omit it.

Regardless of Pagination choice, page numbers will be shown only if the number of jobs exceeds one page of results.

Shortcode Variations #

Standard Public Job Board #

[PCRecruiter link="jobmanager"]

Displays all jobs that meet these criteria with configured search form above them:

  • Status = Available/Open
  • Show On Web = Show
  • Number of Openings > 0

Filter by Job Category #

[PCRecruiter link="jobmanager" jobcategory="Sales"]

If a Position Custom Field called “Job_Category” exists in the configuration, the ‘jobcategory=’ shortcode parameter filters the listing to only those jobs matching the given value. This can be helpful if you want to insert the PCR listings into separate pages by category.

Internal Job Board #

[PCRecruiter link="internaljobmanager"]

Includes jobs with Status = ‘Internal Only’ in the listing in addition to ‘Available/Open’.

If you want to prevent public viewing of these jobs, make sure this page is not linked to the rest of the site or, better still, apply IP restrictions or password-protection.

The internal board automatically attempts to keep search engines from indexing the content via meta tags and cookies, but for high security it is best to apply other measures within WordPress.

Understanding Synced Jobs #

Job Pages #

The sync creates page for each job using a ‘job’ custom post type in WordPress. Each synced job automatically gets:

  • Unique URL: yoursite.com/job/the-job-title-field/
    • PCR will store this URL in an auto-generated Position Custom Field called STAT_Permalink so that it is accessible for PCR share tools and job feeds. PCR also stores a STAT_Counter field with a raw count of page loads for the job.
  • Title: The Job Title from PCRecruiter
  • Content: Full job description with HTML formatting as entered in PCR. If inline styling is applied to the job description in PCR, it may take precedence over the site’s CSS. A checkbox in the settings screen allows the plugin to strip styling during the sync for consistency.
  • Metadata: Location, salary, type, industry, custom fields, etc.
  • Apply Link: When clicked, opens the PCRecruiter application form in a seamless iframe on the page by appending /?apply=y to the job’s URL.

Search query parameters are in the URL, so that visitors can bookmark their searches, share the search links, and use back/forward buttons without resubmitting the search.

Legacy URL Migration

When migrating from iframe to full sync, the plugin automatically redirects legacy ?recordid=XXXXX URLs to the corresponding WordPress job permalink. This preserves SEO value and prevents broken links from bookmarks or external sites.

If you are already using the PCR Job Board in an iFrame and are developing the Full Sync WordPress integration on a secondary configuration, you will want to add the code jobboarddev to System > Add-Ons > Serial Number. This will prevent the sync from writing any STAT_Permalink fields until you are ready to launch.

Viewing Jobs in WordPress Admin #

Navigate to Jobs in your WordPress admin sidebar to:

  • See all synced jobs
  • View individual job details
  • Check page view statistics (stored in job metadata)

Note: If you edit synchronized job data directly in WordPress the changes will be overwritten on next sync. Always edit job content in PCRecruiter. Any data in the job which did not come from PCRecruiter’s sync, such as Featured Image, Yoast SEO data, or other enhancements, can be edited in WordPress and will not be affected by future sync actions.

How Sync Works #

  • Frequency: Jobs sync automatically when they are created, updated, or deleted in PCR. If changes have been made to the Job Board configuration in PCR, they will be updated the next time a job is altered. For some job board config changes, a Full Sync may be necessary.
  • Cache: Search results are cached for 5 minutes in WordPress to improve performance. This cache clears automatically whenever a sync from PCR occurs.
  • Dates: The job’s post date in WordPress will match the ‘Date Posted’ field on the job in PCRecruiter. The plugin adjusts the display values to the visitor’s timezone when available via browser detection. The ‘Last Modified’ date is synced as a Meta field in WordPress for display or use if needed.

Source Tracking & Analytics #

Unlike the iframe method, the Job Sync creates pages within your WordPress site. Consequently, visits to the job list or the individual positions will be trackable with tools like Google Analytics or other on-site tracking.

When the candidate clicks ‘Apply’, ?apply=y is appended to the page, which replaces the job description with the PCR iframe containing that job’s application.

The plugin attempts to capture the applicant’s source by looking at the URL for:

  • Google Ads campaigns parameters in the URL
  • &src= parameters in the URL
  • The browser’s referring domain tracking.

PCR will store any &src= value or &utm_source= value in a custom field called Referrer on the newly generated Name record. If other Google UTM parameters exist, they will be stored in custom fields as well.

SEO Features #

The Full Job Sync method includes several built-in SEO enhancements for job posts:

Meta Tags & Social Sharing #

The plugin automatically generates the following for each job post:

  • Meta Description – Generated from the job description, optimized for search results
  • Open Graph Tags – For Facebook and LinkedIn sharing (og:title, og:description, og:image, og:url).
    • If you have a Position Logo associated with the job in PCR, or a Company Logo associated with its parent record, you may tell the plugin to use that as the ‘share’ image for the job’s page by enabling ‘Use Position/Company logos from PCR’. These images should be at least 1200x630px for optimal social sharing, 1.91:1 aspect ratio. PCR can support jpg or png images up to 1024kb as logo images. If this box is not checked, the share image is governed by your theme, page template, or SEO plugin settings.
  • Twitter Card Tags – For Twitter/X sharing with large image cards

If you have an SEO plugin like Yoast SEO or Rank Math installed, the plugin respects any custom titles or descriptions you set manually for individual jobs.

Popular themes and page builders including Divi, Elementor, Beaver Builder, Avada, and Astra may override Job Titles as well. The plugin attempts to set proper page titles for job posts, but you may attempt to ‘Force Titles’ from the Settings if you wish.

Schema Mapper #

For more control over JobPosting structured data, which is used by Google Jobs and other services, the plugin includes a Schema Mapper interface at Jobs → Schema Mapping. If the Schema is not mapped, jobs may rely on your site’s native functions or SEO plugins for Schema instead.

  • Schema Audit – Indicates how many jobs have valid and invalid schema. Jobs that are missing required fields will not be given a schema object. If any jobs are missing required fields, up to ten examples will be shown.
  • Schema Preview – Select a position to preview the Schema object or to pass it to the Google validator.
  • Schema Mapping – Map your job post fields to schema.org JobPosting properties. Jobs missing the Required fields will not get Schema. For each field, you may pull the data from the Job post field, set a ‘global default’ value for all jobs, or call a custom PHP function (e.g., format salary, convert dates) from your site’s functions.php.

XML Sitemap Integration #

Job posts are automatically added to your site’s XML sitemap for better search engine indexing. The plugin integrates with:

  • WordPress Core Sitemaps (WordPress 5.5+)
  • Yoast SEO Sitemaps
  • Rank Math Sitemaps

Internal-only jobs are automatically excluded from all sitemaps to prevent them from being indexed by search engines.

Styling and Customization #

The selection of fields, search form, screen layouts, etc. are all configured in the PCR Job Board settings area. If you are using the ‘Full Job Sync’, the layout and styling of the search/list screen and individual job pages will be affected by the style from your WordPress theme. The ‘apply’ process is in an iframe and will not pick up any CSS from your theme.

Job Detail Pages #

When someone clicks a job from the search results, they’re taken to a dedicated job page in the /job/ URL path (this is a ‘custom post type’ called ‘job’).

The job postings will use the ‘single.php’ template from your WordPress theme by default, but you can override this by creating a custom template in your child theme called single-job.php and adding .single-job rules into your site’s CSS.

Site builder frameworks (e.g. Divi) may also allow you to create a custom template for the ‘job’ post type within their own interface.

For WordPress 6.5 and higher, the plugin adds a PCRecruiter Job Fields sidebar panel to the block editor. This allows you to bind Gutenberg blocks directly to job field data without writing code:

  1. Edit a job post or the job single template in the Site Editor
  2. Look for the PCRecruiter Job Fields panel in the sidebar (hexagon icon)
  3. Select a Paragraph, Heading, Image, or Button block
  4. Choose a field from the dropdown and click Apply Binding

The block will dynamically display the selected field’s value for each job. Available fields are organized into Position Fields, Company Fields, and Custom Fields categories.

CSS Selectors #

The CSS classes and IDs for your job board will be dependent on the configuration in PCRecruiter, but the following are always used:

  • The job listings page uses #pcrbox and .pcr-wordpress on the container.
  • Individual job pages receive body classes based on status:
    • .job-status-active – For active, available jobs
    • .job-status-expired and .pcr-expired-job – For expired or closed jobs
  • Pagination:
    • .pcr-pagination = the container div
    • .btn-pagination = the page buttons
    • .pcr-prev-btn / .pcr-next-btn = the next and previous page buttons
    • .pcr-page-btn.active = the currently active page
    • .pagination-info = “showing x of x jobs” message

Plugin Deactivation #

When you deactivate the PCRecruiter Extensions plugin, you’ll be presented with a modal dialog offering options to control what happens to your data:

Settings Options:

  • Keep Settings (recommended for temporary deactivation) – Preserves all plugin configuration including API tokens and templates
  • Delete Settings – Removes all plugin configuration

Job Postings Options: (Full Sync Method)

  • Keep Job Posts (recommended) – Preserves all synced jobs in WordPress
  • Delete All Job Posts – Permanently removes all job postings and their metadata

RSS Feed Files Options: (Optional RSS)

  • Keep RSS Feed Files – Preserves pcrjobfeed.xml and pcrjobfeed.json
  • Delete RSS Feed Files – Removes feed files from uploads folder

For destructive options (deleting settings, jobs, or RSS files), you must type “DELETE” to confirm. This cleanup process helps maintain a clean WordPress installation while giving you control over data retention.

Troubleshooting #

Full Sync Issues #

  • Jobs not appearing/updating within a few minutes:
    • Check PCR’s WordPress Sync panel for ‘Error’ status, which may indicate a problem with the configuration:
      • Verify the security token in both WordPress and PCRecruiter match exactly.
      • Check that the Job Board Page URL in the PCRecruiter Extensions WordPress settings and in the WordPress Sync in PCR’s System area point to the correct URL.
      • Check the configuration screens for Results, Details, Search, and Style for invalid code.
      • If all appears to be valid, contact PCR Support for assistance.
  • Slow search performance: The plugin creates a fulltext index during activation. If your hosting doesn’t support this (uncommon), search may be slower. Contact your host about MySQL fulltext index support.
  • 404 errors on active job pages: Go to Settings → Permalinks and click “Save Changes” to flush rewrite rules. Check the PCR Extensions settings and enter a valid redirect URL for removed postings to go to.
  • Cached search results: Search results are cached for 5 minutes. This cache should clear automatically if a job sync occurs. If you’ve just synced jobs and don’t see changes, wait a few minutes or trigger a new sync from PCRecruiter.