apyhub
DATA EXTRACTION · DEVELOPER TOOLS

Resume Parsing & Analysis API

What it does

Resume Parser extracts structured resume data from either an uploaded file or pasted text. Send a PDF or DOCX to /upload, or submit resume_text directly to parse plain text resumes.

Use it when you need to turn candidate resumes into machine-readable data for ATS workflows, screening pipelines, or internal hiring tools. The service is designed around two inputs: a binary resume file in the upload endpoint, and text input with at least 20 characters in the text endpoint.

The API returns a structured resume object containing extracted information, AI-generated analysis, processing results, and attribution. That makes the service suitable when you want to ingest resume content and map it into your own downstream model or database schema.

Resume Parser fits into HR systems that need to normalize candidate documents before review, search, or enrichment. It is also useful when you have resume text already extracted from another step and want a dedicated parsing stage before matching or analytics.

▣ ENDPOINT 01 / 02
POST
Parse resume upload
https://api.eu.apyhub.com/dosvak/parse-resume-analyze/upload

QUICKSTART

GUIDE

Quickstart

Upload a resume file (.pdf or .docx) for parsing.

curl -X POST "https://api.eu.apyhub.com/dosvak/parse-resume-analyze/upload" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/resume.pdf"

What you'll get back

Returns a structured JSON object containing extracted information, AI-generated analysis, processing results, and attribution.

{
  "name": "Jane Doe Resume",
  "email": "[email protected]",
  "estimated_years_experience": 8,
  "skills": [
    "python",
    "sql",
    "fastapi",
    "docker"
  ],
  "professional_summary": "Senior Data Engineer with 8+ years in Python, SQL, FastAPI, Docker, Kubernetes, and PostgreSQL.",
  "inferred_roles": [
    "Senior Data Engineer"
  ]
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*
Resume file (.pdf or .docx)

About this endpoint

What it does

Uploads a supported resume file and returns a structured JSON object containing extracted information, AI-generated analysis, processing results, and attribution.

Request Body

ParameterTypeMandatoryDescription
fileStringYesResume file (.pdf or .docx), sent as binary data.

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ ENDPOINT 02 / 02
POST
Parse resume
https://api.eu.apyhub.com/dosvak/parse-resume-analyze

QUICKSTART

GUIDE

Quickstart

Parse a resume from plain text by sending the required resume_text field in a JSON body.

curl -X POST "https://api.eu.apyhub.com/dosvak/parse-resume-analyze" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"resume_text":"Experienced software engineer with 5+ years building web applications in Python, JavaScript, and React."}'

What you'll get back

Returns a structured JSON object containing extracted information, analysis results, metadata, and attribution.

{
  "name": "Jane Doe",
  "estimated_years_experience": 5,
  "skills": [
    "python"
  ],
  "professional_summary": "Experienced software engineer with 5+ years developing web applications using Python, JavaScript, and React.",
  "inferred_roles": [
    "Software Engineer",
    "Web Developer"
  ]
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
ResumeInput*

About this endpoint

What it does

Parses resume text and returns a structured JSON object containing extracted information, analysis results, metadata, and attribution.

Request Body

ParameterTypeMandatoryDescription
resume_textStringYesResume text to parse. Minimum length: 20 characters.

Body

Name
Type
Description
bodyREQUIRED
object
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.