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" }
]
}
Interview Feedback
POST /api/candidate-interview/{id}/feedbacks
Authorization: Bearer {token}
Content-Type: application/json
{
"description": "Strong technical skills, good cultural fit",
"rating": 4.5,
"interviewerId": "employee-uuid"
}
Candidate Skills
Add Skills
POST /api/candidate/{id}/skills
Authorization: Bearer {token}
Content-Type: application/json
{
"skills": [
{ "name": "TypeScript", "level": "EXPERT" },
{ "name": "Angular", "level": "INTERMEDIATE" }
]
}
Candidate Experience
Add Experience
POST /api/candidate-experience
Authorization: Bearer {token}
Content-Type: application/json
{
"occupation": "Senior Developer",
"organization": "Previous Company",
"duration": "3 years",
"description": "Led frontend team",
"candidateId": "candidate-uuid"
}
Candidate Education
Add Education
POST /api/candidate-education
Authorization: Bearer {token}
Content-Type: application/json
{
"schoolName": "MIT",
"degree": "BS Computer Science",
"field": "Computer Science",
"completionDate": "2020-06-01",
"candidateId": "candidate-uuid"
}
Invitations
Send Invite
POST /api/invite
Authorization: Bearer {token}
Content-Type: application/json
{
"emailId": "user@example.com",
"roleId": "role-uuid",
"organizationId": "org-uuid",
"invitedById": "admin-uuid",
"startedWorkOn": "2024-02-01"
}