Can any AI agent open thrivbe.com with no human guide and find real things: organisations, tools and lab notes?
Agent-Ready Website: Can an AI Agent Use thrivbe.com Cold?
Yes. A fresh claude.ai chat given only "thrivbe.com" read /llms.txt, called the search link on its own and found climate organisations in Norway. We added one search endpoint, made the toolbox search work as a plain link, and pointed the homepage at the instructions.
- Next.js
- Cloudflare Workers
- llms.txt
Relevant services: Thrivbe AI
Hypothesis
Most sites are built for people. An agent that lands on one has to guess. If the site tells agents where to start and gives them one search link that works with a plain GET request, any agent should be able to find real things without a human showing it the way. The test is a cold start: a new chat, one word, no hints.
What we built
Three small changes, shipped as three stacked pull requests. All three went live on 2026-11-09.
- Toolbox search as a plain link. The toolbox search used to accept only
POST. It now also answers
/api/toolbox/search?q=. Measured median time: 11.0 ms for GET, 16.6 ms for the old POST. - One search for the whole site.
GET /api/searchruns one keyword search across pages, lab notes, posts, tools and the ecosystem map. It takestype,countryandlimit(up to 50). Addformat=mdto get markdown. The limit is 30 requests per minute per client. A bare call returns help text with three working example links. - A way in from the homepage.
/llms.txthas a new "Agent tools" section. The homepage carries a<link rel="alternate" type="text/markdown">tag that points to it, so an agent that lands on the homepage is sent to the instructions.
How we ran it. The work was written as a plan first. Coding agents built each pull request in a remote box. Each one then got two independent audits and 10 live test lanes against a real local Worker on a server, before Robin merged. We also planted bugs on purpose (mutation checks) to see if the tests would notice. They did.
What the live tests caught
Unit tests passed. The live lanes still found real problems.
- Multi-word search was broken. A query was matched as one exact phrase. "regenerative communities" found nothing that had both words apart. Now every word must match some field, and results are scored per word: title 3, summary 2, any other field 1.
- Answers were too big. A 50-result answer was 142 KB because each organisation's text appeared twice. Summaries are now cut to 240 characters after matching, so words past the cut still match. The body dropped to 96 KB, under a 100 KB budget.
- Three of our own checks were wrong. We fixed them against the saved
output instead of loosening them. One example: results do not show every
field that matched, so the
%escape test now compares counts. - A byte budget was a guess. The homepage tag costs 205 bytes, not the 200 we guessed. Next.js writes it in the head and again in the page data. We raised the budget to 300 B and logged the reason.
Result
- Speed. Search p95 is 55 ms on a cache miss and 13 ms on a cache hit.
- The cold-start test. A fresh claude.ai chat was given only "thrivbe.com". It read /llms.txt, then called /api/search?q=climate&type=ecosystem&country=Norway and found climate organisations in Norway on its own. Robin confirmed it on 2026-11-09.
- Links. A link checker,
node scripts/check-llms-links.mjs https://www.thrivbe.com, returns six 200s on the live site.
What's next
- One failing source, for example a database outage, still fails the whole search. It should return the sources that worked.
- The ecosystem table has duplicate rows. They show up in results.
Log
- 2026-11-09: All three pull requests merged and live. Cold-start test with a fresh claude.ai chat passed. Link checker returns six 200s.
- 2026-11-08: Plan written. Pull requests built and audited, with 10 live test lanes each.
