LinkedIn Jobs API
Emmanuel Uchenna

Emmanuel Uchenna @eunit

About: Emmanuel is an experienced and enthusiastic software developer and technical writer with 5+ years of professional experience. He focuses on full-stack web development.

Location:
Earth
Joined:
Nov 30, 2018

LinkedIn Jobs API

Publish Date: Aug 6 '22
42 9

Outline

  • Introduction
  • What you will learn
  • What you can use LinkedIn Jobs API for
  • How to get access to LinkedIn Jobs API
  • Getting started with access
  • Job Posting Categories
  • Posting job details
  • Limitations of LinkedIn Jobs API
  • Further readings

Introduction

LinkedIn's Job Posting API enables authorized third parties such as clients, ATS systems, and job distributors to post jobs directly to LinkedIn on behalf of customers. Jobs that are already created externally on ATS, company size, or job board can be automatically ingested by LinkedIn. LinkedIn provides various solutions to ingest such jobs to your customers, partner ATSs' and Job Distributors.

LinkedIn Job Posting API

What you will learn

In this article, I shall walk you through understanding what LinkedIn Job Posting API is all about, how you will integrate LinkedIn's Jobs Posting API to your ATS to directly post job openings to LinkedIn.

What you can use LinkedIn Jobs API for

The LinkedIn Job Posting API allows members who use it (authorized third parties such as clients, ATS systems, and job distributors) to automatically post jobs to LinkedIn from their Applicant Tracking System (ATS), instead of manually posting via their LinkedIn Recruiter account. This API is typically utilized by recruiter clients who are currently using a job distribution tool. It allows them (people) to post a job to various sites at one time, including LinkedIn. ATS partners no longer need login or password information to post on behalf of clients.

The LinkedIn jobs API in simple terms is used to publish jobs on LinkedIn on behalf of the hiring organization, making it simpler for recruiters to find candidates who are a good fit for their open positions.

It is, however, important to point out that this feature is not available to Recruiter Online or Recruiter Lite accounts.

How to get access to LinkedIn Jobs API

The use of LinkedIn's APIs is restricted to those developers approved by LinkedIn. In order to get access to LinkedIn's Jobs APIs, you will need to reach out to your LinkedIn Relationship Manager or Business Development contact as you will need to meet certain criteria and sign an API agreement with data restrictions to use this integration. If you are not yet a LinkedIn Talent Solutions Partner, please complete the LinkedIn Talent Solutions Partner Request Form.

There are several restrictions or obligations you need to be aware of from LinkedIn. These include but are not limited to:

  • Acknowledging that LinkedIn acts as a passive conduit for the online distribution and publication of job listings and LinkedIn is not responsible for screening or monitoring job listings. Jobs posted to the LinkedIn Service (including via the LinkedIn APIs) may be posted only for lawful purposes by individuals and employers seeking employees.
  • You will ensure that you agree to the LinkedIn Jobs Terms and Conditions before posting any jobs to the LinkedIn Service via your partner’s application and shall have a method of keeping track of which of its customers have agreed to the LinkedIn Jobs Terms and Conditions and when and shall furnish such information to LinkedIn upon request.
  • Shall not market any job listings to be distributed via LinkedIn or its syndication network as a "free way to post jobs to LinkedIn" or anything substantially similar in any marketing or sales materials. Please refer to a comprehensive list of these conditions.

Getting started with access

You must be granted access to test resources and have your API applications enabled to access the job posting API endpoints before you can start developing. The actions listed below must be taken to seek access to use the LinkedIn Job Posting API:

  • For the integration, create API applications. Per integration, you are allowed to create two API applications: one for use in production and the other for testing and development. Please contact the LinkedIn Business Development point of contact to fill up the Partner Onboarding Form.

Job Posting Categories

The following two job categories broadly define the ways to post jobs on LinkedIn:

  • Basic Jobs - These are free job posts gathered by LinkedIn from external sources such as ATS, job boards, distributors, and aggregators across the web to create a comprehensive job-seeking experience for LinkedIn members. Basic jobs can be posted using Job Postings API or XML feeds.

  • Promoted Jobs - These are paid job postings. You can directly post promoted jobs using Job Postings API. For customers with paid job slots, the API allows posting jobs directly into their job slots.

Posting job details

To create a job, post the job by providing a unique externalJobPostingId value and set the jobPostingOperationType as CREATE.

API Endpoint

Use the following endpoint to submit a task to create, close, update, or renew one or more jobs asynchronously:

POST https://api.linkedin.com/v2/simpleJobPostings
Enter fullscreen mode Exit fullscreen mode

API Authorization

All requests below require access tokens obtained via the OAuth2.0 Client Credentials flow.

Sample Request for Basic Jobs

To publish a job as a free job, you need to provide the listingType field value as BASIC.

API Header:

The header for making the request is X-Restli-Method: batch_create.

Authorization: Bearer {token}
x-restli-method: batch_create
Enter fullscreen mode Exit fullscreen mode

Sample Request Body:

{
 "elements": [{
   "integrationContext": "urn:li:organization:2414183",
   "companyApplyUrl": "http://linkedin.com",
   "description": "We are looking for a passionate Software Engineer to design, develop and install software solutions. Software Engineer responsibilities include gathering user requirements, defining system functionality and writing code in various languages. Our ideal candidates are familiar with the software development life cycle (SDLC) from preliminary system analysis to tests and deployment.",
   "employmentStatus": "PART_TIME",
   "externalJobPostingId": "1234",
   "listedAt": 1440716666,
   "jobPostingOperationType": "CREATE",
   "title": "Software Engineer",
   "location": "India",
   "workplaceTypes": [
    "remote"
   ]
  },
  {
   "integrationContext": "urn:li:organization:2414183",
   "companyApplyUrl": "http://linkedin.com",
   "description": "We are looking for a passionate Software Engineer to design, develop and install software solutions. Software Engineer responsibilities include gathering user requirements, defining system functionality, and writing code in various languages. Our ideal candidates are familiar with the software development life cycle (SDLC) from preliminary system analysis to tests and deployment.",
   "employmentStatus": "PART_TIME",
   "externalJobPostingId": "1234",
   "listedAt": 1440716666,
   "jobPostingOperationType": "CREATE",
   "title": "Software Engineer",
   "location": "San Francisco, CA",
   "workplaceTypes": [
    "hybrid"
   ]
  },
  {
   "integrationContext": "urn:li:organization:2414183",
   "companyApplyUrl": "http://linkedin.com",
   "description": "We are looking for a passionate Senior Software Engineer to design, develop and install software solutions. Software Engineer responsibilities include gathering user requirements, defining system functionality, and writing code in various languages. Our ideal candidates are familiar with the software development life cycle (SDLC) from preliminary system analysis to tests and deployment.",
   "employmentStatus": "PART_TIME",
   "externalJobPostingId": "789",
   "listedAt": 1440716666,
   "jobPostingOperationType": "CREATE",
   "title": "Senior Software Engineer",
   "location": "San Francisco, CA"
  }
 ]
}
Enter fullscreen mode Exit fullscreen mode

Limitations of LinkedIn Jobs API

The LinkedIn jobs API is constantly evolving. One of the biggest drawbacks of this API is that, when you sign up as a developer to gain access to the API, LinkedIn grants you a limit of 100,000 API calls per day. However, if you run different scripts, you will eventually get stopped after 300 calls with an error stating that the throttle limit exceeds.

Meaning of throttles

API throttling is the process of limiting the number of API requests a user can make in a certain period. To prevent abuse and ensure service stability, all API requests are rate-limited.

Rate limits specify the maximum number of API calls that can be made in 24 hours. These limits reset at midnight UTC every day.

There are three types of throttles applied to all API keys:
Application throttles: These throttles limit the number of each API call your application can make using its API key.
User throttles: These throttles limit the number of calls for any individual user of your application.
Developer throttles: For people listed as developers on their API keys, they will see user throttles that are approximately four times higher than the user throttles for most calls. But your users will experience the User throttle limits, which are lower.
These rate limits can be extended or the throttling limits can be increased to give developers more space to explore and build things for the user.

Further readings

Follow me on Twitter eunit99 for more contents.

Comments 9 total

  • АнонимOct 3, 2022

    [hidden by post author]

  • Sirojiddin Ismoilov
    Sirojiddin IsmoilovNov 23, 2022

    Hi there. I used information below but why I get ({
    "serviceErrorCode": 100,
    "message": "Not enough permissions to access: POST /simpleJobPostings",
    "status": 403
    }) response, Please help me

    • AymenNF
      AymenNFJun 9, 2023

      Hey, i have the same problem, if you have fixed it can you help me on it please?

      • Deepaksakthi V K
        Deepaksakthi V KMay 23, 2024

        Hi brother, did you fix the issue?

        • Emmanuel Uchenna
          Emmanuel UchennaMay 27, 2024

          Check out this LinkedIn Job Postings scraper to get the latest LinkedIn job postings.

          It is designed for both personal and professional use, simply enter your LinkedIn job search page URL to extract tailored job titles, companies names, locations, job URL and more. This scraper handles infinite scrolling and exports data to any format such CSV, JSON, XML and more.

      • Emmanuel Uchenna
        Emmanuel UchennaMay 27, 2024

        Check out this LinkedIn Job Postings scraper to get the latest LinkedIn job postings.

        It is designed for both personal and professional use, simply enter your LinkedIn job search page URL to extract tailored job titles, companies names, locations, job URL and more. This scraper handles infinite scrolling and exports data to any format such CSV, JSON, XML and more.

    • Deepaksakthi V K
      Deepaksakthi V KMay 23, 2024

      I do get the same error!!

  • Vikash Tiwari
    Vikash TiwariAug 29, 2023

    Hi,
    I'm facing Same Issue..
    ({
    {
    "serviceErrorCode": 100,
    "message": "Not enough permissions to access: POST /simpleJobPostings",
    "status": 403
    }

  • Kautilya Vaidya
    Kautilya VaidyaNov 27, 2024

    {
    "status": 403,
    "serviceErrorCode": 100,
    "code": "ACCESS_DENIED",
    "message": "Not enough permissions to access: simpleJobPostings.CREATE.NO_VERSION"
    }

Add comment