Check Job Operation Task Status

After creating job postings, you can use the task ids from the response to track the status of the creation of the job postings. Typically the job creation process should take no longer than five minutes and it is suggested that you validate the completion of the job creation at least five minutes after your initial call to confirm there were no issues during job creation. The task IDs returned will have a lifespan of 30 days. Possible status values returned are: IN_PROGRESS, SUCCEEDED or FAILED and PROCESSED. Task Id is also returned after UPDATE, RENEW or CLOSE job operations.

STATUS ERROR CODE DESCRIPTION
IN_PROGRESS Not Present This is a temporary state and the job is still being evaluated
SUCCEEDED Not Present For a CREATE operation, API job was posted.
For UPDATE operation, update was successful and API job is posted on LinkedIn.
For CLOSE or RENEW operation, close or renew request was successful
FAILED Present For a CREATE operation, API job was not posted or did not pass validation.
For UPDATE operation, update was not successful. See task status on most recent CREATE operation to determine if the API job was posted on LinkedIn.
For CLOSE or RENEW operation, close or renew request was not successful
PROCESSED Not Present The API job has been processed successfully by LinkedIn
PROCESSED Present The API job has been processed by LinkedIn but also failed payload validation

Note

The PROCESSED status indicates that customer's jobs are still being posted from an XML feed or career site. This status will appear during the stage when LinkedIn is evaluating the customer's job criteria to be migrated to API job postings.

Authentication

All requests below require access tokens obtained via the OAuth 2 Client Credentials flow.

Throttle Limits

Throttle Limits Daily Call Limit (UTC)
Application maximum 300,000

API Endpoint

GET https://api.linkedin.com/v2/simpleJobPostingTasks?ids={simpleJobPostingTaskUrn 1}&ids={simpleJobPostingTaskUrn 2}

Sample Response Body

Sample Response Body for Success

{
    "errors": {},
    "results": {
        "urn:li:simpleJobPostingTask:07ae37ab-2216-4d0f-97a0-53a516681c8f": {
            "externalJobPostingId": "job-89a07328-89cc-4471-9b06-32d7b1f8f381",
            "id": "urn:li:simpleJobPostingTask:07ae37ab-2216-4d0f-97a0-53a516681c8f",
            "jobPosting": "urn:li:jobPosting:123456789",
            "status": "SUCCEEDED"
        },
        "urn:li:simpleJobPostingTask:edc75eb8-2c4f-4ac7-a64f-2ee583446f83": {
            "externalJobPostingId": "job-89a07328-89cc-4471-9b06-32d7b1f8f382",
            "id": "urn:li:simpleJobPostingTask:edc75eb8-2c4f-4ac7-a64f-2ee583446f83",
            "status": "IN_PROGRESS"
        }
    },
    "statuses": {}
}

SimpleJobPostingTask Field Schema

Field Description Format Required
errorMessage Description of an error resulting from a failed task. String Optional
externalJobPostingId Unique job posting id within the partner's system. String Optional
id Unique ID for a simple job posting task. String Required
jobPosting Job posting resulting from a successful task. String Optional
location The input location for a job using alternateLocations or customer based multiple location job rules. String Optional
status Status of the task. List of possible statuses: IN_PROGRESS, SUCCEEDED, FAILED, PROCESSED. String Required

Note

If a job uses alternateLocations, a unique simpleJobPostingTask urn is returned as per alternateLocations

In the above example, observe that two results are returned with status values as SUCCEEDED and IN_PROGRESS. Status value of SUCCEEDED confirms that the job posting is live on LinkedIn.

Sample Response Body for Error

In case of an error, the request will return a 200 OK response code and the error message is within the response body.

{
 "results": {
  "urn:li:simpleJobPostingTask:99da65f-d870-99f0-8734-8def50fb3765": {
   "errorMessage": "Job {partner=urn:li:jobPostingPartner:68204513, partnerJobCode=goldc04-03-12030896745} was dropped: true\n\nInvalid Field: /city; \nInvalid Field: /postalCode; \nInvalid Field: /state; \nInvalid Field: /geoLocation; ",
   "status": "FAILED",
   "id": "urn:li:simpleJobPostingTask:11da365f-d870-99f0-8734-8def50fb3765"
  }
 },
 "statuses": {},
 "errors": {}
}

Note

  • Be sure to check the response for error statuses corresponding to individual entities you submitted. Ensure that the query string is limited to a maximum length of 4KB. Click here for details and sample payload.

Error Codes

Refer below table to understand the HTTP response codes and corresponding error message. Below table should be followed for the purpose of troubleshooting.

One of the following responses is returned, that contains a JSON object with a status and a message about the error for Get on /simpleJobPostingsTasks.

HTTP CODE RESPONSE STATUS ERROR MESSAGE DESCRIPTION RESOLUTION
200 Failed Job processing failed due to a client-side error. Please check payload and integration setup. Error details: Trying to create a job with same partnerIdentifier already exists. It is duplicate creation request for a basic job or a non-draft premium job. Dropping the duplicate job posting creation request. LinkedIn job id: {job_id}, externalJobPostingId: {jobPostingId} There is already a premium job posted with same externalJobPostingId Please ensure using unique externalJobPostingId in the Premium Job Posting API
200 Failed Job {} was dropped: true Invalid Field: /description; Drop Message: The description length should be at least 100 characters The description for the Job Posting should be more than 100 characters Ensure the description of the job posing is more than 100 characters
200 Failed Job processing failed due to a client-side error. Please check payload and integration setup. Error details: Operation type RENEW is not allowed for a non-existing job The create/update job postings request has operationType as RENEW but the externalJobPostingId does not refer to any existing job postings Please check to make sure the externalJobPostingId refers to an existing job posting
200 Failed Job processing failed due to a client-side error. Please check payload and integration setup. Error details: Operation type UPDATE is not allowed for a non-existing job of partner urn urn:li:jobPostingPartner:11157465, partner job code (externalJobPostingId) Linkedin system is not able to find out the job to update with mentioned externalJobPostingId LinkedIn uses externalJobPostingId to uniquely identify a premium job posted in its system. Please make sure the value of externalJobPostingId field in request body of UPDATE PREMIUM JOB api is used while posting premium job
200 Failed The description length should be at least 100 characters The value of description field in the response body of API to POST/UPDATE PREMIUM JOB should contain more than 100 characters Provide description which contains more than 100 character in the description field in the response body of API to POST/UPDATE PREMIUM JOB
400 400 Batch key parameter value is invalid The request parameter IDs does not contain valid job posting task urn Please ensure that you are using valid task urn which is obtained in the response body of API calls to post, update or close Premium Jobs
401 401 Invalid access token Access token is tampered Regenerate a new access token
401 401 The token used in the request has expired The access token used in Authorization header is a valid token but it has expired Regenerate a new access token