Solution · Resume parsing API

Resume parsing for ATS, HR-tech, and recruiting platforms — on hardened PDF infrastructure

DocuShell's Resume Parse endpoint returns deterministic, structured candidate profiles from PDF resumes. Built for product teams that need a stable JSON contract, signed webhooks, idempotent retries, and predictable monthly pricing — without negotiating an enterprise contract before the first parse.

  • Deterministic structured output. No hallucinated fields, no LLM drift between requests.
  • Returns candidate, contact, experience, education, skills, sections, and ATS confidence in one JSON payload.
  • Same hardened public API used by every DocuShell endpoint — Idempotency-Key safe, signed webhooks, ephemeral storage.

cURL — submit a resume

curl -X POST "https://api.docushell.com/api/v1/resume/parse" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: candidate-applied-2026-06-09-001" \
  -F "file=@./candidate-resume.pdf;type=application/pdf" \
  -F "webhook_url=https://your-ats.example.com/hooks/docushell" \
  -F "webhook_secret=replace-with-a-long-secret"

Resume profile response

{
  "job_id": "job_01JX8Y5YJ2M2D8N1AQ5F7Q3KVT",
  "status": "done",
  "service": "resume-parse",
  "result": {
    "resume": {
      "candidate": {
        "name": "Ram Kumar",
        "headline": "Operations Manager",
        "location": "Pune, Maharashtra"
      },
      "contact": {
        "emails": ["[email protected]"],
        "phones": ["+91 98000 00000"],
        "links": []
      },
      "skills": [
        "Process Improvement",
        "Operations Management",
        "Project Management",
        "Strategic Planning"
      ],
      "experience": [
        {
          "title": "Operations Manager",
          "company": "Acme Industries",
          "location": "Pune, Maharashtra",
          "start_date": "April 2014",
          "end_date": "Current",
          "current": true,
          "date_range": "April 2014 - Current",
          "bullets": ["Owned regional ops for 4 manufacturing sites."]
        }
      ],
      "education": [
        {
          "institution": "Symbiosis Institute of Management Studies",
          "degree": "Masters, Business Administration",
          "graduation_date": "July 2010",
          "location": "Pune, Maharashtra"
        }
      ],
      "ats": {
        "section_coverage": ["skills", "experience", "education"],
        "confidence": { "overall": 0.93 }
      }
    }
  }
}

Built for

ATS and recruiting platforms

Drop in normalized candidate profiles for new applicants without writing or maintaining your own NLP pipeline.

Job boards and sourcing tools

Bulk-parse resume uploads into searchable candidate records with consistent fields across sources.

HR-tech SaaS and HRIS

Reuse one parsing layer across onboarding, internal mobility, talent reviews, and reporting.

How it fits into your stack

  1. Send a candidate's PDF resume to POST /v1/resume/parse with a webhook URL.
  2. DocuShell queues the parse job, validates the PDF, runs the structured extractor, and returns a job_id.
  3. When the job completes, your webhook receives a signed resume.parse.completed event with the structured profile.
  4. Map the JSON fields directly into your ATS candidate model — no manual cleanup required.

How DocuShell compares to Affinda, RChilli, and Sovren

The table below summarizes commercial and architectural differences. We will update it as competitors change their offerings — if you spot something stale, please email [email protected].

CapabilityDocuShellAffindaRChilliSovren
Pricing modelFlat monthly credits from $9/mo (INR pricing native)Per-document, sales-led after free trialPer-document, annual contracts typicalPer-document, enterprise contracts typical
Time to first parseSelf-serve API key in under a minuteSelf-serve trial, then commercial follow-upDemo + commercial onboardingDemo + commercial onboarding
INR billing nativeYes (Razorpay subscriptions, INR + USD)No (USD/EUR/GBP)YesNo (USD-only typical)
Output styleDeterministic JSON: candidate / contact / experience / education / skills / sections / ATS confidenceJSON, model-drivenJSON / XMLJSON / XML
Idempotent retriesYes, Idempotency-Key with in-flight 425 protectionLimitedLimitedLimited
Signed completion webhooksYes, HMAC-SHA256 with rotation + replay noncesYesYesYes
Ephemeral document storageFiles deleted on stream completion + 1-hour sweepRetention policy depends on tierRetention policy depends on tierRetention policy depends on tier

FAQ

Is this a third-party model or DocuShell's own extractor?+

It's DocuShell's own deterministic extractor running on the parse-pdf service. Output is stable across requests — there is no LLM in the resume profile mapping step, so the same input always produces the same JSON.

What fields are returned?+

candidate (name, headline, location), contact (emails, phones, links), experience[], education[], skills[], sections (summary, skills, experience, education, projects, certifications, languages, etc.), and an ATS confidence block. The raw parse document is also exposed for QA.

How do I handle a batch of resumes?+

Use POST /v1/resume/parse/batch. The batch endpoint accepts up to 10 PDFs per request, returns a batch_id, and emits resume.batch.* webhook events as files complete.

Do you offer a free trial?+

Yes. The Free plan includes 500 credits for browser tools and account exploration. Paid plans start at $9/mo (Starter) and include API keys plus signed webhooks. Try the live playground at /docs/playgrounds/resume before signing up.

What is the price per resume?+

Resume Parse uses the same monthly credit pool as every DocuShell endpoint. Credit consumption per resume is documented under the resume-parse endpoint in the API reference, and there are no surprise overage charges — usage is hard-capped to your plan.

Where is the data stored?+

Uploaded resumes and generated artifacts live in ephemeral processing storage only. Files are removed after the download stream completes or within a one-hour cleanup sweep. See the Security Posture page for the full data lifecycle.

Ship resume parsing in an afternoon, not a quarter

Sign up, grab an API key from the dashboard, send your first PDF, and wire a webhook into your candidate flow. No sales call required.