Developer Docs

Matching Request & Response

Detailed request and response reference for POST /api/v1/candidates/match with practical curl and TypeScript examples.

This page is the implementation contract for POST /api/v1/candidates/match. Use it when building clients, validating payloads, and debugging integration issues.

Endpoint contract

POST/api/v1/candidates/match
Authentication
Bearer JWT or Bearer vtk_ API key
Plan requirement
Professional+
Rate limits
10/min, Pro 30/day, Enterprise 500/day

Request schema

MatchRequest

FieldTypeRequiredDefaultConstraintsNotes
job_descriptionstringYesmin 20, max 50000 charsPrimary role brief used for matching.
top_nintegerNo101..50How many candidates to return.
similarity_thresholdnumberNo0.50.0..1.0Minimum score to include in results.
filtersobject | nullNonullOptional hard constraints (skills/languages/location).
include_reasoningbooleanNotrueAttempts to include reasoning text where available.

Filters object

Supported filter keys are skills, languages, country, and city. Unknown fields are rejected.

Request examples

curl -X POST "$BASE_URL/api/v1/candidates/match" \
  -H "Authorization: Bearer vtk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "job_description": "Senior Data Engineer with Python and AWS",
    "top_n": 5
  }'

Response schema

MatchResponse

FieldTypeRequiredDefaultConstraintsNotes
matchesMatchCandidate[]YesRanked result list, may be empty.
total_candidates_searchedintegerYesCandidates evaluated before final threshold filtering.
total_above_thresholdintegerYesCandidates meeting threshold before top_n truncation.
embedding_modelstringYesEmbedding model used for similarity scoring.

Important match fields

  • candidate_id and candidate_url for deep links
  • similarity_score as baseline rank metric
  • match_score and reasoning when reranking is available
  • profile_links[] for profile-specific context

Common bad requests and fixes

job_description too short

Ensure at least 20 characters with meaningful role requirements.

top_n out of range

Use values between 1 and 50 only.

Unknown fields included

This endpoint rejects extra fields. Remove typos and unsupported keys from payloads.

Validation behavior

Request objects are strict. Treat 422 as a schema contract violation and fix payload generation before retrying.