Records request triage

A prototype for a city records office. Paste a public records request and it suggests which department should handle it, shows similar past requests, flags anything that needs legal review, and checks whether the record is already public. Staff make every decision.

Every request and record in this demo is synthetic, written for the prototype. A real deployment would use the city’s own request history.

Or try an example

Runs entirely in your browser. Nothing you type is sent anywhere.

Type or paste a request on the left, then press “Suggest a department.” The result appears here.

How it works, and what it never does

The request is compared against past requests using BM25 keyword scoring plus a small synonym table, so “cop” finds “police” and “pothole” finds “road repair.” The department suggestion is a weighted vote of the five most similar past requests, and its confidence is the share of that vote the top department won.

This mirrors a search engine I built earlier over 640 patent applications, which blends BM25 with sentence embeddings and reranks with a cross-encoder. A production version would add those layers. The routing logic would stay the same, because precedent is easier for staff to audit than an unexplained label.

It never denies, withholds, or redacts a record. It never sends a reply to a requester. Low confidence and sensitive topics always go to a person.

The response deadline shown uses 10 business days as an example. The real number depends on the state’s public records law and would be set with the city’s legal team.