Procurement bot: quotes read from messages, prices compared
A procurement bot that reads supplier quotes out of messages and documents, normalizes the line items and compares purchase options side by side.
Context
Supplier quotes arrive as whatever the supplier felt like sending — a paragraph in a chat, a PDF price list, a photographed table. Comparing them means a human retyping numbers into a spreadsheet, which is slow and error-prone exactly where money is decided, and the retyped spreadsheet dies the moment the next round of offers arrives.
The bot takes over the retyping: it reads the quote wherever it lives and reduces it to comparable line items.
Approach
The intake is deliberately permissive: procurement staff forward supplier messages and attachments to a Telegram bot exactly as received, with no format requirements imposed on suppliers. Three input classes — free text, structured price-list documents and photographed tables — are handled by one pipeline, with OCR covering the scanned and photographed material.
AI parsing then does the extraction a human used to: identifying positions, specifications, units, quantities and prices inside unstructured text and tables.
How it works
Each offer moves through four stages. Intake: the message or document arrives in the bot. Parsing: AI extraction and OCR pull line items out of the raw material. Normalization: every position is mapped to one canonical record shape, so a quote written as prose and a quote sent as a table become the same kind of data. Comparison: normalized options line up side by side, and the supplier database supplies the price history behind each one.
The human is left with the decision — which offer to take — instead of the data entry.
Key engineering details
Normalization is the load-bearing stage. Suppliers name the same product differently, quote in different units and bundle terms unpredictably; mapping all of that onto one line-item schema is what makes automatic comparison honest rather than superficial. The parsing layer is built to flag low-confidence extractions for human review instead of silently guessing at a number that money depends on.
The supplier database turns individual quotes into an asset: each parsed offer is stored against its supplier, so internal analytics can surface price movement and past terms at the moment of the next purchasing decision.
Outcome & what shipped
What shipped is the full cycle for the manufacturer: the Telegram bot, the AI-parsing and OCR pipeline over three input formats, line-item normalization, side-by-side comparison, and the supplier database with internal analytics.
The result is both an industry deployment and a standalone, sellable module — a digital procurement desk that collects commercial offers, compares prices automatically and keeps purchasing under control. Planned next: broader document-format coverage and price-history trend alerts.
What we built
Offer intake
Supplier quotes forwarded to a Telegram bot as messages, documents or photos — no format demands on suppliers.
AI parsing & OCR
Positions, units, quantities and prices extracted from free text, price lists and photographed tables.
Normalization
Every line item mapped to one canonical shape so options compare field by field; low-confidence extractions flagged for review.
Supplier DB & analytics
Every parsed offer stored per supplier; internal analytics surface price history at decision time.