The situation
Two problems in the same business, connected by the same underlying gap.
The operations team received inventory status emails from a wide range of vendors, each arriving in whatever format that vendor happened to use. Some carried embedded HTML tables, some attached spreadsheets, some attached photographs of printed documents, and some simply linked to a web page. Somebody had to read each one and re-type its contents into a spreadsheet, which consumed more than five hours per person every week.
Meanwhile the sales team sent weekly inventory and pricing emails to over a hundred customers. Each message was heavily customized, because the inventory relevant to one customer was not relevant to another. Assembling them by hand meant the team could realistically reach about 60% of the top customer base in any given week.
The approach
Unified extraction. A single application that ingests every email format, runs structured extraction against it, and produces a normalized inventory snapshot. Local model hosting through Ollama kept the per-document cost negligible at volume, which matters when the process runs continuously rather than occasionally. Integration covered both Gmail and Outlook, because the business used both.
Master data underneath. The extraction is only useful if the same product from three different vendors resolves to one item, so the build included a document database design and real master data management rather than a flat extraction target.
Automated draft generation. With a reliable inventory snapshot in place, the second build generated customized sales email drafts, selecting the correct inventory information for each customer at full match accuracy. The interface was deliberately lightweight and browser-based, on the reasoning that a system this team could not learn in an afternoon would not survive contact with a busy week.
The outcome
- Weekly inventory processing fell from more than five hours per person to about thirty minutes.
- Sales reach moved from 60% to 150% of the customer base, since the automation allowed multiple touchpoints for high-volume buyers rather than a single pass.
- Incremental sales of $2,000 to $5,000 per week from the additional reach alone.
- A competitive pricing database accumulated as a by-product of the extraction, supporting pricing decisions that had previously been made on instinct.
What made it work
Building the master data layer before the automation. It would have been faster to extract text and move on, and the result would have degraded within a month as vendor naming inconsistencies accumulated. The unglamorous groundwork is what made the pricing database possible at all.
