Create a report
Analyses a candidate's resume against a job. Answers 202 with the report in queued; follow it with GET /v1/reports/{id} or the report.* webhooks. It starts at once when it can, and waits (still queued) while the candidate's resume is being read or while the organisation already has 10 analyses running. Credits or monthly quota are reserved when it starts. Send candidate instead of candidateId to find or create the candidate in the same call.
Required scope: reports:write.
Errors
- 400:
invalid_content_type,invalid_idempotency_key,invalid_json,request_body_too_large,unknown_field - 401:
authentication_required,invalid_api_key - 402:
insufficient_credits,price_exceeds_max,quota_exceeded - 403:
api_access_disabled,insufficient_scope - 404:
candidate_not_found,file_not_found,job_not_found - 409:
file_already_attached,idempotency_key_reused,idempotency_request_in_progress,job_closed,report_exists - 422:
candidate_resume_failed,candidate_resume_missing,file_expired,file_not_uploaded,file_rejected,invalid_parameter - 429:
rate_limit_exceeded - 500:
api_error - 503:
maintenance_mode,service_unavailable
ApiKeyAuthorizationBearer <probb_live_<id>_<secret>>Idempotency-Key?stringMakes retries safe. Repeating a request with the same key and body within 24 hours returns the original response with Idempotent-Replayed: true. The same key with a different body, or from a different API key, returns idempotency_key_reused.
1 <= length <= 255application/json- body
jobId*stringThe job to analyse against.
1 <= length <= 200candidateId?stringAn existing candidate. Send this or candidate.
1 <= length <= 200candidate?A candidate to find or create, with the same fields as POST /v1/candidates. It matches an existing candidate by externalId, then by email; otherwise it creates one.
externalId?stringYour own ID for the report. Unique within the organization.
1 <= length <= 128maxCredits?numberThe most credits you allow this to cost. If the current price is higher the request fails with price_exceeds_max and nothing is charged. Read the price from GET /v1/organization.
0 < value <= 1000000Success.
application/json- response
object*stringid*stringThe report's ID. The same ID the app uses.
externalId*|Your own ID for the report, unique within the organization.
status*stringqueued while it waits for the resume to be read or for capacity, processing while it is analysed, needs_review when a person must decide, completed and failed.
"queued""processing""needs_review""completed""failed"failureCode*|Why the report failed, when status is failed.
candidate*|The candidate analysed. Null if the candidate was deleted.
job*|The job analysed against. Null if the job was deleted.
score*|Resume fit: how well the resume fits the job, 0 to 10.
summary*|A short assessment of the fit.
decision*|The current hiring decision for this candidate and job.
interview*|The latest interview for this report.
reportVersion*|The report version that analysed the resume. Null until the analysis starts.
createdAt*stringWhen the report was created.
date-timeupdatedAt*stringWhen the report last changed.
date-timecompletedAt*|When the analysis finished.
# Set PROBB_URL and PROBB_API_KEY. Replace any *_VALUE placeholder and any example ID (such as job_example) with a real one.# Idempotency-Key is optional. Reuse the same key and body when retrying one logical write.curl --fail-with-body -X POST "$PROBB_URL/api/v1/reports" \ -H "Authorization: Bearer $PROBB_API_KEY" \ -H "Idempotency-Key: $REQUEST_KEY" \ -H 'Content-Type: application/json' \ --data-binary '{ "jobId": "job_example", "candidate": { "name": "Ada Lovelace", "email": "ada@example.com", "externalId": "ats-4821", "resume": { "fileId": "file_example" } }, "externalId": "app-9931", "maxCredits": 5}'{ "object": "report", "id": "string", "externalId": "string", "status": "queued", "failureCode": "analysis_failed", "candidate": { "id": "string", "name": "string" }, "job": { "id": "string", "title": "string" }, "score": 0, "summary": "string", "decision": "advance", "interview": { "id": "string", "status": "invited" }, "reportVersion": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "completedAt": "2019-08-24T14:15:22Z"}