Close Jobs

To close a job, re-post the job using the same externalJobPostingId value, but set jobPostingOperationType to CLOSE.

API Overview

Use the /simpleJobPosting API to create, update, renew and close jobs on LinkedIn. This wiki describes how to close jobs. To know more about this API, refer to API Overview.

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

API Authorization

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

Important

We strongly recommend to use same access token for all concurrent and consecutive calls. An access token has a lifespan of 30 mins. Only on expiry of the existing token, new token should be generated.

Sample Request for Premium Jobs

API Header:

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

Authorization: Bearer {token}
x-restli-method: batch_create

Sample Request Body:

{
    "elements": [
        {
            "listingType": "PREMIUM",
            "companyApplyUrl": "http://localhost:0000",
            "contract": "urn:li:contract:{{contract_id}}",
            "industries": [
                "urn:li:industry:55"
            ],
            "externalJobPostingId": "TEST_150421",
            "description": "Lorem Ipsum is simply dummy text of Lorem Ipsum.",
            "listedAt": 0123456789,
            "title": "JOB_1_TEST_150421",
            "integrationContext": "urn:li:organization:{{company_id}}",
            "location": "San Francisco, California",
            "jobPostingOperationType": "CLOSE"
        }
    ]

Error Codes

Given below is a list possible error codes that can display while closing a job.
One of the following responses is returned, that contains a JSON object with a status and a message about the error for Post on /simpleJobPostings.

HTTP CODE RESPONSE STATUS ERROR MESSAGE DESCRIPTION RESOLUTION
200 422 ERROR :: /{mandatory key} :: field is required but not found and has no default value Required field is missing in the request body Refer to the schema documentation and make sure all the required fields are present in the request body
200 422 ERROR :: /{attribute_name} :: {value} cannot be coerced to Long\n, (Why is \n coming in error message) When value of the attribute does not match the datatype it accepts. For example, title accepts String but we have provided numerical value Ensure that the value provided for attribute should match the datatype it accepts. Refer to schema documentation for data types of the attributes
200 422 ERROR :: /jobPostingOperationType :: "UPDATED" is not an enum symbol\n Wrong value provided for the field jobPostingOperationType The value should either be one of following CREATE, UPDATE or CLOSE
401 401 Invalid access token Access token is tampered Regenerate a new access token
401 401 The token used in the request is expired The access token used in Authorization header is a valid token but it has expired Regenerate a new access token
403 403 Caller is not authorized to access the jobs for contract: urn:li:contract:{contract_id} The application used for posting premium job does not belong to the Job posting contract 1. Ensure that you are using the correct contract details provided in the Premium Job Posting onboarding email
2. Ensure that you are using the correct application credentials
403 403 Not enough permissions to access: POST /simpleJobPostings The application does not have enough permissions to use /simpleJobPostings API Ensure that the header x-restli-method with value batch_create is present
500 500 Internal Server Error When incorrect attribute type is given. For example, Integer instead of String Please check if externalJobPostingId datatype is string in request body