Skip to main content
This example turns a resume into candidate data you can filter on: name, contact details, years of experience, and three tables of rows for skills, education and work history. Each table is an object field, which is how a repeating list is modelled on the typed graph.
The resume
What comes back
candidate_name98%
years_of_experience95%
skills
work_history
NodesParse → ExtractCredits60 per pageYou get

The workflow

Run it and read the result

The files field accepts PDF, DOCX and images. Poll the run until its status is processed.

Response

The results envelope of a processed run, trimmed. A current role comes back with end_date.value: null.
Response
Every cell also carries verification_status and value_override. Runs and results has the full envelope, section by section.

When it goes wrong

A current job comes back with a made-up end date. The model fills a date field it was asked for. Describe end_date as “empty if this is the current role”, the way this schema does, and the current job returns end_date.value: null instead. Your skills list arrives as one long string. There is no list data type. A free-form list is an object field with one nested field, as skills does here, and each item comes back as its own row with its own confidence. Field types has the shapes. You cannot filter on years of experience. Every value is a string on the wire, so "9" sorts next to "10" the wrong way. Declare years_of_experience as integer and cast it once on the way in, rather than parsing text at query time. A scanned resume loses half the work history. A DOCX or born-digital PDF has native text, so nothing is lost to OCR. A scan does not. Where you control the intake, ask for DOCX. Where you do not, move the Parse node to the agentic tier (100 credits per page) for the scanned batch. Dates come back on the first of the month. Resumes write “March 2021”, which names no day. A date field normalises that to 2021-03-01. Compare on month, not on day, when you rank candidates by tenure.

Next steps

Upload and run

The multipart request, idempotency and filename rules

Field types

Objects, enums and the other field shapes