Charlie Tang Hoong

Case 02 · Selected Work

Taking the typing out of a document workflow that could not go offline

A hybrid OCR and LLM pipeline substantially reduced the manual data entry in a high-volume shipping-document workflow, inside an operation whose source systems had no API and could not be replaced.

Role
Senior Business Process Specialist
Capabilities
Applied AI · Automation · Production ownership
Domain
Global container shipping — finance and logistics operations
Constraint
Source systems with no API, and often no usable web surface
Documents becoming structured records, through a human review stepShipping documents are read by OCR into per-format panels, extracted by a language model, then held in a human review queue. Nothing is committed to the database until a person has checked it.DocumentsOCR panelsper formatLLMHuman reviewqueueDBNothing commits before a person has checked it
Anonymised. No client name, no industry, no real endpoints.

Context

The Malaysian arm of a global container shipping line, where I was the Senior Business Process Specialist. A small team — mainly me and one colleague — with decision gates in two other countries. Finance and logistics staff were reading a high daily volume of shipping documents and typing what they found into systems by hand.

Problem and ambiguity

Nobody had a written description of how the work was actually done, so step one was not automation, it was archaeology. The documents arrived in very different conditions, from clean machine-generated files to material so poor the finance team resolved it by phone. And the systems on both ends were independent: no API, and often no usable web surface either. Replacing them was never on the table, on cost grounds alone.

My role

I analysed the undocumented finance and logistics processes to identify which manual, repetitive, error-prone steps were worth automating at all. I architected the document pipeline, built its Python backend APIs, and engineered and deployed the RPA workflows around it.

Discovery

Sitting with the people doing the work, mapping what actually happens rather than what the process says happens, and then testing each candidate step against one question: if this is automated and it fails at 09:00 on a Tuesday, what does the business do instead?

Architecture and trade-offs

Hybrid OCR plus LLM rather than pure LLM extraction. That was a dated decision, and it was the right one at the time: LLM vision could not extract reliably from real-world documents then, so OCR fed per-format reading panels where known field positions were masked and extracted positionally, and the language model did the part it was actually good at. The integration was deliberately non-invasive — read from what already exists rather than ask an enterprise to replace core systems it has no intention of replacing. My summary at the time was that we had many constraints, so we could only get there indirectly, and I still think that is the honest description of most enterprise AI work.

Implementation and integration

Python backend APIs serving the per-format extraction panels and the review queue, plus an operator interface that could continue a run from wherever the automation stopped. RabbitMQ for asynchronous processing. Validation controls and audit trails throughout. RPA workflows spanning data capture, validation and reconciliation across finance and logistics operations.

Production controls

This is the part I would defend hardest. Extracted values never went straight to the database: they landed in a human review queue, corrections were made there, and even clean records were double-checked before commit. A collection run could take hours and could be interrupted at any point, so runs were designed as checkpointed nodes that resume from a recorded position instead of restarting. The job started early in the morning specifically so that a failure was visible by the time staff arrived, leaving them time to fall back to the manual process and still complete the handover before midday. And the automation was never all-or-nothing: if the machine got halfway, a person could take the rest from an interface — not a node diagram, not code.

Impact

Most of the manual data entry came out of the workflow, and the operation kept running throughout. No figures are published for this engagement — a deliberate NDA decision, and it applies in conversation too.

Reusable learning

The architectural position I formed here I still argue for: for enterprises that will not replace their core systems on cost grounds, the right integration is the one that reads from what is already on the operator’s screen. And a human-in-the-loop step is not a shortfall in the automation — it is what makes the automation deployable.

Evidence pending

A clean-room rebuild over synthetic shipping-style documents, with reading panels, a review queue and checkpointed runs, is specified as project P4; it is not built.

This is the method behind it

Let’s talk

Forward Deployed Engineer · Forward Deployed AI Engineer · Applied AI Engineer · Solutions Engineer · Customer Engineer · AI Solutions Architect · Technical Delivery Lead

Based in Selangor, Malaysia. Open to client-site work in the Klang Valley, including long-term placement, and to Singapore-based and regional APAC projects.