Analysis
Get the AI analysis
/interviews/{id}/analysisThe analysis status, and the full result once status is completed (otherwise result is null).
Path parameters
idstringrequiredpattern ^[0-9a-fA-F]{24}$A 24-character hex ID.
Example:
"66f3a1c2e4b0a1d2c3e4f530"
Responses
200The analysis.
The analysis.
Body AnalysisResponse
dataAnalysisrequiredstatusstringrequiredValues:
"not_requested", "pending", "processing", "completed", "failed"requestedAtstring (date-time) | nullrequiredcompletedAtstring (date-time) | nullrequiredresultone ofrequiredPresent once
statusiscompleted; otherwisenull.
timestampinteger (int64)requiredServer time in milliseconds since the Unix epoch.
{
"data": {
"status": "completed",
"requestedAt": "2026-09-26T03:00:00.000Z",
"completedAt": "2026-09-26T03:01:42.000Z",
"result": {
"evaluationScores": {
"communication_score": 84,
"criteria_match_score": 78,
"competency_score": 81,
"cultural_fit_score": 88,
"overall_score": 82
},
"detailedAssessment": {
"communication": {
"strengths": [
"Clear structure",
"Calm delivery"
],
"weaknesses": [
"Some answers ran long"
],
"observations": "Explains decisions step by step and checks understanding."
},
"competency_assessment": {
"observed_strengths": [
"Shift planning",
"Safety awareness"
],
"areas_for_improvement": [
"Inventory software"
],
"relevant_examples": [
"Reorganised picking routes during peak season"
],
"observations": "Strong hands-on leadership with concrete examples."
},
"red_flags": [],
"positive_indicators": [
"Took ownership of a safety incident"
]
},
"hiringRecommendation": {
"decision": "YES",
"confidence_level": "MEDIUM",
"primary_reasons": [
"Relevant supervisory experience",
"Good safety mindset"
],
"risks": [
"Limited experience with the WMS we use"
],
"conditions": [
"Training on the warehouse management system"
]
},
"summary": {
"one_line_summary": "Experienced, safety-minded supervisor who communicates clearly.",
"key_strengths": "Team leadership under pressure; safety awareness.",
"key_concerns": "Little exposure to warehouse software.",
"fit_assessment": "GOOD"
},
"analyzedAt": "2026-09-26T03:01:42.000Z"
}
},
"timestamp": 1790398800000
}400The request is invalid. message is the first validation error.
The request is invalid. message is the first validation error.
Body Error
successbooleanrequiredValues:
falsemessagestringrequiredA human-readable error message.
timestampinteger (int64)requiredServer time in milliseconds since the Unix epoch.
{
"success": false,
"message": "limit must be between 1 and 100",
"timestamp": 1790330400000
}401The API key is missing, malformed, invalid or revoked.
The API key is missing, malformed, invalid or revoked.
Body Error
successbooleanrequiredValues:
falsemessagestringrequiredA human-readable error message.
timestampinteger (int64)requiredServer time in milliseconds since the Unix epoch.
{
"success": false,
"message": "API key is required. Send it as 'Authorization: Bearer <key>'",
"timestamp": 1790330400000
}403API access is disabled for your organization (any endpoint), or, when creating an invite, your
organization has no active subscription or no interview credits left.
API access is disabled for your organization (any endpoint), or, when creating an invite, your organization has no active subscription or no interview credits left.
Body Error
successbooleanrequiredValues:
falsemessagestringrequiredA human-readable error message.
timestampinteger (int64)requiredServer time in milliseconds since the Unix epoch.
{
"success": false,
"message": "API access is not enabled for this organization",
"timestamp": 1790330400000
}404The resource doesn't exist, was cancelled, or belongs to another organization. The API never
returns 403 for another organization's IDs.
The resource doesn't exist, was cancelled, or belongs to another organization. The API never returns 403 for another organization's IDs.
Body Error
successbooleanrequiredValues:
falsemessagestringrequiredA human-readable error message.
timestampinteger (int64)requiredServer time in milliseconds since the Unix epoch.
{
"success": false,
"message": "Interview not found",
"timestamp": 1790330400000
}429Too many requests. Wait for Retry-After seconds (or the reset value in RateLimit), then retry.
Too many requests. Wait for Retry-After seconds (or the reset value in RateLimit), then retry.
Headers
RateLimitstringDraft-7 rate limit state, e.g.
limit=120, remaining=0, reset=42(reset is in seconds).RateLimit-PolicystringDraft-7 rate limit policy: the limit and the window in seconds.
Retry-AfterintegerSeconds to wait before retrying.
Body Error
successbooleanrequiredValues:
falsemessagestringrequiredA human-readable error message.
timestampinteger (int64)requiredServer time in milliseconds since the Unix epoch.
{
"success": false,
"message": "Too many requests. Retry after the number of seconds in the RateLimit header.",
"timestamp": 1790330400000
}