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.
Authorization: Bearer rp_live_Xk3m89...
Create verification
/v1/verifySubmit 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
| Name | Type | Required | Description |
|---|---|---|---|
| resume | File | Yes | PDF file of the resume (max 10MB) |
| githubUsername | string | Yes | The candidate's GitHub username |
Responses
{ trackingId: string, status: "queued", createdAt: string }Job successfully queued.
{ error: "invalid_file" | "missing_fields" }Bad request (file not PDF, too large, or missing fields).
{ error: "unauthorized" }Invalid or missing API key.
{ error: "quota_exceeded", retryAfter: number }Monthly quota exceeded or rate limited.
curl -X POST https://api.resumeproof.online/v1/verify \-H "Authorization: Bearer rp_live_Xk3m89..." \-F "resume=@/path/to/resume.pdf" \-F "githubUsername=octocat"
{"trackingId": "job_9f8e7d6c5b4a","status": "queued","createdAt": "2026-07-22T19:20:00Z"}
Retrieve a job
/v1/jobs/:trackingIdPoll for the result of a submitted verification job. Note that relying on webhooks is strongly recommended for production use cases.
Path Parameters
| Name | Type | Description |
|---|---|---|
| trackingId | string | The unique identifier returned when the job was queued. |
Responses
VerificationResultThe current state of the job. If status is COMPLETED, the full analysis is included.
{ error: "job_not_found" }The specified trackingId does not exist.
curl -X GET https://api.resumeproof.online/v1/jobs/job_9f8e7d6c5b4a \-H "Authorization: Bearer rp_live_Xk3m89..."
{"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.
| Field | Type | Description |
|---|---|---|
| trackingId | string | Unique identifier for the job. |
| githubUsername | string | The GitHub handle passed in the original request. |
| confidenceScore | number | A deterministic integer from 0-100 assessing the validity of the candidate's claims. |
| status | string | Current state: COMPLETED or FAILED. |
| verifiedProjects | array | List of projects extracted from the PDF successfully matched against GitHub repositories.name: Project namerepoUrl: Matched repository URLcommits: Total verified commits by candidatematchStrength: HIGH | MEDIUM | LOW |
| flags | array | Anomalies or notes detected during analysis (e.g. forged timestamps, massive commit dumps).severity: CRITICAL | WARNING | INFOmessage: Plain English description |
| completedAt | string | ISO-8601 timestamp of job completion. |
Automate with Webhooks
The VerificationResult object is pushed to your endpoint seamlessly. Avoid polling loops in production environments.