← AI Engineering / Case study 04

ReviewReply.

A Chrome extension that drafts on-brand replies to Google Business reviews, in one click, right inside Google's review page.

Role
Solo: product, code and prompts
Built for
A real bar client, made reusable
Year
2026 · v0.2.1
Cost
A fraction of a cent per reply

The problem

Small businesses get the same kinds of reviews again and again: a long wait at the bar, a refused entry, a wrong bill, praise for a favourite bartender. Answering each one well takes time, and generic AI replies sound generic. I was answering reviews for a bar client myself and wanted something that answers the way the owner would.

What I built

  • A situations playbook. For every recurring situation, the business describes how to recognise it, how to respond and what never to say. The model picks the matching situation and shows which one it used.
  • One-click drafts on the page. A "✨ Draft reply" bar above each reply box, with Shorter, Warmer and Try again.
  • Profiles and templates for bars, restaurants, cafés, hotels and salons, with JSON import and export.
  • Safe by default. Rules stop the AI admitting liability, promising refunds or repeating personal details. Review text is treated as data, never as instructions, and it's tested against a built-in "ignore previous instructions" attack.
  • Human in the loop. The extension only types a draft. A person reads it and clicks Google's own Post button.
  • No server. The API key stays in the browser, and reviews go only to OpenAI.

Stack

  • TypeScript
  • Chrome Manifest V3
  • Side panel · Shadow DOM
  • OpenAI structured outputs
  • gpt-4o-mini (switchable)
  • esbuild
  • Vitest + jsdom
  • Model-comparison eval script
Screens

Inside the extension

Next projectFake News →