Indeed Integration

With Indeed there are two kinds of integration: export it allows to automatically send your jobs to Indeed and have them searchable at, import this allows to either import Indeed jobs into your own WPJB database or dynamically have the jobs fetched and displayed based on default and user search params. This article will cover both integrations.


WPJB automatically generates special XML file for Indeed. The Indeed server periodically pickups the files parses it and includes jobs in the file and makes them searchable to anyone from, usually you will want to use this integration in order to gain more exposure for your jobs.

Setting it up is pretty easy. First thing you need to do is find out your Indeed integration URL, you can do this from wp-admin / Settings (WPJB) / Aggregators and RSS Feeds panel (the URL will be something like ).

Copy this URL and submit it to Indeed here

Note that your Indeed feed will include only active jobs on your site, additionally in order to make sure the integration with Indeed will go smoothly make sure that your job board meets requirements listed here


Before you can import or backfill jobs from Indeed you need to signup for Publisher Key (or just login if you already have Publisher account, note this is not the same as normal Indeed account). In order to do that you just need email address and password. The Publisher Account is completely free to create and use.

Once you signup and login you should be taken to publisher panel. From there click on XML Feed tab and look for text “Your Publisher ID is ‘…’“. The ‘…’ should be a 16 digit number.

Copy your Publisher Key, on your site go to wp-admin / Settings (WPJB) / Indeed panel, paste it in Publisher API Key field and save the form. From now you can import jobs into your own database or dynamically backfill jobs list in the frontend.

What is the difference? The Import is an old way to get Indeed jobs on your site. It will periodically import jobs from Indeed into your own database. All the imported jobs will behave like any other job in WPJobBoard, except the Apply Online button on job details page will redirect to Indeed instead of showing job application form.

To learn more check our Scheduling Import article in knowledge base.

Backfilling on the other hand is a new import method (available since WPJB 4.3.4) recommended and approved by Indeed. When backfilling jobs are actually never imported into your own database, they are always dynamically pulled from Indeed servers based on context. For example if candidate is looking for “Web Development” jobs, WPJB will query Indeed for jobs related to “Web Development” and will display results relevant to user search. Additionally this method allows you to earn money when user clicks on a sponsored listing.

If you would like to setup old scheduled import, please see Scheduling Import documentation, how to setup backfilling is described below.


Once you have Publisher Key entered you can setup backfilling, there are following options / fields in Backfilling group

  • Enable Backfilling on jobs list. Check this checkbox if you want to show backfilled jobs on pages which are using [wpjb_jobs_list] shortcode.
  • Enable Backfilling in jobs search. Check this checkbox if you wish to show backfilled jobs on pages with [wpjb_jobs_search] shortcode.
  • Automatically insert Indeed attribution link. When you are displaying jobs from Indeed, you need to also show “Jobs by Indeed” link somewhere on site (according to Indeed TOS), you can do this manually by adding the link in content of the Page which will be displaying the Indeed results or check this checkbox, then Indeed attribution will be displayed when at least one of Indeed jobs is shown in the current jobs list.
  • Enable Indeed click tracking. Check this checkbox if you wish to have access to more detailed statistics about clicks made on Indeed jobs.
  • Backfill Max. (integer) Maximum number of Indeed jobs you wish to show.
  • Backfill When (integer) When to enabled backfilling. For example if you enter zero in this field then Indeed jobs will be loaded only if the jobs list is empty. Similarly if you enter 5, then Indeed jobs will be appended to results if the number of jobs pulled from WPJB DB is smaller than 5.

Aside of setting the backfilling options it is also good to set some default settings (in very least you should set default query / keyword). The defaults will be used when user did not enter any search parameters yet. In other words you can use the Default params to tailor the returned Indeed jobs to your job board niche.


Customize Indeed Import.

Customize data that will be used to import job into WPJB database.

add_filter("wpjb_indeed_item", "my_wpjb_indeed_item", 10, 3);
 * Prepare $object for import
 * @param stdClass $object Object that will be used for import
 * @param stdClass $item Information about job retrieved from Indeed 
 * @param Wpjb_Model_Import $import Currently run import information
function my_wpjb_indeed_item($object, $item, $import) {
    // customize $object here ...

    // always return object
    return $object

Customize Indeed Backfill (since WPJB 4.4.2).

This snippet explains how to modify Backfill query before it is sent to Indeed server, basically allowing you fine tune the returned search results.

add_filter("wpjb_indeed_query", "my_wpjb_indeed_query");
function my_wpjb_indeed_query( $args ) {
    $args["jt"] = "fulltime";
    return $args;

In the code above $args is an array with list of params which will be send to Indeed, by adding to this array element with key “jt” and value “fulltime” we are narrowing results to just full time jobs.

The full list of allowed arguments you can find Indeed publisher panel in part “Sample Request”.

Aside of modifying request you can also modify each returned result using wpjb_indeed_job filter.

add_filter("wpjb_indeed_job", "my_wpjb_indeed_job", 10, 2);
 * Prepare $object for display
 * @param Wpjb_Service_IndeedJob $job Stores information about single job 
 * @param array $query Data used to query Indeed server (the same as in previous snippet)
function my_wpjb_indeed_job($job, $query) {

 $tag = new stdClass();
 $tag->type = array();
 $tag->category = array();

 $type = new stdClass();
 $type->meta = new stdClass();
 $type->meta->color = null;
 $type->slug = "fulltime";
 $type->title = "Full-Time";

 $tag->type[] = $type;


 return $job;

The code above sets a job type and logo for ALL returned jobs.

  1. What fields are compulsary under “Defaults (default job search params)”?
    Can all fields be left out except Keyword, or does country etc also need to be specified?

    Also – how long does it take to have jobs backfilled? I have waited an hour without seeing any backfills.

    • Greg

      1. none of the fields are required, although it’s best to fill at least keyword so the jobs returned from Indeed by default will be at least somewhat related to your niche.

      2. jobs should appear on site instantly, they are not downloaded from Indeed, but rather when user in frontend will access page with [wpjb_jobs_list] shortcode jobs will by dynamically displayed (if criteria in Backfill configuration are met).

  2. Gary

    The “Backfill Max” option is missing on the Indeed configuration page in WPJB settings. (See BACKFILLING options above. The other options mentioned above are there.)

    I’m using WPJobBoard version 4.4.6.

    • Greg

      This option was removed in final WPJB release as the the max. results is basically equal to your “jobs per page” setting.

  3. Are there any SEO negatives to using backfill instead of Import?

    • Greg

      There are no negatives to using the backfilling, however when overusing Indeed import it is possible Google will no index your pages as the imported jobs are basically duplicate content.

Leave a Reply

Your email address will not be published. Required fields are marked *