MLQU 002 · Live
Defence tender monitor
Watches European defence procurement and emails a vendor only what fits them.
The problem
Everyone watching European defence procurement watches TED, and most of the market never gets there. It sits on national portals instead, in twenty-four languages, each with its own format. No supplier is going to check twenty-two sites every morning.
How it’s built
Ingest
One adapter per source: TED plus twenty-one national portals including TenderNed, BOAMP, ANAC, Hilma, Doffin and UK Find a Tender, plus NATO BONFIRE.
Scrape what has no API
Portals that only render in a browser get a dedicated Chromium worker image, kept separate so a slow page cannot block the rest of the queue.
Normalise
Defence CPV codes, buyer lists, and FX conversion bring every notice onto one shape and one currency.
Translate
DeepL and Claude Haiku render each notice readable regardless of origin, because a Finnish notice is worthless to a Spanish supplier who cannot read it.
Match and send
Notices are scored against each vendor profile, then go out as an email digest rather than another dashboard nobody opens.
Release
GitHub Actions builds to Amazon ECR, deploys onto EC2, and runs Alembic migrations as part of the release.
What changed
- Live at monitor.adverbum.com
- Coverage reaches the national portals where most of this market is invisible
- A vendor reads one digest instead of twenty-two portals in twenty-four languages
Want one of these?
Two lines is enough. We reply within a day.