Getting error while using Job Posting API '/v2/simpleJobPostings' : Not enough permissions to access: simpleJobPostings.BATCH_CREATE.NO_VERSION

I’m working on integrating LinkedIn’s API for posting jobs, and I’m encountering an issue with the '/v2/simpleJobPostings' endpoint. I have the following setup :

  • Client ID and Client Secret have been generated.
  • I’ve added the following products to my app:
    • Share on LinkedIn
    • Advertising API
    • Sign In with LinkedIn using OpenID Connect
  • I’m using OAuth 2.0 with the “Member authorization code (3-legged)” flow.
  • The token has the following permissions :
email, openid, profile, r_1st_connections_size, r_ads, r_ads_reporting, r_basicprofile,
r_organization_admin, r_organization_social, rw_ads, rw_organization_admin,
w_member_social, w_organization_social
  • I’m making a POST request to https://api.linkedin.com/v2/simpleJobPostings with the following payload:
{
 "elements": [{
   "integrationContext": "urn:li:organization:104629273",
   "companyApplyUrl": "http://linkedin.com",
   "description": "We are looking for a passionate Software Engineer...",
   "employmentStatus": "PART_TIME",
   "externalJobPostingId": "1234",
   "listedAt": 1440716666,
   "jobPostingOperationType": "CREATE",
   "title": "Software Engineer",
   "location": "India",
   "workplaceTypes": ["remote"]
  },
  {
   "integrationContext": "urn:li:organization:104629273",
   "companyApplyUrl": "http://linkedin.com",
   "description": "We are looking for a passionate Software Engineer...",
   "employmentStatus": "PART_TIME",
   "externalJobPostingId": "1234",
   "listedAt": 1440716666,
   "jobPostingOperationType": "CREATE",
   "title": "Software Engineer",
   "location": "San Francisco, CA",
   "workplaceTypes": ["hybrid"]
  },
  {
   "integrationContext": "urn:li:organization:104629273",
   "companyApplyUrl": "http://linkedin.com",
   "description": "We are looking for a passionate Senior Software Engineer...",
   "employmentStatus": "PART_TIME",
   "externalJobPostingId": "789",
   "listedAt": 1440716666,
   "jobPostingOperationType": "CREATE",
   "title": "Senior Software Engineer",
   "location": "San Francisco, CA"
  }
 ]
}
  • The request is authenticated using a Bearer Token generated via OAuth 2.0.

Problem: When I send this request using Postman, I receive the following error response:

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

Despite adding the ‘Advertising API’ product and regenerating the token with the additional permissions, I’m still getting the same “ACCESS_DENIED” error.

  • What could be the reason for this error, and how can I resolve it?
  • Is there a specific permission or product that I need to enable to use the simpleJobPostings endpoint?

The error message “Not enough permissions to access: simpleJobPostings.BATCH_CREATE.NO_VERSION” indicates that your access token lacks the necessary permission to create multiple job postings in a single request using the /v2/simpleJobPostings endpoint with the BATCH_CREATE operation.

Here’s how to resolve this issue:

1. Enable the “Jobs API” Product:

  • The “Advertising API” product likely doesn’t grant the required permissions for job postings.
  • You need to enable the “Jobs API” product in your LinkedIn developer app settings.
  • Once enabled, regenerate your access token to include the necessary permissions for the Jobs API.

2. Verify Permissions in the Access Token:

  • After enabling the Jobs API product and regenerating the access token, use a tool like jwt.io to inspect the token and ensure it contains the following permissions:
    • rw_organization_jobs
    • w_organization_social

These permissions are crucial for creating and managing job postings through the Jobs API.

3. Update the Request Payload (Optional):

  • While not the cause of the current error, the listedAt field in your payload seems to be using a timestamp instead of a valid date and time string.
  • Consider using the ISO 8601 format (e.g., “2023-08-30T15:02:00Z”) for this field.

Troubleshooting Steps:

  • Double-check that you’ve correctly enabled the Jobs API product in your app settings.
  • Ensure your code is using the newly generated access token with Jobs API permissions.
  • If the issue persists after following these steps, consider reaching out to LinkedIn developer support for further assistance.

By enabling the Jobs API product and ensuring your access token has the necessary permissions, you should be able to successfully create multiple job postings using the /v2/simpleJobPostings endpoint.