HirePro ↔ ATS Integration

Single-page documentation with copyable examples and smooth navigation.
v1 • API

I. Introduction

Purpose

The recruitment process has evolved significantly with the advent of digital hiring platforms. The HirePro Online Proctored Assessment System provides organizations with a robust and scalable platform for evaluating candidates efficiently. To further streamline the hiring workflow, integrating the HirePro Online Assessment System with an Applicant Tracking System (ATS) enables a seamless exchange of candidate assessment data, reducing manual efforts and improving overall hiring efficiency.

Scope

This integration allows recruiters and hiring teams to automate assessment tagging, track candidate progress, and get near real-time assessment results along with proctoring details within the ATS. By eliminating redundant manual processes, organizations can ensure a faster, more reliable, and data-driven hiring approach. The integration supports API-based communication for smooth data flow, ensuring accuracy and real-time updates.

What this document covers

This document outlines the technical and functional aspects of integrating the HirePro Online Assessment System with an ATS, including API details, authentication mechanisms, payload structures, error-handling strategies, and callback behaviour. It is intended for engineering teams implementing the integration and for technical product managers coordinating with HirePro.

II. Authentication

Integration Sequence Diagram

Integration Diagram

Generate Access Token

This is an API to create a bearer access token which then can be used for invoking other APIs.

URL: https://<target_server>/py/oauth2/v1/<client_hash>/access_token/
METHOD: POST
Content-Type: application/x-www-form-urlencoded
FieldDescription / Value
grant_typeclient_credentials
client_idWill be shared separately
client_secretWill be shared separately
scopeWill be shared separately

RESPONSE BODY

Content-Type: application/json

SUCCESS RESPONSE:
{
  "access_token": "< TOKEN_STRING >",
  "token_type": "bearer",
  "expires_in": < INTEGER NO_OF_SECONDS >
}
FAILURE RESPONSE:
{
  "error": "< ERROR STRING >"
}
NOTE:
  • client_hash, client_id, and client_secret are vendor-specific and communicated out-of-band.
  • Content-type encoding is different for the Request and Response body for this API as per the standard.
  • The access_token generated must be added to the Authorization HTTP header as a bearer token like Authorization: Bearer Tkn:abcdefghijklmnopqrstuvwxyz (assuming this token is returned by the API).
  • The access_token returned expires after the expires_in number of seconds. Partner platform should either invoke this API before expiry and start using the new access_token OR retry upon receiving a failure.

Notes & Best Practices

⚠️ Tokens expire after expires_in seconds (typically 3600). Request new token as needed.

III. ATS → HirePro API Calls

1. Fetch Test Details

This API allows programmatic retrieval of available or configured assessments, which can then be used for tagging candidates. Alternatively, the test details can be obtained manually (out-of-band) and configured directly on the ATS for tagging purposes.

Endpoint: https://ams.hirepro.in/v1/tests
Method: GET

Headers:
Authorization: Bearer <ACCESS_TOKEN>

Response:
[
  { "testId": "tmpl_01", "testName": "Frontend Developer - MCQ" },
  { "testId": "tmpl_02", "testName": "Data Science - Hands On" }
]

Details

  • testId: Unique identifier for a test within HirePro.
  • testName: Descriptive name or title of the test.

2. Register / Create Candidate & Tag to Test — POST /py/ats/v1/registerAndTagCandidateToTest/

Endpoint: https://ams.hirepro.in/py/ats/v1/registerAndTagCandidateToTest/
Method: POST
Headers: Authorization: Bearer <TOKEN>, X-APPLMA: true

Request body (JSON):
{
  "atsCandidateId": "ats_12345",         // optional
  "primaryEmail": "john.doe@example.com", // mandatory
  "phoneNumber": "+919876543210",        // mandatory
  "testId": "tmpl_01",                   // mandatory (HirePro testId)
  "firstName": "John",
  "middleName": "M",
  "lastName": "Doe",
  "profilePhoto": "",        // optional
  "gender": "male|female|other",          // optional
  "dob": "DD/MM/YYYY"                     // optional
}

Success response (sample):
{
  "status": "OK",
  "data": {
    "testUserGuid": "988a3269-1f45-4f27-ac11-837d8468294e",
    "HireProCandidateId": 54321,
    "message": "Candidate registered and tagged",
    "isDuplicateCandidate": false,
    "tagged2TestAlready": false
  }
}

Response field details

  • isDuplicateCandidate: Indicates whether the provided ATS Candidate Id or email already exists in HirePro.
  • HireProCandidateId: Unique HirePro candidate id assigned to the record.
  • tagged2TestAlready: True if the candidate was already associated to the given test.
  • message: Optional human-friendly message.

Notes

  • Email is the primary unique key used for duplicate checks.
  • If name fields are missing, ATS Candidate Id may be used as a fallback display name — provide proper names where possible to ensure personalized communications.

IV. Error Handling

Common Errors & Resolutions:

  • 401 Unauthorized: The access token is invalid or has expired. Obtain a new token and retry the request.
  • 400 Bad Request: One or more parameters are missing or incorrect. Ensure that the request payload is properly structured and validated.
  • 500 Internal Server Error: An unexpected error occurred on the server. Retry the request after a short interval.

V. HirePro → ATS Callbacks

1. Send Assessment Details back to ATS — TEST_USER_ASSESSMENT_SCORED

After candidate answer the evaluation, HirePro will POST results to your configured ATS callback URL.

Endpoint: <your_ats_callback_url>
Method: POST
Headers:
  Content-Type: application/json

Body (JSON):
{
  "testUserGuid": "988a3269-1f45-4f27-ac11-837d8468294e",
  "eventName": "TEST_USER_ASSESSMENT_SCORED",
  "eventData": {
    "testScore": 78.5,
    "vTestStatus": "TestScored", // or "TestNotScored"
    "vTestReport": "https://vendor.example.com/vtest/123",
    "scoreReport": "https://hirepro.com/reports/asm_123",
    "proctorReviewReport": "https://hirepro.com/proctor/asm_123",
    "suspicionLevelAsPerAI": "Low|Medium|High|Not Suspicious|Not Evaluated",
    "suspicionLevelAsPerManualReview": "Suspicious|Not Suspicious|Not Evaluated|May Be Suspicious",
    "scoreDetails": [
      {
        "groupName": "Logical Reasoning",
        "candidateScoreTotal": 35.0,
        "maxMarks": 50.0,
        "sectionInfos": [
          { "sectionName": "Section A", "candidateScoreTotal": 20.0, "maxMarks": 25.0 },
          { "sectionName": "Section B", "candidateScoreTotal": 15.0, "maxMarks": 25.0 }
        ]
      }
    ],
    "manualReviewComment": "Handwriting unclear in Q2"
  }
}

Notes & Field Explanations

  • vTestStatus: "TestNotScored" indicates no score could be generated (e.g., unreadable answers).
  • vTestReport: External vendor test report link (e.g., Versant).
  • scoreReport: HirePro-hosted candidate report link (requires login/SSO to view).
  • scoreDetails: Optional detailed breakdown. If present, include only if your ATS needs section-level data.
  • proctorReviewReport: Link to proctoring video/review (requires login).
  • Ignore any additional/unexpected fields unless agreed otherwise between HirePro and ATS.

Callback Behaviour — retries & multiple firings

This callback may be triggered multiple times. Typically, AI proctoring evaluation completes earlier and a callback is sent. Manual review (if service taken) may complete later and trigger a second callback with updated manual review fields.

  • If the ATS returns HTTP 200 OK, the callback is presumed to be handled at the ATS and no further attempts are made for the given event type.
  • During initial callback/manualReview pending, fields like suspicionLevelAsPerManualReview may be set to "Not Evaluated" and updated later.

VI. Conclusion

This integration facilitates a seamless data exchange between the ATS and the HirePro platform, enabling efficient candidate assessment and tracking. By automating key processes, it empowers recruiters to focus on strategic decision-making while reducing manual effort in managing tests and results.

HirePro ↔ ATS Integration

Single-page documentation with copyable examples and smooth navigation.
v1 • API

I. Introduction

Purpose

The recruitment process has evolved significantly with the advent of digital hiring platforms. The HirePro Online Proctored Assessment System provides organizations with a robust and scalable platform for evaluating candidates efficiently. To further streamline the hiring workflow, integrating the HirePro Online Assessment System with an Applicant Tracking System (ATS) enables a seamless exchange of candidate assessment data, reducing manual efforts and improving overall hiring efficiency.

Scope

This integration allows recruiters and hiring teams to automate assessment tagging, track candidate progress, and get near real-time assessment results along with proctoring details within the ATS. By eliminating redundant manual processes, organizations can ensure a faster, more reliable, and data-driven hiring approach. The integration supports API-based communication for smooth data flow, ensuring accuracy and real-time updates.

What this document covers

This document outlines the technical and functional aspects of integrating the HirePro Online Assessment System with an ATS, including API details, authentication mechanisms, payload structures, error-handling strategies, and callback behaviour. It is intended for engineering teams implementing the integration and for technical product managers coordinating with HirePro.

II. Authentication

Integration Sequence Diagram

Integration Diagram

Generate Access Token

This is an API to create a bearer access token which then can be used for invoking other APIs.

URL: https://<target_server>/py/oauth2/v1/<client_hash>/access_token/
METHOD: POST
Content-Type: application/x-www-form-urlencoded
FieldDescription / Value
grant_typeclient_credentials
client_idWill be shared separately
client_secretWill be shared separately
scopeWill be shared separately

RESPONSE BODY

Content-Type: application/json

SUCCESS RESPONSE:
{
  "access_token": "< TOKEN_STRING >",
  "token_type": "bearer",
  "expires_in": < INTEGER NO_OF_SECONDS >
}
FAILURE RESPONSE:
{
  "error": "< ERROR STRING >"
}
NOTE:
  • client_hash, client_id, and client_secret are different for different vendors and all of these are communicated out of band.
  • Content-type encoding is different for the Request and Response body for this API as per the standard.
  • The access_token generated must be added to the “Authorization” HTTP header as a bearer token like Authorization: Bearer Tkn:abcdefghijklmnopqrstuvwxyz (assuming this token is returned by the API).
  • The access_token returned expires after the expires_in (returned in the response body) number of seconds. Partner platform should either invoke this API before expiry and start using the new access_token OR retry upon receiving a failure.

III. ATS → HirePro API Calls

1. Fetch Test Details

This API allows programmatic retrieval of available or configured assessments, which can then be used for tagging candidates. Alternatively, the test details can be obtained manually (out-of-band) and configured directly on the ATS for tagging purposes.

Endpoint: https://ams.hirepro.in/v1/tests
Method: GET

Headers:
Authorization: Bearer <ACCESS_TOKEN>

Response:
[
  { "testId": "tmpl_01", "testName": "Frontend Developer - MCQ" },
  { "testId": "tmpl_02", "testName": "Data Science - Hands On" }
]

Details

  • testId: Unique identifier for a test within HirePro.
  • testName: Descriptive name or title of the test.

2. Register / Create Candidate & Tag to Test — POST /py/ats/v1/registerAndTagCandidateToTest/

Endpoint: https://ams.hirepro.in/py/ats/v1/registerAndTagCandidateToTest/
Method: POST
Headers: Authorization: Bearer <TOKEN>, X-APPLMA: true

Request body (JSON):
{
  "atsCandidateId": "ats_12345",         // optional
  "primaryEmail": "john.doe@example.com", // mandatory
  "phoneNumber": "+919876543210",        // mandatory
  "testId": "tmpl_01",                   // mandatory (HirePro testId)
  "firstName": "John",
  "middleName": "M",
  "lastName": "Doe",
  "profilePhoto": "",        // optional
  "gender": "male|female|other",          // optional
  "dob": "DD/MM/YYYY"                     // optional
}

Success response (sample):
{
  "status": "OK",
  "data": {
    "testUserGuid": "988a3269-1f45-4f27-ac11-837d8468294e",
    "HireProCandidateId": 54321,
    "message": "Candidate registered and tagged",
    "isDuplicateCandidate": false,
    "tagged2TestAlready": false
  }
}

Response field details

  • isDuplicateCandidate: Indicates whether the provided ATS Candidate Id or email already exists in HirePro.
  • HireProCandidateId: Unique HirePro candidate id assigned to the record.
  • tagged2TestAlready: True if the candidate was already associated to the given test.
  • message: Optional human-friendly message.

Notes

  • Email is the primary unique key used for duplicate checks.
  • If name fields are missing, ATS Candidate Id may be used as a fallback display name — provide proper names where possible to ensure personalized communications.

IV. Error Handling

Common Errors & Resolutions:

  • 401 Unauthorized: The access token is invalid or has expired. Obtain a new token and retry the request.
  • 400 Bad Request: One or more parameters are missing or incorrect. Ensure that the request payload is properly structured and validated.
  • 500 Internal Server Error: An unexpected error occurred on the server. Retry the request after a short interval.

V. HirePro → ATS Callbacks

1. Send Assessment Details back to ATS — TEST_USER_ASSESSMENT_SCORED

After candidate answer the evaluation, HirePro will POST results to your configured ATS callback URL.

Endpoint: <your_ats_callback_url>
Method: POST
Headers:
  Content-Type: application/json

Body (JSON):
{
  "testUserGuid": "988a3269-1f45-4f27-ac11-837d8468294e",
  "eventName": "TEST_USER_ASSESSMENT_SCORED",
  "eventData": {
    "testScore": 78.5,
    "vTestStatus": "TestScored", // or "TestNotScored"
    "vTestReport": "https://vendor.example.com/vtest/123",
    "scoreReport": "https://hirepro.com/reports/asm_123",
    "proctorReviewReport": "https://hirepro.com/proctor/asm_123",
    "suspicionLevelAsPerAI": "Low|Medium|High|Not Suspicious|Not Evaluated",
    "suspicionLevelAsPerManualReview": "Suspicious|Not Suspicious|Not Evaluated|May Be Suspicious",
    "scoreDetails": [
      {
        "groupName": "Logical Reasoning",
        "candidateScoreTotal": 35.0,
        "maxMarks": 50.0,
        "sectionInfos": [
          { "sectionName": "Section A", "candidateScoreTotal": 20.0, "maxMarks": 25.0 },
          { "sectionName": "Section B", "candidateScoreTotal": 15.0, "maxMarks": 25.0 }
        ]
      }
    ],
    "manualReviewComment": "Handwriting unclear in Q2"
  }
}

Notes & Field Explanations

  • vTestStatus: "TestNotScored" indicates no score could be generated (e.g., unreadable answers).
  • vTestReport: External vendor test report link (e.g., Versant).
  • scoreReport: HirePro-hosted candidate report link (requires login/SSO to view).
  • scoreDetails: Optional detailed breakdown. If present, include only if your ATS needs section-level data.
  • proctorReviewReport: Link to proctoring video/review (requires login).
  • Ignore any additional/unexpected fields unless agreed otherwise between HirePro and ATS.

Callback Behaviour — retries & multiple firings

This callback may be triggered multiple times. Typically, AI proctoring evaluation completes earlier and a callback is sent. Manual review (if service taken) may complete later and trigger a second callback with updated manual review fields.

  • If the ATS returns HTTP 200 OK, the callback is presumed to be handled at the ATS and no further attempts are made for the given type of event for the given event.
  • During initial callback/manualReview pending, fields like suspicionLevelAsPerManualReview may be set to "Not Evaluated" and updated later.

VI. Conclusion

This integration facilitates a seamless data exchange between the ATS and the HirePro platform, enabling efficient candidate assessment and tracking. By automating key processes, it empowers recruiters to focus on strategic decision-making while reducing manual effort in managing tests and results.