See llms.txt for all machine-readable content.
Pulls Google Business Profile reviews, classifies each one with Claude, stores them in Supabase, and emails the owner a monthly plain-English digest via Outlook. Every count, disagreement and trend is computed in code, never by the model, so the report cannot invent findings.
Why the AI never counts
Most AI review summarizers hand the whole pile of reviews to a language model and ask it to summarize. That is how you get invented findings, softened complaints, and quotes no customer ever wrote. This template works the other way around. The model classifies one review at a time and writes the final prose, but every count, every disagreement and every trend is calculated in code from stored rows. The model turns finished facts into sentences. It is never the source of a fact.
Three decisions worth knowing before you adapt it:
Each review is classified once and stored. Language models are not reproducible even at temperature 0, so re-asking gives you slightly different counts each run. Classify once, save, then count rows forever after. Re-runs are deterministic and cost almost nothing.
Every quote is checked against the source in code. A model will reorder the clauses of a real review and hand it back as a verbatim quote. Quotes that do not match the original text are dropped; the theme and sentiment they carried are kept.
A disagreement needs proportional balance, not just counts. Thirty-two positive mentions against four negative is a consensus with outliers, not a split. Publishing that under "where customers disagree" misleads the owner.
Full guide, including why most months should stay silent:
https://docs.google.com/document/d/1o3DhkJV9yXyKwop6O7GZJyn6u7b4nvY1cjuDokPJo_4/edit
Questions or help getting it running: [email protected]
Built by PRISC Group. Automate. Relentlessly. Ruthlessly.