Case study · AI engineering
Five document jobs, one way of working.
People opened documents one at a time, read them on screen, and typed what they found into spreadsheets. We built one system that reads those documents, applies each team’s own checks, marks anything that looks wrong, and produces the file they already use.
What it changes: Documents go in once. Only the exceptions come back to the team. Three departments that each had their own manual routine now share one way of reading, checking and filing, and a number can be traced back to the document it came from.
- Client
- Anonymous, at their request
- Sector
- Vehicle import, distribution and logistics
- Teams
- Operations, logistics and finance
- Status
- Built and demonstrated. Not live yet.
- What we built
- Five document jobs on one extraction and checking pipeline
- Evidence
- Everything below was observed while the system ran. No production measurements exist yet.
- Document extraction
- VIN validation
- Cross document comparison
- Tariff checking
- Finance templates
- Email intake
- Exceptions only
Before: important checks depended on someone remembering to do them
Documents arrived by email, in shared folders, on memory sticks, and by hand. The tools were ordinary ones: a PDF reader, spreadsheets, the annual tariff, and two finance templates.
Operations: typing up Bills of Lading
Staff opened Bills of Lading one at a time, retyped the details into a spreadsheet, and checked each vehicle’s VIN by counting the characters on screen.
Logistics: comparing documents
Documents for the same shipment were read side by side, which made disagreements slow to find and hard to record the same way twice.
Logistics: checking freight bills
Every line on the carrier’s bill was checked by hand against the annual tariff, which left room for wrong rates and charges nobody recognised.
Finance: the same bill, typed twice
Supplier bills arrived in different layouts, so the same details were typed out twice. Once into the finance system’s import file, once into the payment voucher.
All teams: getting attachments out of email
Attachments had to be saved out of email, unlocked, renamed and filed before any of the work above could start.
The shared problem
Slow review, the same details typed again and again, avoidable mistakes, results scattered across files, and little way to trace a number back to its document.
What was at stake
None of it looked urgent on the day. The work was routine and any one mistake was small. What made it worth taking seriously is what a small mistake turns into three weeks later.
- A shipment held up: a discrepancy nobody caught can delay a shipment being cleared.
- A charge nobody questioned: a rate that does not match the annual tariff gets paid, because nothing in the process forced the comparison.
- No way back to the source: if somebody questioned a row later, the filename was often the only route back to the document.
One approach, reused
The system reads the document, pulls out the details, applies that team’s rules, marks anything that looks wrong, and produces the file they already use. Each of the five jobs runs all five steps on its own.
- 01Send them in. Staff upload a batch of documents, or the system picks the attachment up from an email.
- 02Read them. The system works out what each document is and pulls out the details that job needs.
- 03Apply the checks. Rules check VINs, compare records against each other, and test charges against the annual tariff.
- 04Mark the exceptions. Anything missing, anything that disagrees, and anything the system was unsure about is flagged clearly.
- 05Produce the file. A structured spreadsheet is generated and sent to the people who need it.
What made it hard: reading the document was the easy part
Software has been able to pull text off a scan for years. The difficulty is that each of the five jobs has its own idea of what a right answer looks like: a VIN that is exactly 17 characters; the same value appearing on all four shipment documents; a charge that matches the annual tariff; one supplier bill mapped correctly into two different finance templates; an attachment pulled out of an email, unlocked, and named from what is inside it.
And the documents do not cooperate. Scanned and digital documents varied in quality and layout, carried stamps and handwriting, and repeated line items down the page. The same detail could appear under a different label from one document to the next.
The version that looks fine in a demonstration
A box you drop files into and a table of results is not hard to build. It falls over in the first week of running on its own. Nothing keeps a record of what was processed, one file in fifty fails and nobody notices, and a month later nobody can say where a number came from. Building it around their own checks and their own output files meant they could judge it on their own paperwork, rather than on a demonstration built to go well.
The five jobs
- 01 · Bill of Lading extraction
- The whole batch is read in one go. Every VIN is checked against the rule that it must be exactly 17 characters. Sample run: 9 documents read, 6 valid VINs, 1 trimmed to 17, 1 short, 1 needs review.
- 02 · Comparing documents
- The same fields from the Bill of Lading, commercial invoice, packing list and certificate of origin go into one table. Sample: eight fields across four documents, three disagree, two missing. Those five are what the team looks at.
- 03 · Checking freight bills
- The tariff is loaded once and every bill line is matched against it. Sample: 8 lines checked, 4 correct, 4 charged too much, 8.18 over in total. None large on its own, which is exactly why they used to get through.
- 04 · One bill, two finance files
- The bill is read once and both the finance import file and the payment voucher are filled from the same rows. Sample: 2 bills, 5 lines, 0 failed.
- 05 · Email attachment intake
- The system takes the email, finds the attachment, unlocks it where allowed, names it from its contents, and files it so the next job can find it without anybody renaming anything.
The outcome: demonstrated, and reusable
Validated through implementation
- All five jobs ran from start to finish
- Documents uploaded through the browser
- Reading and comparison produced structured results
- Each job generated the spreadsheet it needed
- Finished files sent out by email automatically
What it makes possible
- Repetitive typing replaced by reviewing the exceptions
- VIN, tariff and cross document checks done the same way every time
- Finance fills two templates from one reading
- A number traced back to its document
- The same approach extended to other paperwork heavy teams
Estimated, not measured
Nobody has run this for a month and counted. Our estimates, worked out from the manual steps being replaced, are up to 90% faster document processing, up to 75% fewer manual entry errors, up to 70% fewer comparison errors, and up to 85% faster tariff checking. Every one of these is an estimate. Confirming them needs the client’s own evidence: minutes per document, weekly volumes, correction rates and shipment turnaround times. Until that exists, nothing on this page describes them as achieved.
The job transfers
Anyone typing documents into spreadsheets
Freight forwarders and customs brokers
Importers and distributors
Accounts payable teams
Anyone checking bills against a rate card
Logistics and transport operators
Procurement teams
Any team reconciling supplier invoices by hand
More ai engineering work

AI engineering · Life insurance · Australia
They stopped choosing which calls to hear
Life Insurance Direct sells life cover on the phone. We built the system that reads every one of those calls, scores both sides, and hands the team a review queue in risk order instead of a sample.
- 9,218 in four months, both sides
- Calls read
- Live, in their own cloud
- Status
Next
Tell us which part of this looks like your problem.
We will walk you through how it was built, who built it, and what it took to keep it running afterwards.