Public REST API • Version 1.0

Resumes In. Clean Structured Data Out.

The CVFormatter API converts unstructured candidate documents (PDF, DOCX, DOC, PNG, JPEG) into verified, strongly-typed JSON candidate profiles, and compiles them into brand-compliant Microsoft Word (.docx) documents and shareable web previews.

Engineered for high-volume recruitment platforms

Multi-Modal Extraction

Processes both digital vector PDFs and scanned image files with high-precision OCR and entity recognition.

Automated AI Proofreading

Standardizes verb tenses, fixes typos, and highlights career progression without altering factual achievements.

Deterministic Economics

Zero costs for status checks, structured JSON retrieval, duplicate uploads, or Word document exports.

How the API works (3-Step Asynchronous Lifecycle)

Because multi-page PDF rendering and multi-modal AI extraction require compute time (averaging 3.5 to 6 seconds), the CVFormatter API follows a non-blocking asynchronous pipeline:

1

Upload the Document

Send the document binary via multipart form data with a unique Idempotency-Key. The gateway returns HTTP 202 Accepted and a tracking id.

Costs 1 Resume Credit
2

Poll Processing Status

Query GET /resumes/:id every 2–3 seconds. The status transitions from PENDING → PROCESSING → COMPLETED.

100% Free (Unlimited)
3

Retrieve Output or Export

Query /resumes/:id/data for structured JSON, or call /export to generate a branded Microsoft Word document.

100% Free (Unlimited)

Copy-paste integration quickstart

Production base URL: https://api.cvformatter.co/api/v1/public. Replace YOUR_API_KEY with a secret token generated in your dashboard:

# 1. Ingest resume document (Costs 1 credit, returns 202 Accepted)
curl -X POST "https://api.cvformatter.co/api/v1/public/resumes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: ats-cand-98102" \
  -F "file=@./resume.pdf;type=application/pdf" \
  -F "auto_proofread=true" \
  -F "recruiter_id=rec_0189"

# 2. Poll processing status (100% Free - poll every 2-3 seconds)
curl "https://api.cvformatter.co/api/v1/public/resumes/RESUME_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"

# 3. Retrieve formatted structured JSON (100% Free)
curl "https://api.cvformatter.co/api/v1/public/resumes/RESUME_ID/data" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response Preview (200 OK)
{
  "id": "cv_res_89a01f",
  "status": "COMPLETED",
  "data": {
    "basic_info": {
      "first_name": "Jane",
      "last_name": "Doe",
      "full_name": "Jane Doe",
      "email": "jane@example.com",
      "phone_number": "+1-555-0199",
      "location": { "city": "San Francisco", "country": "USA" },
      "current_title": "Senior Backend Engineer",
      "summary_description": [
        "Distributed systems engineer with 8+ years experience scaling cloud data pipelines."
      ]
    },
    "skills": ["TypeScript", "Python", "PostgreSQL", "Next.js", "Docker", "AWS"],
    "work_history": [
      {
        "role_title": "Senior Backend Engineer",
        "company": "Acme Technologies",
        "location": "San Francisco, CA",
        "start_date": "2021-03",
        "end_date": "Present",
        "bullet_points": [
          "Led development of candidate search indexing platform reducing query latency by 45%.",
          "Maintained 99.99% uptime for core integration endpoints handling 10M events/day."
        ]
      }
    ],
    "education": [
      {
        "degree": "B.S. in Computer Science",
        "institution": "Stanford University",
        "start_date": "2013",
        "end_date": "2017"
      }
    ],
    "resume_language": "english"
  }
}

Explore the developer guides