About

About this project

Who built this site and why, how it was built with AI, what it runs on and what it costs, and what I learned along the way.

Figures as of 2 October 2026.

Who built it, and why

I am Federico Giudici, a procurement professional working for an international organization in Geneva.

I started this project for two reasons:

  • to learn, hands-on, what AI tools make possible for someone who does not write code;
  • to test whether public procurement information can be made more usable and accessible to procurement professionals.

This is a personal project. LinkedIn

How it was built

The site was built with Claude, Anthropic’s AI, based on my own research and my experience in procurement.

I acted as the product owner. I have no coding knowledge, but I have worked as a product owner in systems development. Claude wrote all of the code, the automated tests and the technical documentation. I did not write any code.

What I did by hand:

  • set the objectives and the functionality the site should have;
  • researched and chose the data sources;
  • answered 49 rounds of decision questions — methods, wording, data, launch timing;
  • created the accounts, paid for the services, and entered passwords and keys;
  • set up the domain, published each change, and ran a few long jobs on my own computer;
  • reviewed the pages and reported what was wrong.

Most of the build ran as scheduled Claude sessions. Each session read a written progress log, did one planned task, ran the tests, and recorded what it did and what came next.

Timeframe

  • Started: 7 August 2026.
  • Public launch: October 2026, after the monthly data refresh of 15 October — about ten weeks after the start.
  • In that time: more than 230 changes to the code, about 56,000 lines of code, and nearly 2,000 automated tests.

Where the site uses AI

Prices and statistics do not use AI. Unit prices, medians and ranges are plain arithmetic on published records, and every figure links to its source record. AI is used around them:

WhatModelWhere it runsWhat for
Item names in EnglishClaude Haiku 4.5 (Anthropic)Anthropic’s API, called by the monthly data refreshTranslates item names published in Spanish or other languages. 82,339 of 82,341 names translated.
Classification suggestionsQwen3-Embedding 4B (open model)My own computer, through Ollama, once a monthFinds the closest classification code for items published without one.
Unclear classification matchesClaude Sonnet 5 (Anthropic)Anthropic’s API, in the same monthly jobChooses between close candidates. Every suggestion waits for a person to approve it; nothing changes on the site until then (243 suggestions so far).
Missing-price estimates, outlier checks, market researchClaude (Anthropic)Anthropic’s APIBuilt, not in use yet.

The site in figures

As of 2 October 2026
Data sources (national procurement agencies)7, in 7 countries
Contracting processes1,469,766
Price records4,083,529
Currencies20
Price records also shown in US dollars99%
Items with a price benchmark16,342
Benchmark figures (one per item, currency and unit)27,168
Item names translated into English82,339

Live counts per source are on the Sources page.

Tools

Used. Costs in US dollars. “Development” is what was paid up to 2 October 2026; “Ongoing” is the expected running cost.

ToolWhat it is used forDevelopmentOngoing
Claude (Claude Code, Cowork, Claude Design)Planning, code, tests, documentation, page mockupsClaude Pro subscription, also used for other workSame subscription
Anthropic APIThe AI functions above28.77 usedUp to about 16 a year
NeonThe PostgreSQL database14.92About 160 a year (billed by use; based on the October 2026 bill)
PorkbunThe domain name11.0811.08 a year
GitHubStores the code; runs the tests and the monthly data refreshFreeFree
Vercel (Hobby plan)Hosts the website; anonymous visit countsFreeFree
UptimeRobotEmails me if the site stops workingFreeFree
OllamaRuns the open AI model on my own computerFreeFree
TelegramAlerts me if the job on my computer failsFreeFree

Data (free): procurement records published under the Open Contracting Data Standard by seven national procurement agencies, and the UN Operational Rates of Exchange for currency conversion.

Considered, not used.

ToolWhat it would have doneWhy not
Vercel ProPaid hosting planNot needed for a free, non-commercial site (about 20 a month)
Render, Railway, Fly.ioOther hosting servicesVercel’s free plan was enough (about 7–10 a month)
Hugging FaceRun the AI model in the cloudThe model needed was not available there; it runs on my computer for free
PlausibleVisitor statisticsPaid or self-hosted; Vercel’s free statistics do the same here

Total cost

Development (to 2 Oct 2026)Running, per year (estimate)
Anthropic API28.7716
Neon database14.92160
Domain name11.0811.08
Everything else00
Total, US dollars54.77187.08

Plus a Claude Pro subscription, which I also use for other work.

Lessons learned

  1. Re-check what was reported as done. An AI can report a task as finished when part of it is missing. Ask for the evidence, not the summary.
  2. Check security on purpose. A dedicated security review found gaps that normal development had not.
  3. Test with real data, in small batches first. A sampled measurement was wrong until the whole file was checked. One translation run failed on every item and still cost money; a test of 1,000 items found it before the full run.
  4. Real usage beats estimates. The translation was estimated at 10–15 dollars and cost about 21.
  5. Some knowledge of systems is necessary. AI often does not choose the most efficient way, and you need to recognise it. Running AI models on your own computer also needs at least basic PowerShell.
  6. Cost needs explicit work, and iteration. Server usage, database size, heavy calculations and what can run on a local AI model all had to be worked on deliberately, often more than once, before reaching a better solution.
  7. Plan major functions in advance. Translation was added late and first applied to the wrong text, so it had to be redone as one large pass.
  8. AI sessions need a written hand-off. Each session starts with no memory. A progress log and one task per session kept the work on track.
  9. Ask for simple reports. Short sentences, what happens first, and a clear list of what I had to do saved more time than any tool.