Saltar al contenido principal

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

StatusDescription
APPLIEDInitial application
REJECTEDApplication rejected
INTERVIEWEDInterview completed
HIREDCandidate 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"
}

Accept Invite

POST /api/invite/validate
Content-Type: application/json

{
"email": "user@example.com",
"token": "invite-token"
}

Sales Pipelines

List Pipelines

GET /api/pipelines?where[organizationId]={org-id}
Authorization: Bearer {token}

Create Pipeline

POST /api/pipelines
Authorization: Bearer {token}
Content-Type: application/json

{
"name": "Enterprise Sales",
"description": "Pipeline for enterprise deals",
"organizationId": "org-uuid",
"stages": [
{ "name": "Lead", "index": 0 },
{ "name": "Qualified", "index": 1 },
{ "name": "Proposal", "index": 2 },
{ "name": "Negotiation", "index": 3 },
{ "name": "Closed Won", "index": 4 }
]
}

Contacts (Organization Contacts)

List Contacts

GET /api/organization-contact?take=20&skip=0
Authorization: Bearer {token}

Create Contact

POST /api/organization-contact
Authorization: Bearer {token}
Content-Type: application/json

{
"name": "Acme Corporation",
"contactType": "CLIENT",
"primaryEmail": "contact@acme.com",
"primaryPhone": "+1-555-0100",
"organizationId": "org-uuid"
}

Contact Types

TypeDescription
CLIENTClient/customer
LEADSales lead
CUSTOMERActive customer

Required Permissions

EndpointPermission
GET /api/candidateCANDIDATES_VIEW
POST /api/candidateCANDIDATES_EDIT
POST /api/inviteORG_INVITE_EDIT
GET /api/pipelinesPIPELINE_VIEW
POST /api/pipelinesPIPELINE_EDIT