AI solution: a team of agents
Planner→Discovery→Crawl gate→Reader→
Claim agent→Fact checker→Sufficiency→Brief
↺ Sufficiency sends the Planner back for missing areas · bounded by depth
| Agent | Job | Hands on |
| Planner | Turns the city into searches per area | Search queries |
| Discovery | Tavily web search for government and programme pages; OpenAlex, Europe PMC, Wikipedia for studies. Ranks by authority | Candidate sources |
| gate Crawl gate | Reads robots.txt before any fetch | Permitted sources |
| Reader | Fetches HTML, XML, PDF | Clean text |
| Claim agent | Proposes findings, each with an exact quote | Candidate claims |
| gate Fact checker | A different model judges each claim | Published or withheld |
| gate Sufficiency | Are 3 of 5 areas covered? | Publish, or search again |
| Answer agent | Answers questions from stored evidence only | Cited answer, or “not enough evidence” |
Stack: LangGraph · open-weights models on Groq · Tavily + scholarly APIs · SQLite, Qdrant, Graphiti + Neo4j Sandbox · FastAPI · Docker on Render. No agent both writes a claim and approves it.