Introduction
The TalentNest API lets you read and update your client's TalentNest data without using the website.
Base URL: https://{subdomain}.talentnest.com/api/v1
Replace {subdomain} with your client's TalentNest subdomain. All requests must use HTTPS. HTTP is ignored. Every request must be authenticated.
Send and receive JSON. You may append .json to a path (for example /api/v1/employees.json); it is optional. When you send a JSON body, set Content-Type: application/json.
Use the HTTP verb documented for each endpoint.
Authentication
API key as the Basic Auth username (note the trailing colon):
# Trailing colon after the API key; password is empty
curl https://subdomain.talentnest.com/api/v1/employees -u TALENTNEST_API_KEY:
Or an Authorization header. Base64-encode
YOUR_API_KEY:(key plus colon):
curl https://subdomain.talentnest.com/api/v1/employees -H 'Authorization: Basic VEFMRU5UTkVTVF9BUElfS0VZOg=='
Replace TALENTNEST_API_KEY with your API key and subdomain with your TalentNest subdomain.
Authentication uses HTTP Basic Auth. The username is your API key. Leave the password empty.
You can instead send:
Authorization: Basic <base64("TALENTNEST_API_KEY:")>
Pagination
Example pagination response headers
HTTP/1.1 200 OK
Link: <https://subdomain.talentnest.com/api/v1/applications?page=1>; rel="first",
<https://subdomain.talentnest.com/api/v1/applications?page=2>; rel="prev",
<https://subdomain.talentnest.com/api/v1/applications?page=17>; rel="last",
<https://subdomain.talentnest.com/api/v1/applications?page=4>; rel="next"
X-Page: 3
X-Per-Page: 50
X-Total: 814
List endpoints are paginated. Responses include a Link header (RFC 5988):
| Rel | Description |
|---|---|
| first | First page |
| next | Next page |
| prev | Previous page |
| last | Last page |
Also:
| Header | Description |
|---|---|
| X-Page | Current page |
| X-Per-Page | Page size. Default 50. |
| X-Total | Total number of matching records |
Query string parameters
| Parameter | Description |
|---|---|
| per_page optional | Page size. Default 50. Maximum 100, except GET /jobs which allows 300. |
| page optional | Page number. |
Endpoints
All requests go to https://{subdomain}.talentnest.com.
A malformed path or missing resource returns an InvalidParameter or ResourceNotFound error. Path placeholders look like {id}.
Jobs
GET: All Jobs
curl "https://subdomain.talentnest.com/api/v1/jobs"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"jobs": [
{
"id": 22625,
"title": "F&I Manager – Automotive",
"job_status": "Open",
"opens_at": "2026-03-16",
"closes_at": null,
"status_changed_at": "2026-03-16T14:31:30Z",
"last_application_at": "2026-09-01T13:38:19Z",
"created_at": "2026-03-16T14:31:18Z",
"updated_at": "2026-09-08T13:55:24Z",
"job_url": "https://subdomain.talentnest.com/en/posting/18502/location/22625",
"apply_url": "https://subdomain.talentnest.com/en/posting/18502/apply/22625",
"business_unit": {
"id": 7366,
"name": "Austin",
"abbreviation": "ATX",
"location": {
"country": "United States",
"address": null,
"postal": null,
"state": "Texas",
"city": "Austin"
}
},
"recruiter": {
"email": "john.smith@talentnest.com",
"first_name": "John",
"last_name": "Smith"
}
},
{
"id": 23032,
"title": "Financial Services",
"job_status": "Closed",
"opens_at": "2026-01-13",
"closes_at": null,
"status_changed_at": "2026-02-03T13:58:05Z",
"last_application_at": null,
"created_at": "2026-01-13T19:39:14Z",
"updated_at": "2026-02-03T13:58:05Z",
"job_url": "https://subdomain.talentnest.com/en/posting/18801/location/23032",
"apply_url": "https://subdomain.talentnest.com/en/posting/18801/apply/23032",
"business_unit": {
"id": 2009,
"name": "Toronto",
"abbreviation": "YYZ",
"location": {
"country": "Canada",
"address": "3300 Bloor Street West",
"postal": "M9B 2C5",
"state": "Ontario",
"city": "Toronto"
}
},
"recruiter": {
"email": "jane.doe@talentnest.com",
"first_name": "Jane",
"last_name": "Doe"
}
}
]
}
Returns jobs for the authenticated client.
The id in this API is the job (location) id. Career-site job_url and apply_url also include a posting id in the path (/en/posting/{posting_id}/location/{id}). Use the API id with /api/v1/jobs/{id}.
external_id is included when the client stores an external posting id. List responses omit description and counts; GET /jobs/{id} returns the full job.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/jobs
Query string parameters
| Parameter | Description |
|---|---|
| per_page | Page size. Default 50. Maximum 300 on this endpoint. |
| page | The specific page requested. |
| job_status | Filters based on job status. Allowed values are open, paused, closed. |
| business_unit_id | Return jobs belonging to this business unit or any of its sub-units. To exclude sub-unit jobs, add the optional parameter sub_units=false. |
| created_after | Return only jobs that were created after this timestamp. Timestamp must be ISO 8601 format. |
| updated_after | Return only jobs that were updated after this timestamp. Timestamp must be ISO 8601 format. |
GET: Specific Job
curl "https://subdomain.talentnest.com/api/v1/jobs/{id}"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"job": {
"id": 23819,
"title": "Program Manager",
"job_status": "Open",
"opens_at": "2026-02-03",
"closes_at": "2026-02-10",
"status_changed_at": "2026-02-03T21:46:57Z",
"last_application_at": null,
"created_at": "2026-02-03T21:46:16Z",
"updated_at": "2026-02-03T21:46:16Z",
"job_url": "https://subdomain.talentnest.com/en/posting/19252/location/23819",
"apply_url": "https://subdomain.talentnest.com/en/posting/19252/apply/23819",
"business_unit": {
"id": 2446,
"name": "Edmonton Branch",
"abbreviation": "EDM",
"location": {
"country": "Canada",
"address": null,
"postal": null,
"state": "Alberta",
"city": "Edmonton"
}
},
"recruiter": {
"email": "john.smith@talentnest.com",
"first_name": "John",
"last_name": "Smith"
},
"description": "Detailed job description",
"employment_type": null,
"posting_type": "External",
"job_applications_count": 30,
"completed_applications_count": 25,
"unreviewed_applications_count": 5,
"hires_count": 0,
"vacancies_count": 0,
"assessment": null
}
}
HTTP Request
GET https://subdomain.talentnest.com/api/v1/jobs/{id}
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the job to retrieve |
GET: Job's Employment Process
curl "https://subdomain.talentnest.com/api/v1/jobs/{id}/employment_process"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"employment_process": {
"steps": [
{
"id": 1933,
"name": "Review Candidate",
"abbreviation": "RC",
"step_type": "New Application",
"sequence": 1,
"optional": false,
"rated": false
},
{
"id": 2041,
"name": "Phone Interview",
"abbreviation": "PI",
"step_type": "Interview",
"sequence": 2,
"optional": true,
"rated": true
},
{
"id": 2042,
"name": "Management Pro",
"abbreviation": "MPP3",
"step_type": "Assessment",
"sequence": 3,
"optional": true,
"rated": false
},
{
"id": 2044,
"name": "Interview",
"abbreviation": "Int",
"step_type": "Interview",
"sequence": 4,
"optional": true,
"rated": true
},
{
"id": 1934,
"name": "Employment Offer",
"abbreviation": "EO",
"step_type": "Employment Offer",
"sequence": 5,
"optional": false,
"rated": false
}
]
}
}
HTTP Request
GET https://subdomain.talentnest.com/api/v1/jobs/{id}/employment_process
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the job |
Applications
GET: All Job Applications
curl "https://subdomain.talentnest.com/api/v1/applications"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"applications": [
{
"id": 1765253,
"candidate_id": 1148,
"job_id": 25668,
"job_title": "Parts Manager - Automotive",
"first_name": "Jake",
"last_name": "Joseph",
"email": "jj@talentnest.com",
"application_step": "Review Candidate",
"application_status": "Deselected",
"application_url": "https://subdomain.talentnest.com/en/job/25668/candidate/1148",
"status_changed_at": "2026-11-29T19:41:33Z",
"completed_at": "2026-10-28T17:47:15Z",
"created_at": "2026-09-23T20:31:53Z",
"updated_at": "2026-12-01T07:00:10Z"
},
{
"id": 1769005,
"candidate_id": 876140,
"job_id": 29696,
"job_title": "General Agent",
"first_name": "Lori",
"last_name": "Ham",
"email": "lori.ham@talentnest.com",
"application_step": "Review Candidate",
"application_status": "Deselected",
"application_url": "https://subdomain.talentnest.com/en/job/29696/candidate/876140",
"status_changed_at": "2026-11-11T15:16:25Z",
"completed_at": "2026-09-26T17:20:27Z",
"created_at": "2026-09-26T17:20:25Z",
"updated_at": "2026-11-11T15:16:25Z"
}
]
}
Returns job applications for the authenticated client.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/applications
Query string parameters
| Parameter | Description |
|---|---|
| per_page | The requested number of results per page. Default is 50 and the allowed Maximum is 100. |
| page | The specific page requested. |
| job_id | Return only applications belonging to this job. |
| candidate_id | Return only applications belonging to this candidate. |
| completed_after | Return only applications that were completed after this timestamp. Timestamp must be ISO 8601 format. |
| updated_after | Return only applications that were updated after this timestamp. Timestamp must be ISO 8601 format. |
| application_status | Return only applications with this status. Allowed values are active, deselected, hired. |
| status_changed_after | Return only applications whose status was changed after this timestamp. Timestamp must be ISO 8601 format. |
GET: Specific Application
curl "https://subdomain.talentnest.com/api/v1/applications/{id}"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"application": {
"id": 1765253,
"candidate_id": 1148,
"job_id": 25668,
"job_title": "Parts Manager - Automotive",
"first_name": "Jake",
"last_name": "Joseph",
"email": "jj@talentnest.com",
"application_step": "Management Pro",
"application_status": "Active",
"application_url": "https://subdomain.talentnest.com/en/job/25668/candidate/1148",
"status_changed_at": "2026-10-28T17:47:15Z",
"completed_at": "2026-10-28T17:47:15Z",
"created_at": "2026-09-23T20:31:53Z",
"updated_at": "2026-12-01T07:00:10Z",
"phone": "4167460444",
"deselect_reason": null,
"source": "Company Website",
"reviewed": true,
"passed_prescreen": true,
"golden_eagle": false,
"employee": false,
"prescreen_answers": [
{
"question": "Are you legally eligible to work in the United States?",
"answer": "Yes",
"passed": true
},
{
"question": "Do you have a good driving record and a valid driver’s license?",
"answer": "Yes",
"passed": true
},
{
"question": "Would you be able to pass a drug screen? ",
"answer": "Yes",
"passed": true
}
],
"demographic_answers": [
{
"question": "If you were referred to our company by someone, who referred you:",
"answer": "Friend",
"type": "single"
},
{
"question": "If you were referred by an employee of our company, please list the name here:",
"answer": "",
"type": "text"
},
{
"question": "What days of the week are you available to work?",
"answer": [
"Tuesday",
"Friday"
],
"type": "multi"
},
{
"question": "Are you available to work weekends?",
"answer": "Yes",
"type": "single"
},
{
"question": "What date are you available to start work?",
"answer": "",
"type": "text"
},
{
"question": "Are you available to travel on company business? ",
"answer": "Yes",
"type": "single"
},
{
"question": "What is the highest level of education you have completed?",
"answer": "Trade School",
"type": "single"
},
{
"question": "List your computer skills.",
"answer": "",
"type": "text"
}
],
"resume_url": "https://subdomain.talentnest.com/en/documents/79944/download?hash=95ab65073cd38427eeb69e827c4806d32f716c95",
"cover_url": null,
"candidate_location": {
"country": "Canada",
"address": "3300 Bloor Street West",
"postal": "M8X 2X3",
"state": "Ontario",
"city": "Toronto"
},
"future_consideration": false,
"candidate_tags": [
"automotive",
"technician"
],
"current_step": {
"id": 5,
"sequence": 2,
"step_name": "Management Pro",
"status": "Completed",
"rating": null,
"activated_at": "2026-05-27T15:57:36Z",
"completed_at": "2026-10-21T21:10:33Z",
"invited_at": null,
"deselected_at": null
},
"employment_process_history": [
{
"id": 13,
"sequence": 1,
"step_name": "Review Candidate",
"status": "Completed",
"rating": "4.0",
"activated_at": "2026-05-27T15:54:31Z",
"completed_at": "2026-05-27T15:57:32Z",
"invited_at": null,
"deselected_at": null
},
{
"id": 5,
"sequence": 2,
"step_name": "Management Pro",
"status": "Completed",
"rating": null,
"activated_at": "2026-05-27T15:57:36Z",
"completed_at": "2026-10-21T21:10:33Z",
"invited_at": null,
"deselected_at": null
},
{
"id": 8,
"sequence": 3,
"step_name": "Interview",
"status": "Inactive",
"rating": null,
"activated_at": null,
"completed_at": null,
"invited_at": null,
"deselected_at": null
},
{
"id": 7,
"sequence": 4,
"step_name": "Employment Offer",
"status": "Inactive",
"rating": null,
"activated_at": null,
"completed_at": null,
"invited_at": null,
"deselected_at": null
}
],
"assessments": [
{
"id": 617257,
"name": "ContactCenterScreen 2.0",
"url": "https://assessment-report-url...",
"scores": [
{
"type": "sales",
"score": "2.8",
"recommendation": "caution"
},
{
"type": "service",
"score": "3.1",
"recommendation": "proceed"
}
]
},
{
"id": 660573,
"name": "POP Screen",
"url": "https://assessment-report-url...",
"scores": [
{
"type": "overall",
"score": "2.38",
"recommendation": "redirect"
}
]
}
]
}
}
Retrieve a specific application by its id.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/applications/{id}
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the application to retrieve |
GET: An Application's Notes
curl "https://subdomain.talentnest.com/api/v1/applications/{id}/notes"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"notes": [
{
"id": 34118320,
"title": "New application submitted",
"body": "New application submitted",
"created_at": "2026-01-31T17:41:59Z",
"updated_at": "2026-01-31T17:41:59Z"
},
{
"id": 34118408,
"title": "Test",
"body": "Had a great interview. ",
"created_at": "2026-01-31T17:48:09Z",
"updated_at": "2026-01-31T17:48:09Z"
},
{
"id": 34147229,
"title": "Review Candidate completed",
"body": "Review Candidate completed",
"created_at": "2026-02-02T20:19:05Z",
"updated_at": "2026-02-02T20:19:05Z"
},
{
"id": 34147230,
"title": "Phone Interview started",
"body": "Phone Interview started",
"created_at": "2026-02-02T20:19:19Z",
"updated_at": "2026-02-02T20:19:19Z"
},
{
"id": 34147299,
"title": "Phone Interview completed",
"body": "Phone Interview completed",
"created_at": "2026-02-02T20:19:31Z",
"updated_at": "2026-02-02T20:19:31Z"
},
{
"id": 34147300,
"title": "Interview started",
"body": "Interview started",
"created_at": "2026-02-02T20:19:34Z",
"updated_at": "2026-02-02T20:19:34Z"
},
{
"id": 34147302,
"title": "Interview completed",
"body": "Interview completed",
"created_at": "2026-02-02T20:19:42Z",
"updated_at": "2026-02-02T20:19:42Z"
},
{
"id": 34431535,
"title": "Employment Offer started",
"body": "Employment Offer started",
"created_at": "2026-02-14T20:25:13Z",
"updated_at": "2026-02-14T20:25:13Z"
},
{
"id": 34431537,
"title": "Employment Offer completed",
"body": "Employment Offer completed",
"created_at": "2026-02-14T20:25:16Z",
"updated_at": "2026-02-14T20:25:16Z"
},
{
"id": 34431538,
"title": "This candidate has been hired",
"body": "This candidate has been hired",
"created_at": "2026-02-14T20:25:16Z",
"updated_at": "2026-02-14T20:25:16Z"
},
{
"id": 34431557,
"title": "Onboarding process started",
"body": "Onboarding process started",
"created_at": "2026-02-14T20:25:44Z",
"updated_at": "2026-02-14T20:25:44Z"
}
]
}
Returns notes for an application.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/applications/{id}/notes
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the application to retrieve notes for |
Query string parameters
| Parameter | Description |
|---|---|
| note_type | Optional. Return only notes of this type. Omit to return all notes. |
POST: Add a note
curl -X POST "https://subdomain.talentnest.com/api/v1/applications/{id}/notes"
-H 'Content-Type: application/json'
-u "TALENTNEST_API_KEY:"
JSON body:
{
"note": "Spoke with the hiring manager.",
"note_type": "chat_transcript"
}
Adds a note on the application. note_type is optional; the only type accepted on create is chat_transcript.
HTTP Request
POST https://subdomain.talentnest.com/api/v1/applications/{id}/notes
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the application |
JSON Body Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| note | Yes | String | Note text. HTML is sanitized. For chat_transcript, a stricter sanitizer is used. |
| note_type | No | String | Must be chat_transcript if set. |
| dry_run | No | Boolean | If true, validate without saving. Default: false. |
POST: Advance Application
curl -X POST "https://subdomain.talentnest.com/api/v1/applications/{id}/advance"
-H 'Content-Type: application/json'
-u "TALENTNEST_API_KEY:"
The above command takes a JSON request, structured like this:
{
"from_step_id": 2041,
"rating": 5,
"note": "Great first impression!"
}
The above returns JSON, structured like this:
{
"application": {
"id": 3060537,
"current_step": {
"id": 2042,
"sequence": 3,
"step_name": "POP7",
"status": "Active",
"rating": null,
"activated_at": "2026-01-07T17:04:26Z",
"completed_at": null,
"invited_at": null,
"deselected_at": null
}
}
}
Advances this application from the current_step to the next step in the employment process. Only Active
applications can be advanced.
The current_step will be Completed and the next step will be Activated. This newly activated step becomes the new
current_step. The response contains the new current_step's information.
HTTP Request
POST https://subdomain.talentnest.com/api/v1/applications/{id}/advance
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the application to advance |
JSON Body Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| from_step_id | Yes | Integer | The ID of the application's current_step. |
| rating | No | Integer | Rating the candidate received at current_step. Range 1 to 5. Applies only to rated steps. |
| note | No | String | Optional note to store when completing the current_step. |
| dry_run | No | Boolean | If true, validate without committing. Default: false. |
POST: Move Application
curl -X POST "https://subdomain.talentnest.com/api/v1/applications/{id}/move"
-H 'Content-Type: application/json'
-u "TALENTNEST_API_KEY:"
The above command takes a JSON request, structured like this:
{
"from_step_id": 2041,
"to_step_id": 2044,
"rating": 5,
"note": "Completing this step and jumping few steps forward!"
}
The above returns JSON, structured like this:
{
"application": {
"id": 3060537,
"current_step": {
"id": 2044,
"sequence": 4,
"step_name": "Interview",
"status": "Active",
"rating": null,
"activated_at": "2026-03-12T17:04:26Z",
"completed_at": null,
"invited_at": null,
"deselected_at": null
}
}
}
Moves this application to an arbitrary step ahead in the employment process. The old
current_step will be Completed and the new current_step will be Activated. The response contains the new
current_step's information.
Only Active applications can be moved.
The move is not allowed if there are any required steps in-between the two steps.
HTTP Request
POST https://subdomain.talentnest.com/api/v1/applications/{id}/move
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the application to move |
JSON Body Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| from_step_id | Yes | Integer | The ID of the application's current_step. |
| to_step_id | Yes | Integer | The ID of the step the application should be moved to. |
| rating | No | Integer | Rating the candidate received at current_step. Range 1 to 5. Applies only to rated steps. |
| note | No | String | Optional note to store when completing the current_step. |
| dry_run | No | Boolean | If true, validate without committing. Default: false. |
POST: Invite to assessment
curl -X POST "https://subdomain.talentnest.com/api/v1/applications/{id}/invite_to_assessment"
-H 'Content-Type: application/json'
-u "TALENTNEST_API_KEY:"
Optional JSON body:
{
"note": "Sending the assessment now.",
"dry_run": false
}
The above returns JSON structured like this:
{
"to": "jj@talentnest.com",
"subject": "Please complete your assessment",
"body": "...",
"email_template_id": 12,
"step_id": 2042,
"assessment_url": "https://..."
}
Invites the candidate to the first assessment step on this application. The application must be Active. The candidate must have an email. The job's employment process must include an assessment step that is not already invited or completed. TalentNest picks the assessment email template from the job's business unit (then ancestors).
If the assessment step is not yet Active, it is activated first. dry_run returns a fake assessment_url and does not send email.
HTTP Request
POST https://subdomain.talentnest.com/api/v1/applications/{id}/invite_to_assessment
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the application |
JSON Body Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| note | No | String | Note stored when inviting. |
| dry_run | No | Boolean | If true, do not send email or persist. Default: false. |
POST: Deselect Application
curl -X POST "https://subdomain.talentnest.com/api/v1/applications/{id}/deselect"
-H 'Content-Type: application/json'
-u "TALENTNEST_API_KEY:"
The above command takes a JSON request, structured like this:
{
"send_deselect_email": true,
"deselect_reason_id": 1001,
"note": "Reasons for deselection"
}
The above returns JSON, structured like this:
{
"application": {
"id": 3060537,
"application_status": "Deselected"
}
}
Deselects the application at the current step. Only Active applications can be deselected.
The current_step will be Deselected and the application will also be marked as Deselected. If optional
parameters are provided, TalentNest can process a deselection reason and custom note.
HTTP Request
POST https://subdomain.talentnest.com/api/v1/applications/{id}/deselect
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the application to deselect |
JSON Body Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| send_deselect_email | No | Boolean | If true, send the system deselection email to the candidate. Default: false. |
| deselect_reason_id | No | Integer | Optional reason ID for why the candidate was deselected. |
| note | No | String | Optional note to store why the candidate was deselected. |
GET: Specific Step for Application
curl "https://subdomain.talentnest.com/api/v1/applications/{id}/step/{step_id}"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"step": {
"id": 2042,
"application_id": 3060537,
"sequence": 3,
"step_name": "POP7",
"status": "Active",
"rating": null,
"activated_at": "2026-01-07T17:04:26Z",
"completed_at": null,
"invited_at": null,
"deselected_at": null
}
}
Retrieve a specific step of an application.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/applications/{id}/step/{step_id}
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the application |
| step_id | The ID of the step to retrieve |
PUT: Activate Step for Application
curl -X PUT "https://subdomain.talentnest.com/api/v1/applications/{id}/step/{step_id}/activate"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"step": {
"id": 2042,
"application_id": 3060537,
"sequence": 3,
"step_name": "Phone Interview",
"status": "Active",
"rating": null,
"activated_at": "2026-01-07T17:04:26Z",
"completed_at": null,
"invited_at": null,
"deselected_at": null
}
}
Activate a specific step of an application. Preceding required steps must already be completed.
HTTP Request
PUT https://subdomain.talentnest.com/api/v1/applications/{id}/step/{step_id}/activate
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the application |
| step_id | Employment process step ID (same ids as GET /jobs/{id}/employment_process) |
JSON Body Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| dry_run | No | Boolean | If true, validate without committing. Default: false. |
PUT: Invite to an assessment step
curl -X PUT "https://subdomain.talentnest.com/api/v1/applications/{id}/step/{step_id}/invite"
-H 'Content-Type: application/json'
-u "TALENTNEST_API_KEY:"
JSON body:
{
"email_template_id": 12
}
Sends an assessment invite for this step. The step must be an assessment step. The candidate must have an email. email_template_id is required.
Prefer this when you already know the step. Use POST /applications/{id}/invite_to_assessment to invite the first assessment step and let TalentNest choose the template.
HTTP Request
PUT https://subdomain.talentnest.com/api/v1/applications/{id}/step/{step_id}/invite
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the application |
| step_id | Employment process step ID |
JSON Body Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| email_template_id | Yes | Integer | Email template to send. |
| dry_run | No | Boolean | If true, do not send email or persist. Default: false. |
PUT: Complete Step for Application
curl -X PUT "https://subdomain.talentnest.com/api/v1/applications/{id}/step/{step_id}/complete"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"step": {
"id": 2042,
"application_id": 3060537,
"sequence": 3,
"step_name": "Phone Interview",
"status": "Completed",
"rating": null,
"activated_at": "2026-01-07T17:04:26Z",
"completed_at": "2026-01-08T13:07:36Z",
"invited_at": null,
"deselected_at": null
}
}
Complete a specific step of an application.
HTTP Request
PUT https://subdomain.talentnest.com/api/v1/applications/{id}/step/{step_id}/complete
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the application |
| step_id | Employment process step ID |
JSON Body Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| rating | No | Integer | Rating 1 to 5. Only for rated steps. |
| note | No | String | Note stored when completing the step. |
| dry_run | No | Boolean | If true, validate without committing. Default: false. |
Business Units
Business Units form the hierarchy of your company within TalentNest.
| Attribute | Description |
|---|---|
| parent_id | The ID that this business unit belongs to. |
| major_unit_id if available | If major divisions are setup, the ID of the major division that this business unit belongs to. |
GET: All Business Units
curl "https://subdomain.talentnest.com/api/v1/business_units"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"business_units": [
{
"id": 2,
"name": "XYZ Corp",
"description": "XYZ Corp is a world leader in widgets.",
"parent_id": null,
"major_unit_id": null,
"location": {
"country": "Canada",
"address": "3300 Bloor Street West",
"postal": "M8X 2X3",
"state": "Ontario",
"city": "Toronto"
}
},
{
"id": 4,
"name": "Finance",
"description": null,
"parent_id": 2,
"major_unit_id": null,
"location": {
"country": "Canada",
"address": "3300 Bloor Street West",
"postal": "M8X 2X3",
"state": "Ontario",
"city": "Toronto"
}
},
{
"id": 5,
"name": "Accounting",
"description": null,
"parent_id": 4,
"major_unit_id": 4,
"location": {
"country": "Canada",
"address": null,
"postal": null,
"state": null,
"city": null
}
}
]
}
HTTP Request
GET https://subdomain.talentnest.com/api/v1/business_units
GET: Specific Business Unit
curl "https://subdomain.talentnest.com/api/v1/business_units/{id}"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"business_unit": {
"id": 2,
"name": "XYZ Corp",
"description": "XYZ Corp is a world leader in widgets.",
"parent_id": null,
"major_unit_id": null,
"location": {
"country": "Canada",
"address": "3300 Bloor Street West",
"postal": "M8X 2X3",
"state": "Ontario",
"city": "Toronto"
}
}
}
HTTP Request
GET https://subdomain.talentnest.com/api/v1/business_units/{id}
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the business unit to retrieve |
Candidates
GET: All Candidates
curl "https://subdomain.talentnest.com/api/v1/candidates"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"candidates": [
{
"id": 11,
"first_name": "Sakul",
"middle_initial": "N",
"last_name": "Noteab",
"email": "snn@talentnest.com",
"primary_phone": "4161234444",
"created_at": "2026-05-11T20:08:44Z",
"updated_at": "2026-09-01T20:31:30Z"
},
{
"id": 12,
"first_name": "Duncan",
"middle_initial": null,
"last_name": "Reith",
"email": "dunr@talentnest.com",
"primary_phone": "14164444444",
"created_at": "2026-05-26T19:39:48Z",
"updated_at": "2026-06-25T18:27:08Z"
}
]
}
Returns candidates for the authenticated client.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/candidates
Query string parameters
| Parameter | Description |
|---|---|
| per_page | The requested number of results per page. Default is 50 and the allowed Maximum is 100. |
| page | The specific page requested. |
| created_after | Return only candidates whose record was created after this timestamp. Timestamp must be ISO 8601 format. |
| updated_after | Return only candidates that were updated after this timestamp. Timestamp must be ISO 8601 format. |
GET: Specific Candidate
curl "https://subdomain.talentnest.com/api/v1/candidates/{id}"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"candidate": {
"id": 12,
"first_name": "Duncan",
"middle_initial": null,
"last_name": "Reith",
"email": "dunr@talentnest.com",
"primary_phone": "14164444444",
"created_at": "2026-05-26T19:39:48Z",
"updated_at": "2026-06-25T18:27:08Z",
"location": {
"country": "Canada",
"address": "155 Rexdale Boulevard",
"postal": "M9W 5Z8",
"state": "Ontario",
"city": "Toronto"
},
"resume_url": "https://subdomain.talentnest.com/resume...",
"num_of_applications": 3
}
}
Retrieve a specific candidate by its id.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/candidates/{id}
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the candidate to retrieve |
POST: Email Candidate
curl -X POST "https://subdomain.talentnest.com/api/v1/candidates/{id}/email"
-H 'Content-Type: application/json'
-u "TALENTNEST_API_KEY:"
The above command takes a JSON request, structured like this:
{
"subject": "Test subject",
"body":"Test body <br> <a href='https://talentnest.com'>https://talentnest.com</a>"
}
The above command returns JSON structured like this:
{
"from":"notifications@talentnest.com",
"to":"<candidate-email>",
"subject":"<sanitized-subject>",
"body":"<sanitized-body>"
}
Sends an email, using the client's brand, to the candidate.
HTTP Request
POST https://subdomain.talentnest.com/api/v1/candidates/{id}/email
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the candidate to email |
JSON Body Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| subject | Yes | Text | Subject line for email. |
| body | Yes | Text | Body of email. Some HTML is allowed, no javascript. |
| job_id | No | Integer | Include the ID of the job the candidate applied for if the email is related to their application. |
| dry_run | No | Boolean | If true, validate the request without sending. Default: false. |
POST: Send SMS to Candidate
curl -X POST "https://subdomain.talentnest.com/api/v1/candidates/{id}/sms"
-H 'Content-Type: application/json'
-u "TALENTNEST_API_KEY:"
The above command takes a JSON request, structured like this:
{ "message": "Test message" }
The above command returns JSON structured like this:
{
"message":"Test message",
"to":"<candidate-phone-number>"
}
Sends an SMS to the candidate's primary phone number.
HTTP Request
POST https://subdomain.talentnest.com/api/v1/candidates/{id}/sms
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the candidate to send SMS to |
JSON Body Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| message | Yes | Text | UTF-8 encoded text message to send. Emojis are supported, no HTML. |
| job_id | No | Integer | Include the ID of the job the candidate applied for if the SMS is related to their application. |
| dry_run | No | Boolean | If true, validate the request without sending. Default: false. |
Employees
GET: All Employees
curl "https://subdomain.talentnest.com/api/v1/employees"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"employees": [
{
"id": 122345,
"employee_number": null,
"business_unit_id": 56,
"manager_id": null,
"hired_on": "2026-05-14",
"started_on": "2026-05-14",
"verified_on": "2026-05-14",
"termination_date": "2026-07-17",
"user": {
"first_name": "Nadia",
"middle_initial": "J",
"last_name": "Smith",
"email": "nadiasmith@talentnest.com",
"primary_phone": "14167460444",
"location": {
"country": "Canada",
"address": " 3300 Bloor Street West",
"postal": "M8X 2X2",
"state": "Ontario",
"city": "Toronto"
}
},
"current_position": null
},
{
"id": 122354,
"employee_number": null,
"business_unit_id": 871,
"manager_id": null,
"hired_on": "2026-07-08",
"started_on": "2026-07-08",
"verified_on": "2026-07-08",
"termination_date": "2026-07-16",
"user": {
"first_name": "Vanessa",
"middle_initial": null,
"last_name": "Squid",
"email": "vsquid@talentnest.com",
"primary_phone": "14167460444",
"location": {
"country": "Canada",
"address": " 3300 Bloor Street West",
"postal": "M8X 2X2",
"state": "Ontario",
"city": "Toronto"
}
},
"current_position": null
},
{
"id": 125458,
"employee_number": null,
"business_unit_id": 128,
"manager_id": null,
"hired_on": "2026-08-06",
"started_on": "2026-08-06",
"verified_on": "2026-08-06",
"termination_date": null,
"user": {
"first_name": "Jake",
"middle_initial": null,
"last_name": "Williams",
"email": "jake.williams@talentnest.com",
"primary_phone": "14167460444",
"location": null
},
"current_position": {
"id": 115427,
"status_id": 388,
"job_title": "Full-Time Customer Support",
"started_on": "2026-08-06",
"ended_on": null,
"position_end_reason_id": null,
"business_unit_id": 10228,
"application_id": 5179944
},
"other_position": {
"id": 102427,
"status_id": 312,
"job_title": "Full-Time Front Desk",
"started_on": "2026-01-31",
"ended_on": "2026-08-06",
"position_end_reason_id": 41,
"business_unit_id": 10228,
"application_id": 5079944
}
}
]
}
Returns employees for the authenticated client.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/employees
Query string parameters
| Parameter | Description |
|---|---|
| per_page | The requested number of results per page. Default is 50 and the allowed Maximum is 100. |
| page | The specific page requested. |
| business_unit_id | Return employees belonging to this business unit or any of its sub-units. To exclude sub-unit employees, add sub_units=false. |
| hired_after | Return only employees whose start/hire date is after this date (ISO 8601). Filters started_on. |
| sort | Optional. hired_on or started_on (both sort on start date, descending). Default is created_at descending. |
GET: A specific Employee
curl "https://subdomain.talentnest.com/api/v1/employees/{id}"
-u "TALENTNEST_API_KEY:"
curl "https://subdomain.talentnest.com/api/v1/employees/{email}"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"employee": {
"id": 113246,
"employee_number": null,
"business_unit_id": 119,
"manager_id": null,
"hired_on": "2026-07-08",
"started_on": "2026-07-08",
"verified_on": "2026-07-08",
"termination_date": "2026-07-24",
"user": {
"first_name": "Dan",
"middle_initial": null,
"last_name": "Cooper",
"email": "dcooper@talentnest.com",
"primary_phone": "14167460444",
"location": {
"country": "Canada",
"address": " 3300 Bloor Street West",
"postal": "M8X 2X2",
"state": "Ontario",
"city": "Toronto"
}
},
"current_position": null,
"other_positions": [
{
"id": 123455,
"status_id": 500,
"job_title": "Associate",
"started_on": "2026-07-08",
"ended_on": "2026-07-24",
"position_end_reason_id": 23,
"business_unit_id": 119,
"application_id": 5032461
}
]
}
}
Retrieve a specific employee by id or email.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/employees/{id}
GET https://subdomain.talentnest.com/api/v1/employees/{email}
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the employee to retrieve |
| The email address of the employee to retrieve |
POST: Create an employee
curl -X POST "https://subdomain.talentnest.com/api/v1/employees"
-H 'Content-Type: application/json'
-u "TALENTNEST_API_KEY:"
JSON body:
{
"employee": {
"employee_number": "E-1001",
"business_unit_id": 56,
"manager_id": 98,
"started_on": "2026-09-11",
"verified_on": "2026-09-11",
"user": {
"first_name": "Sam",
"last_name": "Edwards",
"email": "sam.edwards@example.com",
"primary_phone": "14165550100",
"location": {
"country": "Canada",
"state": "Ontario",
"city": "Toronto",
"address": "3300 Bloor Street West",
"postal": "M8X 2X2"
}
}
}
}
Creates an employee. Wrap fields in employee. user is the person record (name, email, phone, location). Location country and state are names, not ids. started_on is the hire/start date (hired_on in responses is the same date).
HTTP Request
POST https://subdomain.talentnest.com/api/v1/employees
JSON Body Parameters
All keys sit under employee. Unknown keys are rejected.
| Parameter | Required | Type | Description |
|---|---|---|---|
| employee_number | No | String | Client employee number. |
| business_unit_id | No | Integer | Business unit. |
| manager_id | No | Integer | Manager employee id. |
| started_on | No | Date | Start/hire date (ISO 8601 date). |
| verified_on | No | Date | Verified date. |
| terminated_at | No | Date | If set, the employee is created already terminated. |
| user | No | Object | first_name, middle_initial, last_name, email, primary_phone, location. |
| dry_run | No | Boolean | If true, validate without saving. Default: false. |
PUT: Replace an employee
curl -X PUT "https://subdomain.talentnest.com/api/v1/employees/{id}"
-H 'Content-Type: application/json'
-u "TALENTNEST_API_KEY:"
Same employee object as create. PUT resets omitted loadable fields to defaults, then applies the body. You may also send business_unit_id and employee_status_id.
HTTP Request
PUT https://subdomain.talentnest.com/api/v1/employees/{id}
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the employee |
PATCH: Update an employee
curl -X PATCH "https://subdomain.talentnest.com/api/v1/employees/{id}"
-H 'Content-Type: application/json'
-u "TALENTNEST_API_KEY:"
Partial update. Same employee wrapper; only included keys change.
HTTP Request
PATCH https://subdomain.talentnest.com/api/v1/employees/{id}
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the employee |
GET: Employee Statuses
curl "https://subdomain.talentnest.com/api/v1/employees/statuses"
-u "TALENTNEST_API_KEY:"
The above returns JSON, structured like this:
{
"statuses": [
{
"id": 123,
"status": "Active",
"description": "Employment status for current employees."
},
{
"id": 145,
"status": "On Leave",
"description": "Employment status for employees on leave"
},
{
"id": 157,
"status": "Terminated",
"description": null
},
{
"id": 176,
"status": "Part-Time",
"description": null
},
{
"id": 135,
"status": "Contract",
"description": null
}
]
}
Employee Statuses are client-defined phrases used to identify an employee's current status (e.g. Active or On Leave). Employee Statuses may contain translations.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/employees/statuses
GET: Employees for a Specific Status
curl "https://subdomain.talentnest.com/api/v1/employees/statuses/{id}"
-u "TALENTNEST_API_KEY:"
The above returns JSON, structured like this:
{
"statuses": [
{
"id": 123,
"status": "Active",
"description": "Employment status for current employees.",
"employee_ids": [
1234,
4567,
5482,
7614,
7751,
7757,
8015
]
}
]
}
Returns details for a specific employee status and a list of employee IDs that have this status.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/employees/statuses/{id}
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the employee status to return |
GET: Position End (Termination) Reasons
curl "https://subdomain.talentnest.com/api/v1/position_end_reasons"
-u "TALENTNEST_API_KEY:"
The above returns JSON, structured like this:
{
"position_end_reasons": [
{
"id": 55,
"reason": "Voluntary Termination",
"description": "Voluntary Termination"
},
{
"id": 56,
"reason": "Performance",
"description": "Involuntary Termination"
},
{
"id": 58,
"reason": "Job Abandonment",
"description": "Involuntary Termination"
},
{
"id": 66,
"reason": "Other Employment",
"description": "Voluntary Termination"
},
{
"id": 76,
"reason": "Did Not Like Role",
"description": "Voluntary Termination"
},
{
"id": 88,
"reason": "Medical - Personal or Family",
"description": "Voluntary Termination"
}
]
}
Returns position end (termination) reasons and their IDs. Translations are included when present.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/position_end_reasons
POST: Terminate an Employee
curl -X POST "https://subdomain.talentnest.com/api/v1/employees/{id}/terminate"
-H 'Content-Type: application/json'
-u 'TALENTNEST_API_KEY:'
The above command takes a JSON request, structured like this:
{
"position_end_reason_id": 55,
"termination_date": "2026-08-06"
}
The above returns JSON, structured like this:
{
"employee": {
"id": 109125,
"employee_number": null,
"business_unit_id": 257,
"manager_id": null,
"hired_on": "2026-03-23",
"started_on": "2026-03-23",
"verified_on": "2026-03-23",
"termination_date": "2026-08-06",
"user": {
"first_name": "Sam",
"middle_initial": null,
"last_name": "Edwards",
"email": "sedwards@talentnest.com",
"primary_phone": "14167460444",
"location": {
"country": "Canada",
"address": " 3300 Bloor Street West",
"postal": "M8X 2X2",
"state": "Ontario",
"city": "Toronto"
}
},
"current_position": null,
"other_positions": [
{
"id": 2341231,
"status_id": 372,
"job_title": "Outbound Call Center Agent",
"started_on": "2026-03-23",
"ended_on": "2026-08-06",
"position_end_reason_id": 55,
"business_unit_id": 257,
"application_id": 432425
}
]
}
}
Terminates the employee. Optional reason, status, and date.
HTTP Request
POST https://subdomain.talentnest.com/api/v1/employees/{id}/terminate
URL Parameters
| Parameter | Description |
|---|---|
| id | The ID of the employee to terminate |
JSON Body Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| position_end_reason_id | No | Integer | ID of a position end (termination) reason from GET /position_end_reasons. |
| status_id | No | Integer | Employee status to apply after termination. |
| termination_date | No | Date | Termination date (ISO 8601 date). Defaults to today if omitted. Must not be before the current position start date. |
Employment process step statuses
GET: All step statuses
curl "https://subdomain.talentnest.com/api/v1/employment_process_step_statuses"
-u "TALENTNEST_API_KEY:"
The above command returns JSON structured like this:
{
"employment_process_step_statuses": [
"Inactive",
"Active",
"Completed",
"Invited",
"Deselected"
]
}
Returns the status names used on employment-process steps (Inactive, Active, Completed, Invited, Deselected). Exact strings are those configured for the client.
HTTP Request
GET https://subdomain.talentnest.com/api/v1/employment_process_step_statuses
HTTP verbs
The API supports GET, POST, PUT, PATCH, and DELETE. Not every resource accepts every verb.
| Verb | Description |
|---|---|
| GET | Requests a representation of the specified resource; requests using GET can only retrieve data |
| POST | Submits data to a new resource |
| PUT | Uploads data to an existing resource, overriding the existing data |
| PATCH | Applies a partial modification to a resource |
| DELETE | Deletes the specified resource |
Response Codes
The HTTP response code can be used to determine if the API request has succeeded. The API returns the following codes with the given circumstances:
| Code | Meaning |
|---|---|
| 200 | OK -- Request was successful |
| 201 | Created -- POST request completed successfully |
| 400 | Bad Request -- The request was invalid or malformed |
| 401 | Unauthorized -- Your API key is invalid |
| 403 | Forbidden -- API Authentication failed |
| 404 | Not Found -- The resource requested does not exist |
| 405 | Method Not Allowed -- The resource requested does not support the request's HTTP verb |
In all cases other than 401 Unauthorized, a JSON response will accompany the status code.
For 200 OK and 201 Created, the response will contain either the data requested for a GET request, the data
deleted for a DELETE request, or the current state of the resource after a POST, PUT or PATCH request.
For all other status codes, the response will contain error details, which includes the error name, error description, and more specific details as applicable.
You should not receive 500 Internal Server Errors from the API. Please contact TalentNest support if
this occurs.
Webhooks
TalentNest can POST JSON to a URL you provide when certain events occur.
To subscribe, contact support@talentnest.com. You will receive a secret key used to verify signatures.
Available events
X-Event-Name: applicant_hired
| Event | When |
|---|---|
new_application |
A candidate successfully applies to a job. |
applicant_hired |
A candidate is hired. The payload is the new employee record (use this for payroll / HRIS). |
applicant_review_completed |
The New Application (review candidate) step is completed. |
applicant_deselected |
An application is deselected. |
The event name is sent in the X-Event-Name header.
Signature
X-Event-Signature: sha256 417a453d456ff29aabcdd5b68afdfbf8b2d160b8dd4818fdf34dc4940d509703
HMAC in Ruby:
digest = OpenSSL::Digest.new('sha256')
signature = OpenSSL::HMAC.hexdigest(digest, secret_key, body)
HMAC in PHP:
<?php
$signature = hash_hmac('sha256', $body, $secret_key);
?>
Each request is signed with HMAC-SHA256 of the raw body and your secret. The header is:
X-Event-Signature: sha256 <hex digest>
Compute the digest the same way and compare it to the hex portion after the space. If they match, the POST came from TalentNest.
New application webhook
{
"application_id": 1765253,
"job": {
"id": 25668,
"name": "Parts Manager - Automotive",
"employment_type": "Full time"
},
"candidate": {
"email": "jj@talentnest.com",
"first_name": "Jake",
"last_name": "Joseph",
"phone": "416-123-5555",
"language_preference": "en",
"location": {
"address": "3300 Bloor Street West",
"city": "Toronto",
"state": "Ontario",
"postal": "M8X 2X3",
"country": "Canada"
}
}
}
Sent when a candidate finishes applying. Fetch the full application with GET /api/v1/applications/{application_id} if you need more than this payload.
Applicant hired webhook
{
"employee_id": 3234124,
"employee_number": null,
"business_unit_id": 422342,
"business_unit_name": "Marketing Department",
"job_title": "Manager - Social Media",
"hired_on": "2026-09-01",
"manager_id": 98644,
"first_name": "Samantha",
"last_name": "Murphy",
"email": "samantha.murphy@talentnest.com",
"phone": "416-555-555",
"location": {
"address": "3300 Bloor St. West",
"city": "Toronto",
"state": "Ontario",
"postal": "M8X 2X2",
"country": "Canada"
}
}
Sent when a candidate is hired. employee_id is the new employee. Fetch GET /api/v1/employees/{employee_id} for the full record.
Applicant review completed webhook
{
"application_id": 1765253,
"rating": 4.0,
"note": "Strong communication skills.",
"reviewed_by": {
"email": "recruiter@example.com",
"first_name": "Jane",
"last_name": "Doe"
},
"reviewed_at": "2026-09-08T17:47:15Z"
}
Sent when the New Application (review candidate) step is completed — not when later interview steps complete. rating is present only if that step is rated. Fetch GET /api/v1/applications/{application_id} for the full application.
Applicant deselected webhook
{
"application_id": 1765253
}
Sent when an application is deselected. The body is the application id. Fetch GET /api/v1/applications/{application_id} for status and deselect reason.
Support
Questions about the API, a webhook subscription, or an integration — email support@talentnest.com.
To learn more about TalentNest, visit www.talentnest.com.