Quick Start

Parse your first resume in 5 minutes

Parse your first resume in under 5 minutes.

Step 1: Subscribe and Get Your API Key

Sign up for a plan (Beginner at $10/mo or Professional at $50/mo), then create and copy your API key from the dashboard.

Step 2: Parse a Resume

curl -X POST https://api.theresumeparser.com/v1/parse \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "type": "url",
      "data": "https://example.com/resume.pdf"
    }
  }'

Optional: Add Job Matching

Include input.job_description and matching config:

curl -X POST https://api.theresumeparser.com/v1/parse \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "type": "url",
      "data": "https://example.com/resume.pdf",
      "job_description": "Senior Python backend engineer with FastAPI and PostgreSQL..."
    },
    "config": {
      "matching": { "skip": false, "top_skills": 3 }
    }
  }'

Defaults apply when config is omitted. For multipart/form-data, send optional settings in a config form field as a JSON string.

Optional: Fast Raw Text Matching (Skip Parse)

Use this for high-volume screening when you only need match scores:

curl -X POST https://api.theresumeparser.com/v1/parse \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "type": "text",
      "data": "John Doe\nSenior Python Engineer\nFastAPI PostgreSQL Docker...",
      "job_description": "Senior Python backend engineer with FastAPI and PostgreSQL..."
    },
    "config": {
      "parse": { "skip": true },
      "matching": { "model_tier": "basic", "top_skills": 3 }
    }
  }'

Response:

{
  "request_id": "req_abc123",
  "status": "created",
  "estimated_credits": 1,
  "remaining_balance": 499,
  "created_at": "2026-03-04T10:30:00Z"
}

Step 3: Get Results

curl https://api.theresumeparser.com/v1/parse/req_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"

Response:

{
  "request_id": "req_abc123",
  "status": "completed",
  "credits_consumed": 1,
  "remaining_balance": 498,
  "ai_features": {
    "summary": "Full-stack engineer with 8+ years of experience...",
    "skills_aggregation": { "total_skills": 12, "by_proficiency": {...} },
    "experience_summary": { "total_years": 8.5, "current_title": "Senior Engineer" }
  },
  "matching": {
    "score": 72,
    "summary": "Strong backend fit with a few critical gaps.",
    "matched_skills": [
      { "skill": "Python", "requirement": "5+ years Python", "reason": "10 years professional use" }
    ],
    "missing_skills": [
      { "requirement": "Kubernetes", "criticality": 0.8, "transferable_skills": ["Docker", "AWS"] }
    ]
  },
  "result": {
    "personal_info": {
      "name": "John Doe",
      "email": "[email protected]",
      "phone": "+1234567890"
    },
    "summary": "Experienced software engineer...",
    "experience": [...],
    "education": [...],
    "skills": [
      {
        "skill": "JavaScript",
        "skill_id": "javascript",
        "synonyms": ["javascript", "js", "ecmascript"],
        "proficiency": "expert",
        "proficiency_score": 0.92,
        "years_experience": 8,
        "last_used": "2026-01",
        "confidence": 1.0,
        "match_method": "exact"
      }
    ]
  }
}

Code Examples

Node.js

const response = await fetch('https://api.theresumeparser.com/v1/parse', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    input: { type: 'url', data: 'https://example.com/resume.pdf' }
  })
});

const data = await response.json();
console.log(data.request_id);

Python

import requests

response = requests.post(
    'https://api.theresumeparser.com/v1/parse',
    headers={'Authorization': 'Bearer YOUR_API_KEY'},
    json={'input': {'type': 'url', 'data': 'https://example.com/resume.pdf'}}
)

data = response.json()
print(data['request_id'])

Next Steps