from $250 · from 1 weekWebsites
from $100 · from 3 daysTelegram bots
from $500 · from 3 weeksCRM and internal tools
from $500 · from 2 weeksAI tools
Our work / Client work

TenderLens

A Telegram bot and web dashboard that read Russian public procurement documents (44-FZ) and return a structured brief for each tender.

Client projectAI document analysisClient details changedThe service works only with Russian public procurement
TenderLens: video
1screen to read instead of the whole tender pack
20tender links you can send at once
44-FZthe procurement law it reads
3risk levels in each brief

Challenge

Suppliers who bid in Russian public tenders read the same pile for every lot: a long spec, contract terms, scanned attachments and the notice page, where the real item specifications often live instead of the documents. Reading all of it for every tender is slow work.

What we built

A supplier sends a link from zakupki.gov.ru. The bot downloads every document, unpacks archives, recognises the text on scans and also reads the notice page. A language model then fills a fixed structure: a tender card with price, deadlines, payment and bid security, risks graded critical, warning or info, and every item with its codes and requirements line by line. The national regime, the bans, restrictions and preferences for domestic goods, is decided by code against the government lists, not by the model. Up to 20 links wait in a queue, and each brief arrives in the chat and in the web dashboard. The dashboard needs no password: users sign in with a one-time link in Telegram.

How it went

Work started on 8 June 2026. The client tested the bot on real tenders, and his feedback shaped the product. On 9 June he caught a brief that put the bid security at 5–30% where the documents said 5%. Since then the model is not allowed to fill in values the documents don't give, guess market prices or name brands that are not in the text, and filler requirements such as "as agreed" are removed from the brief. After he caught a wrong national-regime conclusion, that decision moved from the model to code. The same tender also had to get the same brief every time: at first one item got 10 requirements on one run and 17 on the next, so the analysis was set up to give the same answer each time.

In July the landing page and the web dashboard joined the bot. Product search and margin calculation were built too, then taken out on 6 August because their accuracy fell short. Better no answer than a wrong one.

The demo shows the translated landing page. Real analyses are not reproduced.

“Didn't just do what we asked. About five times I heard 'this won't work', each time with a better option. The first users arrived before the release.”

Dmitriy, co-founder of the service

Result

A supplier reads a one-screen brief instead of the whole tender pack, and its facts come from the documents rather than the model's guesses.

PythonaiogramFastAPIJinja2SQLiteRedisOpenRouterTesseractDocker Compose
Start a project

Want one
like this?

Like: TenderLens · AI bot + dashboard

What do you need
Budget
Next project

BarrierPro →