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
- Review API Reference for all endpoints
- Optimize costs with Models & Pricing
- Understand Skills Normalization