Setting up the LinkedIn Publisher Plugin

Everybody knows LinkedIn and how important it can be to individuals or companies. It’s a huge business social network with millions of connected professionals.

Fortunately, LinkedIn has some services that will let you add their valuable professional content directly to your site.

The LinkedIn Publisher aims to be the tool that JobRoller users can use to take advantage of this. It uses LinkedIn’s Job Search API to search across LinkedIn’s job postings and display relevant results on your JobRoller job board site.

Some jobs can even earn you a referral bonus – so we’ve included styling options to help you highlight those listings.


To install and activate the plugin you must have your JobRoller theme activated. If you deactivate the JobRoller theme, the plugin will also be deactivated.

Via WordPress

  • Upload the LinkedIn Publisher plugin zip file on the ‘Add New’ plugins screen (see the ‘Upload’ tab) in your WordPress admin area and activate.
  • A new ‘LinkedIn’ tab should now be available on JobRoller’s ‘Integration’ page


  • Download the LinkedIn Publisher plugin from your account dashboard
  • Unzip it and upload the entire folder to the `/wp-content/plugins/` directory
  • Activate the plugin through the ‘Plugins’ screen in your WordPress admin area
  • A new ‘LinkedIn’ tab should now be available on JobRoller’s ‘Integration’ page

Configuring LinkedIn in JobRoller

Users that already use the Indeed integration with JobRoller will find the configuration page very familiar. There are some minor changes and additional options that help in retrieving more relevant jobs.

The main advantage over similar services is that LinkedIn uses their database to retrieve the most relevant jobs for each user. As this is the default behavior, you can skip job queries, or use them only to further refine results. Alternatively, you can choose which jobs to retrieve based on the Industry list.

Of course, to benefit from LinkedIn services you’ll need to have your site registered as an application on LinkedIn. This will grant you an API key and Secret key. Users will then be able to sign in directly on the job listings to view LinkedIn jobs.

Registering your site as an Application on LinkedIn

The LinkedIn Publisher plugin will not work until you get an API and Secret key. Follow these steps to register your site on LinkedIn and get the necessary keys:
  1. Register your application with LinkedIn on the developer portal.
  2. Create a new application (i.e: My-JobRoller-Site) and specify any required fields. You will also need to register the domain/website where you intend to run the plugin, in the site URL field. For example, if your site is, ‘’, you would enter ‘’ on the URL field. If you’re on a localhost you can add ‘http://localhost/my-jobroller-site’.
  3. Once you’ve completed those steps and submitted your new application, you will receive an API key and Secret key. Paste them in the respective fields on the LinkedIn-Publisher plugin settings page.
  4. A ‘Sign-In to LinkedIn’ button should now be visible on every listing you want to display LinkedIn jobs.
Register LinkedIn Application

Sign In to view LinkedIn Jobs

After correctly configuring the API and Secret keys, the ‘Sign-In to LinkedIn’ button will be visible to your site visitors:

with LinkedIn to View Jobs

Clicking the button will display the familiar LinkedIn login form:

with LinkedIn

LinkedIn generates and caches an access token valid for 60 days. Meaning that regular visitors won’t need to login every time they visit your site.

Main Options

  • API Key
    • Enter the API key for your site, on LinkedIn. Explained above.
  • Secret Key
    • Enter the Secret key for your site, on LinkedIn. Explained above.
  • Country (optional)
    • Enter the preferred country for site. For multi-region sites, you can specify multiple countries on the job queries field. This defaults to ‘US’ If no country is specified here or on the job queries field.
  • Industry (optional)
    • Select the Industry that best fits your site content to get relevant job results. This defaults to ‘Relationship to Member’, meaning that LinkedIn will try to display the most relevant jobs to the current signed in user.
These are the only options needed to have your site pulling jobs from LinkedIn. Continue reading if you need to further refine your results or if you want to give some CSS styling to some of the pulled jobs.


This section groups all the settings that allow refining results and that communicate with Linkedin about which jobs should be pulled from their database.

  • Pull x LinkedIn jobs
    • Enter the approximate number of jobs you want to pull from LinkedIn. This number merely indicates the maximum jobs that should be displayed and not an exact number.
  • Sort by
    • Select one of the sorting options from the drop-down list. Note that the sort order may impact your results.
  • Job listings queries
    • This is where you set which type of jobs should be displayed on your job board or where you further refine results based on the Industry you’ve selected. This is done by adding a job query per line, that describes the jobs to be displayed. There are several parameters available but you can set queries using only keywords. Below the field you can see several working examples.

Each query must be in the following format:
keywords [ OR keywords... ][|job type][|country][|postal code].

Square brackets [] denote optional parameters.


Retrieves Design Jobs of any job type from anywhere or from the country selected on the ‘Country’ field

design full-time
Retrieves Full-Time Design Jobs from anywhere or from the country selected on the ‘Country’ field

Refining results using Job Types (optional)

Although LinkedIn returns a job type (full-time, contract, etc..) for each job, it does not allow querying it’s database to retrieve only jobs from a given job type (i.e: return only part-time jobs), like Indeed does.

To circumvent this, we query the LinkedIn database using the job type as a keyword (i.e: design part-time). This means that only jobs containing that keyword part-time will be returned. Obviously, this can be error prone, as some jobs can contain the keyword part-time but have full-time as the job type.

LinkedIn Job Type using Keywords

To help minor incoherent results we provide an alternative way to refine results by job type by means of a ‘false’ parameter that uses a recognized LinkedIn job type (i.e: design|p). We consider it a ‘false’ parameter because it’s not used a query parameter request to LinkedIn but instead used to compare the returned job types.

Recognizable Linkedin job types:

 f  Full-Time,   Part-Time,   Contract,   Temporary,   Other

The ‘false’ job type parameter instructs JobRoller to retrieve a limited list of jobs of any job type, from LinkedIn and make sure to display only the jobs from that list, that match the requested job type. Supposing the query returned 10 jobs of any job type but only 2 jobs have their job type set to ‘p’ (part-time), and the others are ‘f’ (full-time) jobs, only the two ‘p’ (part-time) jobs would be displayed.

The list is limited to the number set on the ‘Pull X jobs’ field to avoid performance issues, so, if none of the jobs retrieved belongs to the requested job type, no results will be displayed.

Example (job type as keyword)

design part-time

Retrieves jobs containing the keywords ‘part-time’ and ‘design’

Example (job type as ‘false’ parameter)


Retrieves jobs containing the keywords ‘design’and make sure they match the request job type ‘p’ (part-time)

Example (Ignore job type)

design or design|*

Refine results using Country and Postal Code (optional)

You can further refine results by country and/or postal code. Only jobs from the country or postal code specified will be displayed. To refine results by country and/or postal code you must set the job type parameter. You can use '*' to get jobs from any job type.



Retrieves Design Jobs of any job type in the United States


Retrieves Design Jobs of any job type in Los Angeles, CA

Job Queries behavior explained

It’s important to note that the job queries data is used differently when displaying jobs on the front page, browsing jobs using the ‘Browse By’ widget or when searching jobs:

… on the Front Page

When users arrive at your front page they will see all the jobs pulled from LinkedIn, based on all your job queries data. That’s because they didn’t provide any filter, or haven’t searched for any jobs yet. JobRoller reads all your job queries data (keywords, job type, postal code, etc…) and sends that information to LinkedIn which in turn retrieves the relevant jobs.

… using the ‘Browse By’ navigation

Users can browse jobs by: job category, job type, job salary, etc. In this case, the filter they select takes priority over the related data on the job queries. For example, if you have only set job queries for the job types ‘Full-Time’ and ‘Part-Time’ but a user clicks ’Temporary’, this is the job type that will be sent to LinkedIn to retrieve the relevant jobs.

Job types are queried as ‘keywords’ using their job type slug, so make sure you provide valid job types that could be used on a job posting, on your site language (i.e: part-time, temps partiel, full-time, plein temps, freelance, etc...).

Filtering by job category works in the same way. You don’t need to create job queries for every category available on your job board to allow users to browse jobs by that category. Just create job queries for the categories you want to display on the front page and let JobRoller automatically retrieve jobs for any category that users browse.

This behavior allows minimum work from you to display the most relevant jobs to your site visitors.

Example 1

A user is browsing ‘Temporary’ jobs but you only have job queries for ‘part-time’ and ‘full-time’:

web designer|f|90001
web developer|p|90001

JobRoller will ignore your queries job types and use the other parameters to retrieve jobs with the keywords ‘Web designer’, ‘Web developer’ and ‘Temporary’, located in ‘Los Angeles’.

Example 2

A user is browsing ‘Architecture’ jobs but you only have job queries for ‘web design’ and ‘web developer’:

web designer|f|90001
web developer|p|90001

JobRoller will ignore your queries keywords and use the other parameters to retrieve ‘Architecture’, ‘Full-Time’ and ‘Part-Time’, jobs located in ‘Los Angeles’.

Filtering by Salary or Date is not available in LinkedIn.

… searching Jobs

Job searches behave similar to browsing jobs by job category. In this case, the keywords and the location used for the search will replace your job queries keywords and postal code, respectively.

Note that due to LinkedIn query limitations, location search will only work with postal codes.

Example 1

A user is searching jobs with the keyword ‘art director’ (location is empty) but you only have job queries for ‘web designer’ and ‘web developer’:

web designer|f
web developer|p

JobRoller will ignore your job queries keywords and use the other parameters to retrieve ‘Art Director’, ‘Full-Time’ and ‘Part-Time’, jobs located anywhere.

Example 2

A user is searching jobs with the keyword ‘art director’ and postal code ‘94035’ (Mountain View, CA) but you only have job queries for ‘web designer’ and ‘web developer’ in ‘los angeles, CA’:

web designer|f|90001
web developer|p|90001

JobRoller will ignore your job queries keywords, location and use only the job types to retrieve ‘Art Director’, ‘Full-Time’ and ‘Part-Time’, jobs located in ‘Mountain View, CA’.


Mappings allow you to relate your existing job types slugs with the job types slugs used on the LinkedIn queries. As you may know, JobRoller colorizes each job type based on the respective slug that at the same time is the CSS class name. So, if you change the job types slugs you also need to change their CSS class names.

  • Job types mapping:
    • Because you may need to use different job types on the job queries then the ones you already use with JobRoller, mappings makes it simple to relate JobRoller and LinkedIn slugs for pulled jobs or when users are browsing jobs by job type using the ‘Browse By’ navigation widget.

LinkedIn returns Jobs with the following job type slugs:

 f  Full-Time,   p  Part-Time,   c  Contract,   t  Temporary,   o  Other

Example 1

You use the default ‘full-time’ as your JobRoller ‘Full-Time’ slug but LinkedIn retrieves ‘full-time’ jobs with the slug,  p . To style these jobs correctly you would need the following mapping:


Job Type Mappings

Example 2

You want to style ‘c’ (contract) jobs as ‘freelance’. You would need the following mapping:


Job Type Mappings


This section allows you to style some of the LinkedIn retrieved jobs to give them better visibility. Some jobs can help you increase your site revenue as they earn you referral bonuses. Jobs from key companies, defined by you, can also be styled but it does not mean they will return extra revenue. Style these jobs to give them better visibility to your site visitors.

Jobs that earn referral bonuses, or belonging to key companies can be styled differently using these classes:

  • Sponsored Jobs Class
    • This CSS class name will be used on jobs that earn referral bonus. Enter a CSS class name to style these jobs.
  • Key Company Jobs Class
    • This CSS class name will be used on jobs from key companies. You can specify a list of key companies on the next field. Enter a CSS class name to style these jobs.
  • Key Companies
    • Add the companies whose jobs you want to highlight. Increase the value of your site to your visitors by giving these jobs better visibility.


The ‘Display’ section controls who can view LinkedIn jobs and when JobRoller should pull jobs from their database.

  • Visibility
    • Whether LinkedIn jobs should be displayed only to registered users or to any visitor.
  • Allow Revoke
    • If enabled, users can revoke their LinkedIn authorization at anytime.
  • Show results on the front-page
    • Enable this option to display LinkedIn jobs on the front page.
  • Show results when browsing
    • Enable this option to display LinkedIn jobs when users browse jobs using the ‘Browse By’ widget.
  • Show results when searching
    • Enable this option to display LinkedIn jobs when users search for jobs or only when no local results are found.
  • Results Position
    • Whether LinkedIn jobs should be displayed before or after the site jobs.


Caching allows you to increase your site speed when retrieving jobs from LinkedIn. Instead of doing remote calls each time a user visits your site, results can be cached and displayed faster for a set number of time. When the time expires, the results will be updated and cached again.

Caching is only used for the front page because results don’t rely on user filters or searches.


The LinkedIn-Publisher uses it’s own text domain for localization. The localization file (linkedin-publisher.po) is located inside the plugin /languages/ folder. You need to rename this file so that it includes your country locale. The locale is the language code and/or country code you defined in the constant WPLANG in the file wp-config.php.

For example, the locale for German is ‘de_DE’, and the locale for Danish is ‘da_DK’. The Danish .mo and .po files should be named “” and “linkedin-publisher-da_DK.po”. Both the .po and .mo files should be kept inside the /languages/ folder.

For more information on localization, please read this article.

Like this tutorial? Subscribe and get the latest tutorials delivered straight to your inbox or feed reader.

Your rating: none
Rating: 5 - 4 votes

Popular Add-ons

ClassiPress Video Embed

Allow users to embed video from YouTube & Vimeo into their ad listings…


Order Exporter

Export your order details to a CSV file. Fully customizable and works with…


PagSeguro Gateway

The Payment Gateway for well known Brazilian online payment system…