HirePro ↔ ATS Integration
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
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
| Field | Description / Value |
|---|---|
grant_type | client_credentials |
client_id | Will be shared separately |
client_secret | Will be shared separately |
scope | Will 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 >"
}
client_hash,client_id, andclient_secretare 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_tokengenerated must be added to theAuthorizationHTTP header as a bearer token likeAuthorization: Bearer Tkn:abcdefghijklmnopqrstuvwxyz(assuming this token is returned by the API). - The
access_tokenreturned expires after theexpires_innumber 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
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
suspicionLevelAsPerManualReviewmay 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
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
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
| Field | Description / Value |
|---|---|
grant_type | client_credentials |
client_id | Will be shared separately |
client_secret | Will be shared separately |
scope | Will 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 >"
}
client_hash,client_id, andclient_secretare 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_tokengenerated must be added to the “Authorization” HTTP header as a bearer token likeAuthorization: Bearer Tkn:abcdefghijklmnopqrstuvwxyz(assuming this token is returned by the API). - The
access_tokenreturned expires after theexpires_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
suspicionLevelAsPerManualReviewmay 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.