With Claude, helloparts:
- Turned unstructured PDF purchase orders into structured orders created automatically in the platform
- Returned zero catalogue-breaking part numbers across 183 pages
- Flags uncertain values for human review instead of guessing at them, so errors surface in the review queue rather than at the customer
- Went live on 24 July 2026 and now serves workshops across Germany
At GoTeams, the AI delivery practice of GoGroup GmbH, we build production AI features for our partners. helloparts, the intelligent purchasing platform operated by GoParts Technology GmbH, lets automotive parts professionals order across brands from their preferred suppliers. They came to GoTeams with a problem hiding in plain sight: a share of their order volume never touched the platform’s ordering flow at all. It arrived as PDFs.
The order that arrives as a document
Every customer order that reaches helloparts starts life as a document. Some are clean PDF exports from a workshop’s DMS. Others are scans, or screenshots of exports, or now and then a photograph of a printout taken at an angle in bad light.
Every one of them has to come out the other side as clean structured data: part numbers, quantities, descriptions, order references, delivery addresses. Get that right and the order flows straight through to the supplier. Get it wrong and somebody spends twenty minutes on the phone working out what the customer actually meant.
The work is essential and almost entirely mechanical. It is also the kind of task that scales badly. Every new workshop brings a new document layout, and no amount of template-matching keeps up. helloparts was already running an off-the-shelf extraction service, and the question in front of them was a straightforward build-or-buy one: renew, or build something fitted to their own catalogue.
What we built
Working alongside the helloparts team, we built a document parsing service into the platform, powered by Claude, on Anthropic’s Claude Developer Platform.
Incoming PDFs are parsed by Claude in two passes. Header extraction pulls customer, delivery address, purchase order number and dates. Line-item extraction pulls OEM and article numbers, descriptions, quantities and prices. Extracted values are then normalised against the helloparts catalogue, and an order is created in the platform automatically.
The design principle we held throughout: a human stays in the loop, but only where it earns its keep. Every extraction carries a confidence score, and only low-confidence results land in the review queue. Everything else flows straight through.
The service went live on 24 July 2026 and has been in production use by workshops across Germany since, currently handling 50 to 60 orders per week.
Designing for loud errors instead of quiet ones
The thing we spent the most design effort on is not accuracy in the aggregate. It is which kind of error the system is allowed to make.
A blank field is a loud error. Something downstream flags it, a person fills it in, the order moves on, and the whole thing costs a minute of attention. A confidently wrong value that survives visual inspection is a silent error, and silent errors are the ones that reach the customer.
The sharpest version of this in a parts catalogue is the part number that looks perfect and matches nothing. Characters drawn from a non-Latin writing system render identically to their Latin counterparts. To a human reviewing the output, the extraction is flawless. To the catalogue, the part does not exist, and no lookup will ever find it. The order stalls somewhere far downstream, long after anyone was watching.
So the pipeline is built to fail loudly. Extracted part numbers are validated against manufacturer format rules before they are written; vehicle identification numbers are checked against the rule that they never contain the letters I, O or Q; quantities are range-checked against what a workshop plausibly orders. Anything that fails goes to the review queue as a blank with a flag, not as a plausible-looking guess.
Across 83 production documents and 183 pages, that produced zero catalogue-breaking part numbers, zero cases of the wrong table being read, and four implausible quantities. Blank part numbers sat at 6.8% and blank quantities at 16.7% — visible, flagged, and cheap to fix.
What we are still fixing
One measure has not landed where we want it. Order reference numbers came back wrong on 11 of 83 documents — a header field, and by our own design principle a loud error rather than a silent one, but still a number we are not happy with. It is a prompt-scoping problem rather than a model one: reference numbers sit in wildly different places across layouts, and the header pass sometimes latches onto the wrong candidate. A targeted fix is in progress.
We are reporting it because a case study that only lists the measures that went well is not much use to anyone deciding whether to do the same thing.
“A part number that looks perfect on screen and matches nothing in our catalogue is worse than no part number at all. That was the principle the whole build was designed around.
What mattered to us was not that the system is clever — it is that it stops inventing answers our catalogue could never act on.”
Wilco Jansen, Product Manager, helloparts
What’s next
This is the first phase. Next, we are extending coverage to further document types, order confirmations, invoices and delivery notes, adding OCR handling for scanned and photographed inputs, and building a hand-verified accuracy baseline so quality can be tracked as volume scales.
A note on method: the accuracy figures above come from an automated review of all 83 production documents processed between 24 July and 5 August 2026, checked against vehicle identification rules and manufacturer part-number formats rather than a hand-verified answer key. A manual check of a 20-document sample is planned to confirm them.
The document parsing service was designed and built by GoTeams, the AI delivery practice of GoGroup GmbH, in partnership with helloparts.
Claude and Anthropic are trademarks of Anthropic, PBC.

Leave a Reply