Candidate Check API
Public API for creating and fetching candidate checks.
Base URL
All API paths are relative to:
https://proficient-buffalo-564.convex.siteAuthentication
Use your organization API key in the Authorization header:
Authorization: Bearer <api-key>Endpoints
| Method | Path | Purpose |
|---|---|---|
POST | /api/v1/candidate-check | Create a candidate check |
GET | /api/v1/candidate-check/{candidateCheckId} | Retrieve candidate check status/results |
Candidate check status values:
PendingIn ProgressCompletedFailed
Create candidate check
Request:
curl -X POST "https://proficient-buffalo-564.convex.site/api/v1/candidate-check" \
-H "Authorization: Bearer <api-key>" \
-H "Content-Type: application/json" \
-d '{
"linkedinProfileLink": "https://www.linkedin.com/in/example",
"briefingId": "<briefing-id>"
}'Successful response:
{
"candidateCheckId": "<candidate-check-id>",
"resultUrl": "/api/v1/candidate-check/<candidate-check-id>"
}Notes:
briefingIdmust belong to the same organization as the API key.- The endpoint creates or reuses the candidate and starts an asynchronous check run.
- Use the returned
resultUrlto poll status.
Get candidate check result
Request:
curl "https://proficient-buffalo-564.convex.site/api/v1/candidate-check/<candidate-check-id>" \
-H "Authorization: Bearer <api-key>"Behavior:
- If processing is not complete yet, response includes candidate check data with
linkedinData: null. - When completed, response includes candidate check data plus
linkedinData.
Polling tip:
- Poll every 3-5 seconds until
statusisCompletedorFailed.
Common errors
401 Missing or invalid Authorization header403 Invalid or revoked API key404 Briefing not found404 Candidate check not found403 Forbiddenwhen candidate check belongs to another organization400 Invalid JSON body400 Missing linkedinProfileLink or briefingId400 Briefing has no project500 Failed to create candidate check