CivicRadar
LiveCivicRadar takes every identity and issue you actually hold, queer, immigrant, on Medicaid, whatever the combination, and gives you one feed of the bills that touch any of them, each with the relevant advocacy orgs' positions attached. No following a separate org for every part of your life.
- 27
- identity tags
- 162
- org files
- 46
- states covered
- 17
- jurisdictions live
Nobody is just one issue. Staying informed the honest way means following a separate org for each part of your life and piecing together what applies to you yourself. Almost nobody keeps that up. CivicRadar scores every bill against your full set of identity tags at once and attaches whichever advocacy orgs are relevant to whichever tags a bill touches.
Architecture
Bills come from sources that do not speak the same language: OpenStates for live state search, LegiScan for bulk state ingestion, Congress.gov for federal. Matching is a deterministic keyword scorer, not a model call, weighting 27 identity tags above 26 issue tags across roughly nine additive signals. AI enters at one point only, drafting the email and call script on Claude Haiku. Advocacy positions are 162 reviewed org files across five networks, covering 46 states, joined so every org's stance on a bill shows on one card. It also ships push and email bill-progression alerts, full legislator profile pages, a private watchlist, tap-to-call scripts, and a ZIP-based district view.
Nothing is stored server-side. ZIP, identity tags, and the sentence a user writes live in localStorage only, and the search cache carries no user association even in principle. For a queer immigrant on Medicaid, the risk is not that the tool fails to help, it is that it becomes a list somewhere with your name next to "trans" or "undocumented." The privacy model is a constraint on the architecture, not a policy on top of it. There is no server-side table to subpoena because it does not exist.
Open source
AGPL v3. The code is public because the license only has teeth if the code is visible. The org-positions corpus is the real moat, and it stays separate.
Next.js 16, React 19, TypeScript. Tailwind v4. Upstash Redis, Cloudflare R2, Upstash Vector. Claude Haiku (drafting), Gemini Flash (summaries), Voyage embeddings. OpenStates, LegiScan, Congress.gov, Legistar. Vercel.