Sync Application Interview Feedback

Application interview feedback should be sent via the Middleware Platform whenever they are created or updated in your ATS. As LinkedIn partners, use both your application identifier and interview feedback identifier when syncing application interview feedback via API.

Note

The latest API version is 202603. Use this version in the LinkedIn-Version header for all API requests to access the most recent features and improvements.

Throttle Limits

Endpoint Requests Per Day (UTC) Records Per Minute
rest/applicationInterviewFeedbacks 1,000,000 N/A

Note

Please submit batch calls grouped with no more than 100 records in sequential order.

Sync Application Interview Feedback

Use the following endpoint to create and update application interview feedback:

PUT https://api.linkedin.com/v2/atsApplications/atsJobApplicationId={id1}&dataProvider=ATS&integrationContext={organization URN}/interviewFeedback?ids=INTFB123&ids=INTFB456

Request Body Fields

Field Description Format Required
atsCreatedAt Date record was created in your ATS UTC Epoch Milliseconds No
interviewer The person who interviewed the candidate and wrote this evaluation. Actor No
evaluations A list of final evaluations for this interview. Example of evaluations would be a final recommendation or an interview score. InterviewEvaluation[] No
feedback General feedback about the interview. string No
interviewType Indicates which type of the interview the feedback was for. Possible values are: PHONE_SCREEN or ONSITE No

Actor Schema

Field Description Format Required
firstName The first name of the actor. String Required
lastName The last name of the actor String Required

InterviewEvaluation Schema

Field Description Format Required
attribute The descriptive name about the qualification the candidate was evaluated for, for example "Verbal Communication", "Technical Qualifications". String Required
result The result of the evaluation, could be a final recommendation or an interview score. String Optional

Sample Request

Headers:

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

Request Body:

{
  "entities": {
    "INTFB123": {
      "atsCreatedAt": 1484864187000,
      "evaluations": [
        {
          "attribute": "Verbal Communication",
          "result": "4/5"
        }
      ],
      "feedback": "Lorem Ipsum.",
      "interviewer": {
        "firstName": "John",
        "lastName": "Doe"
      },
      "interviewType": "PHONE_SCREEN"
    },
    "INTFB456": {
      "atsCreatedAt": 1484864187000,
      "evaluations": [
        {
          "attribute": "Culture Fit",
          "result": "Good fit"
        }
      ],
      "feedback": "Lorem Ipsum moreum.",
      "interviewer": {
        "firstName": "Jane",
        "lastName": "Doe"
      },
      "interviewType": "ONSITE"
    }
  }
}

Sample Response

A successful request will return a 200 OK response code, and you will find the status of each entity in the response body.

Sample Response Body

{
    "errors": {},
    "results": {
        "INTFB123": {
            "status": 204
        },
        "INTFB456": {
            "status": 204
        }
    }
}

Note

  • Be sure to check the response for error statuses corresponding to individual entities you submit.

API Endpoint

PUT https://api.linkedin.com/rest/applicationInterviewFeedbacks?ids[0].jobApplicationId={application_id}&ids[0].integrationContext=urn:li:organization:{org_id}&ids[0].interviewFeedbackId={interview_feedback_id}

Request Body Fields

Field Description Format Required
interviewer The person who interviewed the candidate and wrote the evaluation. Actor No
interviewType The type of interview conducted. Possible values are: PHONE_SCREEN or ONSITE No
feedback The general feedback about the interview. String Yes
evaluations A list of final evaluations for this interview. Array Yes
externalLastModifiedAt The timestamp when the feedback was last modified in your system. UTC Epoch Milliseconds Yes
externalCreatedAt The timestamp when the feedback was created in your system. UTC Epoch Milliseconds Yes

Sample Request (without query tunneling)

curl --location --globoff --request PUT 'https://api.linkedin.com/rest/applicationInterviewFeedbacks?ids[0].jobApplicationId=jdoe_sw_engr_1001&ids[0].integrationContext=urn:li:organization:70540833&ids[0].interviewFeedbackId=APPL_INTERVIEW_0001' \
--header 'Content-Type: application/json' \
--header 'LinkedIn-Version: 202508.02' \
--header 'Authorization: Bearer {token}' \
--data '{
  "entities": {
    "jobApplicationId=jdoe_sw_engr_1001&integrationContext=urn:li:organization:70540833&interviewFeedbackId=APPL_INTERVIEW_0001": {
      "externalLastModifiedAt": 1757028941000,
      "externalCreatedAt":1757028941000,
      "evaluations": [
        {
          "attribute": "Verbal Communication",
          "result": "4/5"
        }
      ],
      "feedback": "Great interview!",
      "interviewer": {
        "firstName": "John",
        "lastName": "Doe"
      }
    }
 }
}'

Sample Request (with query tunneling)

curl --location --request POST 'https://api.linkedin.com/rest/applicationInterviewFeedbacks' \
--header 'Content-Type: multipart/mixed; boundary=xyz' \
--header 'x-restli-method: batch_update' \
--header 'LinkedIn-Version: 202508.02' \
--header 'X-HTTP-Method-Override: PUT' \
--header 'Authorization: Bearer {token}' \
--data '--xyz
Content-Type: application/x-www-form-urlencoded

ids[0].jobApplicationId={{application_id}}&ids[0].integrationContext=urn:li:organization:{{org_id}}&ids[0].interviewFeedbackId={{interview_feedback_id}}
--xyz
Content-Type: application/json

{
  "entities": {
    "jobApplicationId={{application_id}}&integrationContext=urn:li:organization:{{org_id}}&interviewFeedbackId={{interview_feedback_id}}": {
        "externalLastModifiedAt": 1758236052000,
        "externalCreatedAt":1758236052000,
        "evaluations": [
            {
            "attribute": "Verbal Communication",
            "result": "4/5"
            }
        ],
        "feedback": "Great interview!",
        "interviewer": {
            "firstName": "John",
            "lastName": "Doe"
        }
    }
  }
}
--xyz--'

Sample Request (without query tunneling)

curl --location --globoff --request PUT 'https://api.linkedin.com/rest/applicationInterviewFeedbacks?ids[0].jobApplicationId=jdoe_sw_engr_1001&ids[0].integrationContext=urn:li:organization:70540833&ids[0].interviewFeedbackId=APPL_INTERVIEW_0001' \
--header 'Content-Type: application/json' \
--header 'LinkedIn-Version: 202510' \
--header 'Authorization: Bearer {token}' \
--data '{
  "entities": {
    "jobApplicationId=jdoe_sw_engr_1001&integrationContext=urn:li:organization:70540833&interviewFeedbackId=APPL_INTERVIEW_0001": {
      "externalLastModifiedAt": 1757028941000,
      "externalCreatedAt":1757028941000,
      "evaluations": [
        {
          "attribute": "Verbal Communication",
          "result": "4/5"
        }
      ],
      "feedback": "Great interview!",
      "interviewer": {
        "firstName": "John",
        "lastName": "Doe"
      }
    }
 }
}'

Sample Request (with query tunneling)

curl --location --request POST 'https://api.linkedin.com/rest/applicationInterviewFeedbacks' \
--header 'Content-Type: multipart/mixed; boundary=xyz' \
--header 'x-restli-method: batch_update' \
--header 'LinkedIn-Version: 202510' \
--header 'X-HTTP-Method-Override: PUT' \
--header 'Authorization: Bearer {token}' \
--data '--xyz
Content-Type: application/x-www-form-urlencoded

ids[0].jobApplicationId={{application_id}}&ids[0].integrationContext=urn:li:organization:{{org_id}}&ids[0].interviewFeedbackId={{interview_feedback_id}}
--xyz
Content-Type: application/json

{
  "entities": {
    "jobApplicationId={{application_id}}&integrationContext=urn:li:organization:{{org_id}}&interviewFeedbackId={{interview_feedback_id}}": {
        "externalLastModifiedAt": 1758236052000,
        "externalCreatedAt":1758236052000,
        "evaluations": [
            {
            "attribute": "Verbal Communication",
            "result": "4/5"
            }
        ],
        "feedback": "Great interview!",
        "interviewer": {
            "firstName": "John",
            "lastName": "Doe"
        }
    }
  }
}
--xyz--'

Sample Request (without query tunneling)

curl --location --globoff --request PUT 'https://api.linkedin.com/rest/applicationInterviewFeedbacks?ids[0].jobApplicationId=jdoe_sw_engr_1001&ids[0].integrationContext=urn:li:organization:70540833&ids[0].interviewFeedbackId=APPL_INTERVIEW_0001' \
--header 'Content-Type: application/json' \
--header 'LinkedIn-Version: 202511' \
--header 'Authorization: Bearer {token}' \
--data '{
  "entities": {
    "jobApplicationId=jdoe_sw_engr_1001&integrationContext=urn:li:organization:70540833&interviewFeedbackId=APPL_INTERVIEW_0001": {
      "externalLastModifiedAt": 1757028941000,
      "externalCreatedAt":1757028941000,
      "evaluations": [
        {
          "attribute": "Verbal Communication",
          "result": "4/5"
        }
      ],
      "feedback": "Great interview!",
      "interviewer": {
        "firstName": "John",
        "lastName": "Doe"
      }
    }
 }
}'

Sample Request (with query tunneling)

curl --location --request POST 'https://api.linkedin.com/rest/applicationInterviewFeedbacks' \
--header 'Content-Type: multipart/mixed; boundary=xyz' \
--header 'x-restli-method: batch_update' \
--header 'LinkedIn-Version: 202511' \
--header 'X-HTTP-Method-Override: PUT' \
--header 'Authorization: Bearer {token}' \
--data '--xyz
Content-Type: application/x-www-form-urlencoded

ids[0].jobApplicationId={{application_id}}&ids[0].integrationContext=urn:li:organization:{{org_id}}&ids[0].interviewFeedbackId={{interview_feedback_id}}
--xyz
Content-Type: application/json

{
  "entities": {
    "jobApplicationId={{application_id}}&integrationContext=urn:li:organization:{{org_id}}&interviewFeedbackId={{interview_feedback_id}}": {
        "externalLastModifiedAt": 1758236052000,
        "externalCreatedAt":1758236052000,
        "evaluations": [
            {
            "attribute": "Verbal Communication",
            "result": "4/5"
            }
        ],
        "feedback": "Great interview!",
        "interviewer": {
            "firstName": "John",
            "lastName": "Doe"
        }
    }
  }
}
--xyz--'

Sample Request (without query tunneling)

curl --location --globoff --request PUT 'https://api.linkedin.com/rest/applicationInterviewFeedbacks?ids[0].jobApplicationId=jdoe_sw_engr_1001&ids[0].integrationContext=urn:li:organization:70540833&ids[0].interviewFeedbackId=APPL_INTERVIEW_0001' \
--header 'Content-Type: application/json' \
--header 'LinkedIn-Version: 202512' \
--header 'Authorization: Bearer {token}' \
--data '{
  "entities": {
    "jobApplicationId=jdoe_sw_engr_1001&integrationContext=urn:li:organization:70540833&interviewFeedbackId=APPL_INTERVIEW_0001": {
      "externalLastModifiedAt": 1757028941000,
      "externalCreatedAt":1757028941000,
      "evaluations": [
        {
          "attribute": "Verbal Communication",
          "result": "4/5"
        }
      ],
      "feedback": "Great interview!",
      "interviewer": {
        "firstName": "John",
        "lastName": "Doe"
      }
    }
 }
}'

Sample Request (with query tunneling)

curl --location --request POST 'https://api.linkedin.com/rest/applicationInterviewFeedbacks' \
--header 'Content-Type: multipart/mixed; boundary=xyz' \
--header 'x-restli-method: batch_update' \
--header 'LinkedIn-Version: 202512' \
--header 'X-HTTP-Method-Override: PUT' \
--header 'Authorization: Bearer {token}' \
--data '--xyz
Content-Type: application/x-www-form-urlencoded

ids[0].jobApplicationId={{application_id}}&ids[0].integrationContext=urn:li:organization:{{org_id}}&ids[0].interviewFeedbackId={{interview_feedback_id}}
--xyz
Content-Type: application/json

{
  "entities": {
    "jobApplicationId={{application_id}}&integrationContext=urn:li:organization:{{org_id}}&interviewFeedbackId={{interview_feedback_id}}": {
        "externalLastModifiedAt": 1758236052000,
        "externalCreatedAt":1758236052000,
        "evaluations": [
            {
            "attribute": "Verbal Communication",
            "result": "4/5"
            }
        ],
        "feedback": "Great interview!",
        "interviewer": {
            "firstName": "John",
            "lastName": "Doe"
        }
    }
  }
}
--xyz--'

Sample Request (without query tunneling)

curl --location --globoff --request PUT 'https://api.linkedin.com/rest/applicationInterviewFeedbacks?ids[0].jobApplicationId=jdoe_sw_engr_1001&ids[0].integrationContext=urn:li:organization:70540833&ids[0].interviewFeedbackId=APPL_INTERVIEW_0001' \
--header 'Content-Type: application/json' \
--header 'LinkedIn-Version: 202602' \
--header 'Authorization: Bearer {token}' \
--data '{
  "entities": {
    "jobApplicationId=jdoe_sw_engr_1001&integrationContext=urn:li:organization:70540833&interviewFeedbackId=APPL_INTERVIEW_0001": {
      "externalLastModifiedAt": 1757028941000,
      "externalCreatedAt":1757028941000,
      "evaluations": [
        {
          "attribute": "Verbal Communication",
          "result": "4/5"
        }
      ],
      "feedback": "Great interview!",
      "interviewer": {
        "firstName": "John",
        "lastName": "Doe"
      }
    }
 }
}'

Sample Request (with query tunneling)

curl --location --request POST 'https://api.linkedin.com/rest/applicationInterviewFeedbacks' \
--header 'Content-Type: multipart/mixed; boundary=xyz' \
--header 'x-restli-method: batch_update' \
--header 'LinkedIn-Version: 202602' \
--header 'X-HTTP-Method-Override: PUT' \
--header 'Authorization: Bearer {token}' \
--data '--xyz
Content-Type: application/x-www-form-urlencoded

ids[0].jobApplicationId={{application_id}}&ids[0].integrationContext=urn:li:organization:{{org_id}}&ids[0].interviewFeedbackId={{interview_feedback_id}}
--xyz
Content-Type: application/json

{
  "entities": {
    "jobApplicationId={{application_id}}&integrationContext=urn:li:organization:{{org_id}}&interviewFeedbackId={{interview_feedback_id}}": {
        "externalLastModifiedAt": 1758236052000,
        "externalCreatedAt":1758236052000,
        "evaluations": [
            {
            "attribute": "Verbal Communication",
            "result": "4/5"
            }
        ],
        "feedback": "Great interview!",
        "interviewer": {
            "firstName": "John",
            "lastName": "Doe"
        }
    }
  }
}
--xyz--'

Sample Request (without query tunneling)

curl --location --globoff --request PUT 'https://api.linkedin.com/rest/applicationInterviewFeedbacks?ids[0].jobApplicationId=jdoe_sw_engr_1001&ids[0].integrationContext=urn:li:organization:70540833&ids[0].interviewFeedbackId=APPL_INTERVIEW_0001' \
--header 'Content-Type: application/json' \
--header 'LinkedIn-Version: 202603' \
--header 'Authorization: Bearer {token}' \
--data '{
  "entities": {
    "jobApplicationId=jdoe_sw_engr_1001&integrationContext=urn:li:organization:70540833&interviewFeedbackId=APPL_INTERVIEW_0001": {
      "externalLastModifiedAt": 1757028941000,
      "externalCreatedAt":1757028941000,
      "evaluations": [
        {
          "attribute": "Verbal Communication",
          "result": "4/5"
        }
      ],
      "feedback": "Great interview!",
      "interviewer": {
        "firstName": "John",
        "lastName": "Doe"
      }
    }
 }
}'

Sample Request (with query tunneling)

curl --location --request POST 'https://api.linkedin.com/rest/applicationInterviewFeedbacks' \
--header 'Content-Type: multipart/mixed; boundary=xyz' \
--header 'x-restli-method: batch_update' \
--header 'LinkedIn-Version: 202603' \
--header 'X-HTTP-Method-Override: PUT' \
--header 'Authorization: Bearer {token}' \
--data '--xyz
Content-Type: application/x-www-form-urlencoded

ids[0].jobApplicationId={{application_id}}&ids[0].integrationContext=urn:li:organization:{{org_id}}&ids[0].interviewFeedbackId={{interview_feedback_id}}
--xyz
Content-Type: application/json

{
  "entities": {
    "jobApplicationId={{application_id}}&integrationContext=urn:li:organization:{{org_id}}&interviewFeedbackId={{interview_feedback_id}}": {
        "externalLastModifiedAt": 1758236052000,
        "externalCreatedAt":1758236052000,
        "evaluations": [
            {
            "attribute": "Verbal Communication",
            "result": "4/5"
            }
        ],
        "feedback": "Great interview!",
        "interviewer": {
            "firstName": "John",
            "lastName": "Doe"
        }
    }
  }
}
--xyz--'

Sample Response

{
  "results": {
    "integrationContext=urn%3Ali%3Aorganization%3A70540833&interviewFeedbackId=APPL_INTERVIEW_0001&jobApplicationId=jdoe_sw_engr_1001": {
      "status": 204
    }
  },
  "errors": {}
}