Open appvitae.ai

Job Matching

The matching engine scores professionals against open jobs automatically. Matches are generated when a new job is created or when you trigger a match run manually.

How matching works

  1. A job is created with required skills, experience level, and location
  2. The AI engine scores all relevant professionals in the database
  3. Top matches are returned with a scored fit assessment
  4. Recruiters review, shortlist, and add candidates to the application pipeline

Create a job

POST /v1/jobs
Authorization: Bearer <token>
Content-Type: application/json
 
{
  "title": "Senior Backend Engineer",
  "companyId": "company_01abc...",
  "skills": ["Node.js", "TypeScript"],
  "location": "Remote",
  "experienceYears": 5,
  "description": "..."
}

AI-generated fields can help populate job details:

POST /v1/jobs/generate-fields
Authorization: Bearer <token>
Content-Type: application/json
 
{ "title": "Senior Backend Engineer", "description": "..." }

Trigger a match run

POST /v1/jobs/:id/match
Authorization: Bearer <token>

Get matches for a job

GET /v1/jobs/:id/best-matches
Authorization: Bearer <token>

Set minimum scores

Configure score thresholds to filter match quality:

PATCH /v1/jobs/:id/min-scores
Authorization: Bearer <token>
Content-Type: application/json
 
{ "minScore": 0.7 }

Generate perfect fit analysis

POST /v1/jobs/:id/perfect-fit
Authorization: Bearer <token>

Job rubrics

Scoring rubrics define evaluation criteria for candidates:

POST /v1/job-rubrics/generate
Authorization: Bearer <token>
Content-Type: application/json
 
{ "jobId": "job_01abc..." }

Manage rubrics:

GET    /v1/job-rubrics/user
POST   /v1/job-rubrics/user
PUT    /v1/job-rubrics/user/:id
DELETE /v1/job-rubrics/user/:id
GET    /v1/job-rubrics/job/:id
PUT    /v1/job-rubrics/:id/select

Add a match to pipeline

Once you identify a good match, create an application:

POST /v1/applications
Authorization: Bearer <token>
Content-Type: application/json
 
{
  "candidateId": "prof_01abc...",
  "jobId": "job_01abc..."
}

ATS pipeline management

Move applicants through pipeline stages:

PATCH /v1/jobs/:id/applicants/:candidateUserId
Authorization: Bearer <token>
Content-Type: application/json
 
{ "stage": "interview" }

Customize the ATS kanban board:

POST   /v1/jobs/:id/ats-kanban-custom-column
PATCH  /v1/jobs/:id/ats-kanban-column-order

Interview question templates

Create and manage reusable interview question sets:

GET    /v1/jobs/interview-question-templates
POST   /v1/jobs/interview-question-templates
POST   /v1/jobs/interview-question-templates/generate
GET    /v1/jobs/interview-question-templates/:templateId
PATCH  /v1/jobs/interview-question-templates/:templateId
DELETE /v1/jobs/interview-question-templates/:templateId

Screening and video interviews

POST   /v1/jobs/:id/screening-answers
POST   /v1/jobs/:id/video-interviews
GET    /v1/jobs/:jobId/interviews/:candidateId
GET    /v1/jobs/:jobId/interview-responses