From an unstructured CV to clean, structured data
Built for ATS platforms and agencies with an in-house development team. One REST API call turns a PDF, Word or HTML file into validated JSON: work experience, education, location, contact details and the sections that only appear in this particular CV. Processed inside the EU, with no data storage.
Everything from the CV, the way your system expects it
Reading, checking and connecting. Three things a parser has to get right before you build a product on it.
Read
What's in the CV, in the right fields.
- Standard fieldsName, email, phone and city.
- Fixed blocksWork experience, education, certificates and languages, with dates, structured line by line.
- Unique sectionsAlso what isn't standard, such as volunteering or publications.
- Photo, links and socialsThe profile photo from the CV, plus URLs such as LinkedIn and GitHub.
Accurate
An empty field beats an invented one.
- Own AI modelBuilt for CVs and tunable to the CVs you receive.
- Checks against inventingBuilt-in checks stop the model from adding details that aren't in the CV.
- Continuously improvedEvery call has its own trace ID. If something's off, we can find exactly that call.
Connect
Fits your own system, with no mapping layer in between.
- Your data modelOutput in your own field names, or converted to ISO standards.
- REST APISend a file or base64. Request the output schema from its own endpoint.
- LinkedIn enrichmentParse and enrich with the current LinkedIn profile in one call.
One call, JSON back
Your team builds the product, the parser delivers the fields. No SDK needed, no storage to manage.
Service key
You get your own key. It belongs on your server, never in the browser. We agree the output format with you, based on your data model.
Send the CV
As a file or as base64. Via /parse, or /parse_enrich_base64 if you want the LinkedIn enrichment straight away.
Get JSON back
In your format, ready to use. The CV itself isn't kept after the call.
# Parse a CV as a file curl -X POST \ "https://…/stateless/parse/" \ -H "client-service-key: $SPADEWORK_KEY" \ -F "file=@cv-sanne-de-vries.pdf"
{
"api_version": "0.1.0",
"id_trace": "7f3c…e21a",
"result": {
"name": "Sanne de Vries",
"city": "Utrecht",
"work_experience": [
{ "job_title": "Work Planner",
"employer": "Bouwbedrijf Noord",
"from": "2021-03" }
],
"volunteering": [ … ]
}
}Shortened example. The fields in result follow your data model.
Frequently asked questions.
Which files, which format, and what happens to the data. Short answers, no small print.
PDF, Word, HTML, text and images, up to 10 MB. You send the file itself, or its contents as base64 in a JSON body. Handy if your system would rather not upload files.
We agree the format with you beforehand. The parser then returns your own field names and structure, or converts values to ISO standards. Want to see everything the parser found? Request the full Spadework format as well.
Nothing, it isn't stored. The API is stateless: the CV goes in, the JSON comes out, and nothing of it stays with us. Processing takes place within the EU and is GDPR and AI Act compliant.
You pass a social media profile URL, or the name and work experience. The parser looks up the matching profile and adds its current details to the CV. You can do this separately or in the same call as the parsing. If it finds no match, you get nothing back rather than a guess.
The CV-Parser delivers data, the CV-Transformer delivers a CV. The parser is the API that turns a CV into structured fields, to build into your own system. The CV-Transformer uses that parser and turns a CV into your house style, ready to send to a client.
Question not listed? Just ask, we usually reply within a day.
Get in touch









