Skip to main content

AI score interview

Submit a verbatim interview transcript and a target role to receive an AI-generated scorecard. The scorecard evaluates the candidate across three dimensions and produces an overall score and hiring recommendation.

Scope required: ai:score

POST /api/v1/external/ai/score-interview
Authorization: Bearer sk_live_<key>
Content-Type: application/json

This endpoint counts towards the AI rate limit window (24 hours).


Request body

FieldTypeRequiredConstraintsDescription
transcriptstringYes50 – 50,000 charsFull verbatim text of the interview
rolestringYes2 – 120 charsJob title or role being evaluated (e.g., "Senior Backend Engineer")
rubric_idstringNoMax 100 charsID of a custom scoring rubric configured in your company account
asyncbooleanNoDefault: falseIf true, process asynchronously and return a job ID

Example: synchronous request

curl -X POST "https://api.oikohire.com/api/v1/external/ai/score-interview" \
-H "Authorization: Bearer sk_live_<key>" \
-H "Content-Type: application/json" \
-d '{
"transcript": "Interviewer: Can you walk me through your approach to API design? Candidate: Absolutely. I always start with the consumer in mind — for example, I recently designed a RESTful API for a payment service. I focused specifically on clear error messages and versioning because...",
"role": "Senior Backend Engineer"
}'

Synchronous response 200 OK

{
"status": "success",
"data": {
"overall_score": 78,
"dimensions": {
"technical_accuracy": {
"score": 82,
"feedback": "Candidate demonstrated strong knowledge of API design patterns and clearly articulated trade-offs."
},
"communication": {
"score": 75,
"feedback": "Responses were structured and used concrete examples effectively."
},
"problem_solving": {
"score": 77,
"feedback": "Showed methodical thinking but could elaborate further on edge-case handling."
}
},
"summary": "Strong technical candidate with clear communication. Recommended for a follow-up technical round.",
"recommendation": "Advance to next round"
}
}

Scorecard fields

FieldTypeDescription
overall_scoreinteger (0–100)Composite score across all dimensions
dimensions.technical_accuracy.scoreinteger (0–100)Knowledge correctness and depth
dimensions.technical_accuracy.feedbackstringQualitative dimension feedback
dimensions.communication.scoreinteger (0–100)Clarity, structure, use of examples
dimensions.communication.feedbackstringQualitative dimension feedback
dimensions.problem_solving.scoreinteger (0–100)Approach, trade-off reasoning
dimensions.problem_solving.feedbackstringQualitative dimension feedback
summarystringOne-paragraph narrative summary
recommendationstringe.g., "Advance to next round", "Do not advance"

Example: async request

curl -X POST "https://api.oikohire.com/api/v1/external/ai/score-interview" \
-H "Authorization: Bearer sk_live_<key>" \
-H "Content-Type: application/json" \
-d '{
"transcript": "...",
"role": "Product Manager",
"async": true
}'

Async response 202 Accepted

{
"status": "accepted",
"data": {
"job_id": "extjob_xyz789",
"status": "queued",
"check_status_url": "/api/v1/external/jobs/extjob_xyz789"
}
}

Poll check_status_url with your API key until status is completed. See Async job status.


Idempotency

Include an Idempotency-Key header to deduplicate identical requests within the deduplication window:

POST /api/v1/external/ai/score-interview
Idempotency-Key: interview-session-001