๐Ÿ‡ Rabbithole โ† All lessons Work with us โ†’
Step 0 of 6
Day 12 of 30
Rabbithole ยท Learn ยท ~12 min read

Review Responder

Never leave a review hanging: it drafts on-brand replies and flags the ones that need you.

Restaurants & cafesSalons & spasAuto shops Dentists & clinicsHome servicesHotels & rentalsRetail
โ˜…

Every unanswered review is a customer watching how you handle it

A new review lands while you're slammed. You mean to reply, but by the time you sit down there are five more, and the angry one from Tuesday is still sitting there with no response. The next customer reads all of it: the glowing ones, the messy one, and whether you bothered to reply.

This kit pulls your recent Google reviews, and for the friendly ones it drafts a reply matched to a short brand-voice file you wrote, so the words sound like you and not like a robot. For the 1 to 2 star or sensitive ones, it does not try to be clever: it flags them for you to handle by hand. You read every draft, edit if you want, and approve before anything posts.

Plain-English glossary, once: A review is what a customer left on Google. Claude is the AI that reads it and drafts a reply. Your brand-voice file is a short plain file you own and edit: a few lines on tone, your sign-off, and things to never say. That file is what keeps the replies sounding like you. And the flag is the safety valve: anything tense or sensitive routes to a human instead of getting an auto-reply.
1

Pull your recent Google reviews

What's happening: The kit reads your recent reviews from your Google Business Profile, the same listing customers see on Google Maps and Search. You connect it once with a read token, and it fetches the latest reviews (rating, text, author, date) into a local list. It only reads; it never posts on its own.
  1. Open your Google Business Profile and confirm you manage the listing.
  2. Create a read token in the kit's setup wizard (the README walks you through it line by line).
  3. Run npm run pull to fetch your latest reviews into a local file.
โ†ณ Turn your best reviews into social posts โ†’
2

Write your brand-voice file: the file you own

What's happening: This is what makes the replies sound like you, and it's yours. Your brand-voice file is a short plain file (data/brand-voice.md) with a few lines: your tone, how you sign off, a couple of phrases you like, and a short never-say list. The bot drafts every reply through this file. Edit it any time and the next batch of drafts shifts with it.
Field in brand-voice.mdWhat it setsExample
toneHow the replies soundWarm, plain-spoken, a little playful. Never corporate.
sign_offHow every reply endsSee you soon, the team at Tide & Pine.
do_sayPhrases that sound like youThanks for taking the time. We'd love to have you back.
never_sayThe hard no listNo discounts in public replies. Never argue. Never blame staff.
Why this keeps you safe: the brand-voice file lives on your machine and you own every word in it. The bot is told, in plain rules, to draft only within this voice and to honor the never-say list. It cannot promise a refund, a discount, or anything you did not authorize, because those go on the never-say list and the kit checks the draft against it before showing you.
3

Give it a brain: connect Claude

What's happening: Reading the review and drafting a reply that matches your voice is the job of Claude. The kit asks Claude for a structured result (a typed object: the rating, a sentiment read, whether it should be flagged for a human, and the drafted reply text), never loose prose. That structure is what lets the kit route the tense ones to you automatically.
  1. Go to console.anthropic.com and sign in.
  2. Open API Keys โ†’ Create Key.
  3. Copy the key (it starts with sk-ant-). The setup wizard saves it on your machine.
Default brain: claude-opus-4-8 (sharpest). High volume? Set claude-haiku-4-5 to cut cost.
4

Try it: draft replies, flag the hard ones, post nothing

What's happening: Pick a review. The kit reads the rating and the words, decides whether it can draft an on-brand reply or whether this one needs you, and shows its decision. Glowing and mixed reviews get a drafted reply in your voice; 1 to 2 star and sensitive ones get a "needs your attention" flag with the reason, and no auto-draft. Then it waits for your tap. This responder is live. Try it. It runs entirely in your browser, nothing is sent anywhere.
Review Responder ยท Tide & Pine Cafe (sample)

Tap a review to run it through the responder:

Pure in-browser dry run: no API call, nothing posted, nothing saved.
5

You approve, then it posts (and never before)

What's happening: Only after you tap Approve does the kit post the reply to Google. Tap Edit to change a word; tap Skip and nothing leaves your machine. The flagged reviews never get an auto-reply at all: they sit in a "for you" list until you write the human reply yourself. The responder above is wired to exactly this. Try the buttons.
Three promises the kit keeps:
โ€ข Nothing posts without your explicit tap. Every draft waits for approval.
โ€ข Angry and sensitive reviews escalate to a human by design. The bot does not try to defuse a 1-star itself.
โ€ข The brand-voice file is yours. The bot drafts only within it, and honors your never-say list.

For the flagged ones, the kit can drop a quiet heads-up (a Slack or email ping with the review and a suggested talking point) so a real person picks it up fast. It still drafts nothing public for those.

6

Put it on a rhythm: a daily review sweep

What's happening: Once you trust the drafts, you run it on a schedule. Each morning the kit pulls anything new, drafts the easy replies into a review queue, and flags the hard ones. You skim the queue with your coffee, approve the good ones, and write the few that need you. It also runs as an MCP server so you (or Claude) can drive it as a tool, the same idea from Lesson 1.
npm run dryrun     # draft + flag in your terminal, nothing posts
npm run pull       # fetch the latest Google reviews
npm run queue      # build today's draft + flag queue for you to approve
npm start          # run the responder on a daily schedule
npm run mcp        # expose it as an MCP server (drive it from Claude)
Drafts, with a kill switch: the kit ships with DRY_RUN on. In dry-run it drafts and flags but the Google poster is gated off, so you can watch a full sweep before a single real reply ever posts.

Run it yourself: it's free and it's the real thing

The kit is a complete, runnable, MIT-licensed repo: pull your Google reviews, draft on-brand replies from a brand-voice file you own, flag the sensitive ones for a human, and post only what you approve. Runs on your machine, nothing crippled.

Get the free kit on GitHub โ†’
โ–ถ

Go live

With the kit downloaded:

npm install
npm run setup     # Claude key + Google token + brand voice on YOUR machine
npm run pull      # fetch your recent reviews
npm run queue     # draft the easy ones, flag the hard ones

Edit brand-voice.md whenever your tone shifts, and the next batch of drafts follows. Prefer the command line first? npm run dryrun lets you watch it draft and flag without posting anything. Pair it with the Social Repurposer to turn your best new reviews into posts, and read Lesson on AI safety for why human-in-the-loop matters here.

Want it watching every platform and tuned to your exact voice?

This kit is the DIY taste. We connect it across Google, Yelp, and Facebook and tune it to your voice, route the flagged reviews to the right person, and keep the whole thing running so no review ever sits unanswered again.

Work with us โ†’ โ†ณ Why we keep a human in the loop