Candidate Endpoints
API endpoints for Applicant Tracking System (ATS) β candidates, interviews, and pipelines.
Candidatesβ
List Candidatesβ
GET /api/candidate?take=20&skip=0&relations[]=user&relations[]=source
Authorization: Bearer {token}
Response (200 OK):
{
"items": [
{
"id": "...",
"rating": 4.5,
"status": "APPLIED",
"appliedDate": "2024-01-10T00:00:00.000Z",
"hiredDate": null,
"rejectDate": null,
"user": {
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@example.com"
},
"source": { "name": "LinkedIn" },
"organizationId": "..."
}
],
"total": 15
}
Create Candidateβ
POST /api/candidate
Authorization: Bearer {token}
Content-Type: application/json
{
"user": {
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@example.com"
},
"password": "temporaryPassword",
"appliedDate": "2024-01-10",
"organizationId": "org-uuid"
}
Update Candidateβ
PUT /api/candidate/{id}
Authorization: Bearer {token}
Content-Type: application/json
{
"rating": 4.5,
"status": "INTERVIEWED"
}
Candidate Statusesβ
| Status | Description |
|---|---|
APPLIED | Initial application |
REJECTED | Application rejected |
INTERVIEWED | Interview completed |
HIRED | Candidate hired |
Candidate Interviewsβ
List Interviewsβ
GET /api/candidate-interview?where[candidateId]={candidate-id}
Authorization: Bearer {token}
Schedule Interviewβ
POST /api/candidate-interview
Authorization: Bearer {token}
Content-Type: application/json
{
"title": "Technical Interview",
"startTime": "2024-01-20T10:00:00.000Z",
"endTime": "2024-01-20T11:00:00.000Z",
"candidateId": "candidate-uuid",
"organizationId": "org-uuid",
"interviewers": [
{ "employeeId": "employee-uuid" }
]
}