Mohammed Rashad

chiAI

7 August 2026 · Telegram bot · 1 min read

tl;dr

A Telegram bot for people who need something from the city of Chicago and do not know what it is called.

NodeTelegramPrompt designCivic data
  • Splits one message into every separate problem it contains
  • 34 problems covered, across three tiers of help
  • Every fact carries the source it came from
  • Never says you qualify, only who decides and what to bring

decompose

Splits one message into separate cases, because people rarely have only one problem

answer

Facts and procedures from stored rows, each with its citation

guide

One step per message, with a branch for when someone gets stuck

follow up

Checks back rather than assuming the first answer landed

One message in, however many cases it actually contains out.The model picks and translates rows. It never writes the facts itself.

01The problem

A directory only helps if you already know the name of the thing you need. The people who are lost cannot produce the search query. Someone who needs a birth certificate to get an ID to get a job does not search for vital records. They search for help.

02What I built

A bot that does four things a directory does not. It splits one message into however many separate problems it actually contains. It answers with facts and procedures, each carrying its source. It guides one step per message, with a branch for when someone gets stuck. Then it follows up.

03The two rules

The model selects and translates. It never authors. Every fact comes from a stored row, and the model only picks the row and says it in the reader's language. That one boundary is what stops it inventing an answer for someone who cannot afford a wrong one. The second rule is narrower. Facts and procedures, never determinations. It does not tell you that you qualify. It tells you who decides and what to bring.

04What I got wrong

Most of my early assumptions about Chicago were wrong. There is no No Heat request type in 311. Heat complaints file as a building violation. The old Open311 endpoint is dead. Every fact now gets checked against a live source and the citation is stored beside it. Rentervention already does AI tenant help here and does it well, so chiAI sends people to them rather than competing badly. The bot was the deliverable. The translation was the work.

Thoughts on this one?

Send it straight to me. Nothing is published here, it just lands in my inbox already labelled with which build you are talking about.

Comment on chiAI