Resume Parsing API · Healthcare-grade
The resume parser that knows what an RN licence is.
One call turns any PDF, DOCX, or scan into schema-validated JSON: licence numbers, post-nominal credentials, canonical specialties, and travel work histories where the agency never swallows the facility. Confidence-scored, so your team only reviews what needs eyes.
- Name
- Jane Okafor, RN
- Licence
- RN0198432 · TX
- Specialty
- CVICU
- input formats, scans included
- 6input formats, scans included
- structured output fields
- 40+structured output fields
- OCR with Textract fallback
- 2-stageOCR with Textract fallback
- per resume, scans included
- ≤ 2 minper resume, scans included
- documents retained after parsing
- 0documents retained after parsing
01Built for healthcare staffing
Generic parsers see text. This one sees a clinician.
Nurses and allied health professionals carry structure most parsers destroy, licences with numbers, credential strings after names, travel assignments nested under agencies. Blue-IQ extracts each into its own field.
Real practice licences
LicencesNumber verbatim with letter prefix, state as written, compact and multistate flag, and status, never mislabelled as a certification.
Post-nominals, preserved
Credentials“Jane Smith, RN, BSN, CCRN” becomes a clean name split from every credential, in order, exactly as written.
Travel histories, untangled
Work historyOne entry per facility under an agency umbrella. The staffing agency is kept in its own field and never overwrites the hospital where the assignment happened.
Specialties mapped to your platform
Specialties“Med Surg/Tele”, “CVICU”, “L&D” matched to your platform’s specialties: profession-scoped, with a confidence score, exact names kept, and anything unmatched flagged for review instead of dropped.
Memberships & committees
AssociationsSigma Theta Tau, AACN, unit committees, and process-owner roles: captured, not silently dropped.
Certs with honest dates
CertificationsBLS, ACLS, CCRN with issued and expiry dates kept apart, so an unlabelled date is never guessed into an expiry.
Not nurse-only: radiologic and CT/MRI technologists, respiratory therapists, OT/PT/SLP, surgical and lab techs, and social workers parse with the same depth. And it remains a fully general resume parser, send it an accountant and you get clean JSON back.
02How a parse runs
Four stages between upload and JSON.
- 01
Read anything
Digital text comes straight out. Scans and photos run tiered OCR: Tesseract first, AWS Textract when quality demands it.
pdf · docx · png · jpg · tiff · scan - 02
Map the document
A multi-pass engine locates every role before extracting it, so a 15-job travel history keeps all 15 employers.
structure → per-role extraction - 03
Validate, never invent
Output is forced through a strict schema. A missing date stays null and is never padded into a fake one.
08/2018, not 08/01/2018 - 04
Score and flag
Per-section confidence plus plain-language warnings: a summary that looks copied, a name the email contradicts.
"confidence": { "overall": 0.93 }
03Human-in-the-loop
Your team reviews four resumes, not four hundred.
Every section carries a 0–1 confidence score. Set a threshold: clean records flow straight into your system, and only the uncertain ones queue for a person. Degraded parses come back flagged partial with plain-language warnings, never a silent failure.
- Per-section and overall scores on every response
- partial: true on degraded documents, so nothing fails silently
- Warnings a recruiter can read, not error codes
- Feedback endpoint: corrected JSON flows back to improve the model
→ auto-accepted
→ auto-accepted
→ auto-accepted
→ queued for human review
04Developer-first
A request and a response. That’s the integration.
No SDK required, no callback gymnastics for the simple case. Async OCR jobs return a job_id to poll, or register a signed webhook and skip polling entirely.
# one call
curl -X POST \
https://api.parsinglab.blue-iq.ai/api/v1/resume/parse \
-H "X-API-Key: rp_live_…" \
-F "file=@resume.pdf"
# difficult scan? force high-accuracy OCR
-F "force_textract=true"// 200 OK
{
"status": "completed",
"data": { "licenses", "experience", "credentials"… },
"confidence": { "overall": 0.91 },
"partial": false,
"warnings": []
}Uniform errors
Every failure shares one envelope with a machine error_code and a hint written for end users.
"error_code": "FILE_TOO_LARGE"Signed webhooks
Async results carry an HMAC-SHA256 signature and timestamp. Verify, then trust the payload.
X-Signature: sha256=…Batch up to 200
Submit a folder of resumes in one request; per-file jobs report back individually.
POST /api/v1/resume/batch05Security & privacy
Candidate documents are radioactive. Handle accordingly.
A resume is PII end-to-end. The safest place to keep it is nowhere, so that’s the design.
- Zero document retention
- Resumes are parsed in memory and deleted on completion. There is no stored copy to breach.
- Encrypted in transit
- Every request runs over TLS, authenticated by a per-account key you can rotate at any time.
- Signed webhooks
- Async deliveries carry an HMAC-SHA256 signature and timestamp; replay-window guidance is in the docs.
- Content-free audit trail
- We log that a parse happened (duration, file type, token spend), never what the document said.
Start free · no credit card
Your first parsed resume is five minutes away.
Create an account, generate a key, send a file. The dashboard tracks every job from day one.