Back to all work

AdminRights

Won 1st place out of 32 teams with AI agents that turn a public tender into a signed bid, for about 8 cents per bid.

Year
2026
Built with
Python, LLM agents, Chrome DevTools Protocol
Links
GitHub
Week of Oct 26: 0 of 54 contributionsWeek of Nov 2: 0 of 7 contributionsWeek of Nov 9: 0 of 14 contributionsWeek of Nov 16: 0 of 70 contributionsWeek of Nov 23: 0 of 144 contributionsWeek of Nov 30: 0 of 158 contributionsWeek of Dec 7: 0 of 11 contributionsWeek of Dec 14: 0 of 44 contributionsWeek of Dec 21: 0 of 131 contributionsWeek of Dec 28: 0 of 177 contributionsWeek of Jan 4: 0 of 82 contributionsWeek of Jan 11: 0 of 68 contributionsWeek of Jan 18: 0 of 54 contributionsWeek of Jan 25: 0 of 152 contributionsWeek of Feb 1: 0 of 107 contributionsWeek of Feb 8: 0 of 93 contributionsWeek of Feb 15: 0 of 118 contributionsWeek of Feb 22: 0 of 71 contributionsWeek of Mar 1: 0 of 88 contributionsWeek of Mar 8: 0 of 45 contributionsWeek of Mar 15: 0 of 117 contributionsWeek of Mar 22: 0 of 178 contributionsWeek of Mar 29: 0 of 87 contributionsWeek of Apr 5: 0 of 67 contributionsWeek of Apr 12: 0 of 8 contributionsWeek of Apr 19: 0 of 19 contributionsWeek of Apr 26: 0 of 537 contributionsWeek of May 3: 0 of 97 contributionsWeek of May 10: 0 of 456 contributionsWeek of May 17: 0 of 142 contributionsWeek of May 24: 0 of 699 contributionsWeek of May 31: 0 of 329 contributionsWeek of Jun 7: 0 of 288 contributionsWeek of Jun 14: 0 of 195 contributionsWeek of Jun 21: 0 of 324 contributionsWeek of Jun 28: 0 of 60 contributionsWeek of Jul 5: 0 of 243 contributionsWeek of Jul 12: 0 of 542 contributionsWeek of Jul 19: 0 of 103 contributionsWeek of Jul 26: 0 of 399 contributionsWeek of Aug 2: 0 of 395 contributionsWeek of Aug 9: 0 of 401 contributionsWeek of Aug 16: 0 of 124 contributionsWeek of Aug 23: 0 of 109 contributionsWeek of Aug 30: 0 of 95 contributionsWeek of Sep 6: 0 of 95 contributionsWeek of Sep 13: 0 of 78 contributionsWeek of Sep 20: 0 of 155 contributionsWeek of Sep 27: 0 of 123 contributionsWeek of Oct 4: 166 of 274 contributionsWeek of Oct 11: 101 of 316 contributionsWeek of Oct 18: 0 of 13 contributions
267 commits to this project in the last year.

Why I built it

The Atira EHL hackathon challenge was to turn a public tender into one signed bid, working across four websites in 20 minutes with no human in the loop. That’s exactly the kind of manual office work I think agents should take over.

What I built

Finn, Yazan and I built AI agents that read the tender, find a fitting material in the ERP for every requirement, work out the price and sign the bid with a TAN they pull out of the mailbox. Most of the core was mine, including the price calculation, the submission, the main agent and most of the tests. Yazan built the supplier portal agent and Finn made everything cheap and fast. A script tested every branch every five minutes, and a change only went in if the score didn’t drop.

The hard part

Our worst bug made the system skip a tender it should have bid on. A requirement changed while a second search was still double-checking a no-match, the search kept looking for the old values, and we scored 5 out of 100. We fixed it by handing the new values to the search that was already running. Models also like to fill gaps. One agent sent back “NOT EXTRACTED” as the TAN, so now agents may only use facts from pages they saved word for word, and the math never goes through the model.

What I learned

Models are surprisingly good at finding their way around a website they’ve never seen. They’re bad at noticing when they didn’t find something. That’s why most of our work went into checks.

Results

We won 1st place out of 32 teams. On websites the system had never seen, it scored 100 out of 100, at about 8 cents and two minutes per bid.