How to Own Your Own Review Responder
This is the exact tool running at reviews.thedealercollective.com — and you can run your own copy of it under your dealership's name and domain.
You don't need to know how to code. You do need to be comfortable following instructions and spending a few hours on setup. Once it's running you never touch it again.
What it does: Every morning it checks your Google reviews. If there's a new one it drafts a response and emails it to you. You read it, approve it or edit it, and it posts. Nothing goes live without you saying so.
What it costs to run: Under $5 a month. Usually less.
How long setup takes: 2 to 4 hours the first time.
Before You Start — Four Accounts to Create
You'll need accounts at four services. All are free to start. Create them before anything else.
1. Anthropic This is what drafts your review responses. Go to console.anthropic.com → Sign up → API Keys → Create new key → Save it somewhere safe.
2. Resend This sends you the approval emails. Go to resend.com → Sign up → API Keys → Create new key → Save it.
3. Fly.io This is where your app lives on the internet. Go to fly.io → Sign up → Add a credit card (you won't be charged much if anything).
4. Google Cloud This connects to your Google Business Profile. Go to console.cloud.google.com → Sign in with the Google account that manages your dealership's Business Profile → Create a new project → Name it anything you want.
Step 1 — Build the App
You'll use a tool called Claude Code to build the app for you. Think of it as having a developer sit next to you and write everything from scratch while you watch.
Install Claude Code: Go to claude.ai/code and follow the installation instructions. It takes about 5 minutes.
Open Claude Code in a new empty folder on your computer. Then copy and paste this entire block into it:
Build a Rails 8 app called Review Responder. Here are the full specs:
Stack:
- Rails 8, Ruby 3.4
- SQLite for the database
- Mise for version management
- Resend for transactional email
- Deploy target is Fly.io
What it does:
- Setup form — dealer enters dealership name and email, connects Google Business Profile via OAuth
- Google OAuth flow — authenticates with Google, stores tokens, scopes needed for Google Business Profile API
- Review polling — cron job that checks for new reviews once daily at 9am UTC, generates a draft response
- Email approval — sends dealer an email with the review, the draft response, and an approve button
- Approve endpoint — dealer clicks approve, response posts to Google Business Profile
- Edit before posting — dealer can edit the draft before approving
Database models:
- Dealer — name, email, google tokens, business profile id
- PendingReview — review text, star rating, draft response, status, dealer reference
Use this exact prompt for generating review responses:
"You are writing a Google review response on behalf of [dealership name]. Your job is to respond the way a great operator would — someone who genuinely knows their customers and takes pride in their work. Read the review carefully. Acknowledge what the customer actually said. If they mentioned a person, mention them back. If they described an experience, reflect it. Do not use the phrases 'thank you for your feedback', 'we appreciate your business', or 'we look forward to serving you'. These are filler. Do not use exclamation points. Do not use the word 'journey'. Do not sound like a template. Write like a real person signed this. Warm, direct, specific. Under 100 words. End with the dealership name only — no sign off phrase before it. If the review is negative, acknowledge what they said with genuine sincerity. No deflection. No excuses. No promises. No calls to action — do not ask them to call, email, or reach out. Do not say you will follow up. A public review response is not the place to resolve the issue. It is only the place to show that you heard them. Write one or two sentences that make the next person reading feel like this dealer takes this seriously. Nothing more. Never invent details that aren't in the review."
When done I should be able to run bin/dev and see it locally at localhost:3000. Use Mise for Ruby and Node version management. Create a .mise.toml file with the correct versions.
Hit enter and let it build. Don't interrupt it. It will take 10 to 20 minutes. When it's done it will tell you to run bin/dev — do that and you should see the app at localhost:3000 in your browser.
Step 2 — Set Up Google
This is the most involved step. Google requires you to apply for access to their Business Profile API. It takes a few days to get approved. Start this early.
Create your OAuth credentials:
1. Go to console.cloud.google.com 2. Make sure you're in the project you created earlier 3. Click APIs and Services in the left menu 4. Click Credentials 5. Click Create Credentials → OAuth Client ID 6. Choose Web application 7. Name it Review Responder 8. Under Authorized redirect URIs paste: https://reviews.yourdealership.com/auth/google/callback (you'll update this later with your real domain) 9. Click Create 10. A popup will show your Client ID and Client Secret — copy both and save them somewhere safe
Enable the APIs:
1. Click Library in the left menu 2. Search for My Business Account Management API — click it — click Enable 3. Search for Google Business Profile API — click it — click Enable
Apply for API access:
Google doesn't let just anyone use the Business Profile API. You need to apply.
Go to: https://support.google.com/business/contact/api_default
Select Application for Basic API Access. When asked to describe your app write something like:
"This app monitors Google Business Profile reviews for our dealership, drafts a response using language models, and emails it to us for approval before posting. Nothing posts without explicit human approval."
Submit it. Google typically responds within a few business days.
Add yourself as a test user:
While you wait for approval add your Gmail as a test user so you can start testing:
1. Go to APIs and Services → OAuth consent screen 2. Scroll down to Test users 3. Click Add users 4. Add the Gmail address you'll use to connect your Business Profile 5. Save
Step 3 — Put It on the Internet
Open your terminal. If you've never used it before — on a Mac press Command + Space, type Terminal, hit enter.
Install the Fly.io tool:
brew install flyctl
fly auth login
This will open a browser window to log into Fly. Do that then come back to the terminal.
Navigate to your app:
cd path/to/your/app
fly launch
When it asks questions just hit enter to accept the defaults. When it asks about Postgres and Redis say no to both.
Now add your credentials. Run each of these lines one at a time, replacing the placeholder with your real value:
fly secrets set GOOGLE_CLIENT_ID=paste-your-value-here
fly secrets set GOOGLE_CLIENT_SECRET=paste-your-value-here
fly secrets set GOOGLE_REDIRECT_URI=https://reviews.yourdealership.com/auth/google/callback
fly secrets set ANTHROPIC_API_KEY=paste-your-value-here
fly secrets set RESEND_API_KEY=paste-your-value-here
fly secrets set APP_HOST=reviews.yourdealership.com
Then deploy:
fly deploy
When it finishes it will give you a URL ending in .fly.dev. Your app is live.
Step 4 — Connect Your Domain
You'll want this running under your own domain — something like reviews.yourdealership.com — instead of a Fly.io URL.
Run this to get your DNS records:
fly certs add reviews.yourdealership.com
It will show you an A record and an AAAA record. Add both to wherever you manage your domain. If you're not sure how to do this your domain registrar has a support team that can help.
DNS changes take up to an hour to kick in.
Once your domain is working update your Google redirect URI:
fly secrets set GOOGLE_REDIRECT_URI=https://reviews.yourdealership.com/auth/google/callback
fly deploy
Also go back to Google Cloud Console and add your new domain to the Authorized redirect URIs in your OAuth credentials.
Step 5 — Connect Your Business Profile and Go Live
Visit your domain in a browser. Enter your dealership name and email. Click Connect Google Business Profile. Sign in with the Google account that manages your Business Profile. Authorize the app.
You're connected. The app will now check for new reviews every morning at 9am. When one comes in you'll get an email with a draft response. Approve it or edit it. Done.
What This Costs
| What | Cost |
|---|---|
| Fly.io hosting | $0–5/month |
| Resend email | Free up to 3,000 emails/month |
| Anthropic per response | ~$0.01 per review |
| Total | Under $5/month |
The Source Code
If you'd rather start from working code than build from scratch, the full source is available on GitHub:
https://github.com/awol-00/review-responder
Clone it, configure your environment variables, and deploy. The build guide above covers all the configuration steps you'll need regardless of which path you take.
Stuck?
Bring your question to The Dealer Collective Discord. This was built in the open. The community can help.