Skip to content
All case studies
Live · authenticated
Public procurement / GovTech

Verity Tender Radar

Finds the public contracts worth bidding for — and refuses to scrape the platform that would have made it easy.

unit + integration tests
1,973
Playwright e2e tests
156
reversible migrations
29
dependency advisories
0

Live on AWS at radar.veritydigital.ie — authenticated, with no public sign-up: one company’s internal pipeline, not a product.

Radar — matched notices with deadline chips, match scores and the reasons each surfaced
Radar — matched notices with deadline chips, match scores and the reasons each surfaced

The problem worth solving

Irish public contracts are advertised across TED and eTenders in volumes no small firm can read daily. The work that fits you is buried among hundreds of notices that do not, deadlines pass unnoticed, and the qualification documents a bid needs — tax clearance, insurance, certifications — expire quietly between tenders. Miss any one of those and the bid is disqualified regardless of how good it was.

How it works

A radar that ingests published procurement notices automatically, scores each one against a description of what the business actually does, and explains in plain sentences why anything surfaced. Deadlines are tracked with the time of day, because that is the part that decides whether a bid is on time. Qualification documents live in a vault that warns before they lapse. Reusable answers are kept with their revision history, so the tenth tender reuses the wording of the first. AI reads the tender pack and drafts the requirements — every one shown with the quote it came from, for a person to confirm or reject.

What the business gets

  • Notices are found and scored automatically; every one that surfaces explains why in complete sentences
  • Deadlines carry their time of day, and a notice stating no deadline still surfaces — absent is not expired
  • Certificates are tracked with escalating reminders, so a bid is never lost to a lapsed document
  • Answers written once are reused, with full revision history, rather than rewritten each tender
  • AI drafts the requirements from the tender pack; a person confirms each field against its source quote
  • A decision to walk away is a first-class outcome and requires a recorded reason, so the next similar tender is quicker to judge
  • A bid specification exports to the consultancy platform, whose tender tracker imports it — opportunity and checklist — in one step
  • The eTenders scraping constraint is enforced by convention and documented, not left to memory
  • Usable by keyboard alone, with an axe-core WCAG 2.2 AA pass blocking every build — nine defects found and fixed, of which only two were ones a scanner could see
  • Stress-tested across load, security and accessibility before use — with the findings, the fixes and the accepted risks written down rather than glossed over, including the two conformance gaps that remain open
  • A closing deadline alerts at 7, 3 and 1 days out for any surfaced notice still undecided, and stops the moment a decision is recorded
  • Deploys ship by one click through an OIDC pipeline that verifies the version label it shipped, not just a green health check
  • Backups are proven rather than assumed — a restore to a scratch instance was verified row-for-row across seven tables
  • Application logging had never reached CloudWatch on either environment while both reported healthy, and the runbook sent the operator to read those logs — found, fixed, and the runbook corrected
  • Every screen is usable at 320px, with tables that become cards — verified per tab state, not just per route, on every build

Screens

Verified 2026-09-04. Re-run in tender-radar-app: unit + integration total from `npm test` (1,973 passing, 3 skipped, 111 files), Playwright count from `npx playwright test --list` (156 — the figure was 155 until today), migrations from `ls packages/db/migrations/*.up.sql` (29). Live at radar.veritydigital.ie behind authentication — not a demo.