📡 API Reference

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

Edit this page

Copyright © 2023-Present Ever Co. LTD.Docs by Sourcey