API Reference

Comprehensive documentation for the ResumeProof REST API.

Authentication

All API requests require an API key to be passed in the Authorization header as a Bearer token.

You can manage your API keys in the dashboard. Keep your keys secure and do not share them in publicly accessible areas like GitHub or client-side code.

Headers
Authorization: Bearer rp_live_Xk3m89...

Create verification

POST/v1/verify

Submit a resume PDF and GitHub username for verification. Returns a tracking ID immediately. The result is delivered to your webhook when the job completes.

Request Parameters

Content-Type: multipart/form-data

NameTypeRequiredDescription
resumeFileYesPDF file of the resume (max 10MB)
githubUsernamestringYesThe candidate's GitHub username

Responses

200
{ trackingId: string, status: "queued", createdAt: string }

Job successfully queued.

400
{ error: "invalid_file" | "missing_fields" }

Bad request (file not PDF, too large, or missing fields).

401
{ error: "unauthorized" }

Invalid or missing API key.

429
{ error: "quota_exceeded", retryAfter: number }

Monthly quota exceeded or rate limited.

cURL
curl -X POST https://api.resumeproof.online/v1/verify \
-H "Authorization: Bearer rp_live_Xk3m89..." \
-F "resume=@/path/to/resume.pdf" \
-F "githubUsername=octocat"
Response (200)
{
"trackingId": "job_9f8e7d6c5b4a",
"status": "queued",
"createdAt": "2026-07-22T19:20:00Z"
}

Retrieve a job

GET/v1/jobs/:trackingId

Poll for the result of a submitted verification job. Note that relying on webhooks is strongly recommended for production use cases.

Path Parameters

NameTypeDescription
trackingIdstringThe unique identifier returned when the job was queued.

Responses

200
VerificationResult

The current state of the job. If status is COMPLETED, the full analysis is included.

404
{ error: "job_not_found" }

The specified trackingId does not exist.

cURL
curl -X GET https://api.resumeproof.online/v1/jobs/job_9f8e7d6c5b4a \
-H "Authorization: Bearer rp_live_Xk3m89..."
Response (200)
{
"trackingId": "job_9f8e7d6c5b4a",
"githubUsername": "octocat",
"confidenceScore": 94,
"status": "COMPLETED",
"verifiedProjects": [
{
"name": "auth-service",
"repoUrl": "github.com/octocat/auth-service",
"commits": 142,
"matchStrength": "HIGH"
},
{
"name": "data-pipeline",
"repoUrl": "github.com/octocat/data-pipeline",
"commits": 89,
"matchStrength": "HIGH"
}
],
"flags": [
{
"severity": "INFO",
"message": "Candidate contributed heavily to 'auth-service' but mostly in documentation."
}
],
"completedAt": "2026-07-22T19:21:05Z"
}

VerificationResult Object

The core object returned via webhook delivery and polling. It contains the deterministic score, parsed projects, and any anomalies flagged during analysis.

FieldTypeDescription
trackingIdstringUnique identifier for the job.
githubUsernamestringThe GitHub handle passed in the original request.
confidenceScorenumberA deterministic integer from 0-100 assessing the validity of the candidate's claims.
statusstringCurrent state: COMPLETED or FAILED.
verifiedProjectsarrayList of projects extracted from the PDF successfully matched against GitHub repositories.

name: Project name
repoUrl: Matched repository URL
commits: Total verified commits by candidate
matchStrength: HIGH | MEDIUM | LOW
flagsarrayAnomalies or notes detected during analysis (e.g. forged timestamps, massive commit dumps).

severity: CRITICAL | WARNING | INFO
message: Plain English description
completedAtstringISO-8601 timestamp of job completion.