Respond to Google Reviews with Claude Across 10 Locations
Set up a Claude Cowork scheduled task that runs once a week. It calls the Google Maps Reviews Scraper on Apify for every location's reviews from the last 8 days, skips the ones you already answered, and drafts a reply for each new one in your brand voice. Anything rated 3★ or lower is put at the top, risky reviews are escalated with no draft, and sudden bursts of reviews are flagged for a human to judge. Claude drafts; you post. Google only publishes a reply when the business posts it from its Business Profile or through Google's own API. For 10 locations the scraping costs well under $1 a week.
Answering every review across ten locations is not hard work. It is tedious work, so it slips: the 5★ reviews get a "thanks!", the 2★ review from three weeks ago never gets an answer, and nobody notices the location whose rating is quietly sliding. A weekly task fixes the slipping part. It reads every new review, writes the first draft, and hands you a single list to approve.
What you end up with
Every week a new Cowork session is waiting with:
- An "act first" list: every new review at 3★ or below, newest first, each with a drafted reply.
- An escalation list: reviews that mention safety, illness, legal action, a named staff member, or a refund. These get no draft, only a one-line summary and the location, so a manager handles them personally.
- Drafts for everything else: short, specific replies to the 4★ and 5★ reviews, grouped by location.
- A burst check: any location with an unusual spike of reviews in the week, with the evidence, marked "for a human to review".
- A rating snapshot: each location's overall rating and review count, next to the same figures for the competitors you name.
You read the list, edit what needs editing, and post the replies yourself. The task replaces the reading and first drafting, not your judgement.
Let Claude set it up for you
Paste this into a new Cowork task. Claude asks for your locations and rules one at a time, checks the Apify connection, runs a small priced test, and then builds the weekly task with you. The manual walkthrough below explains each piece if you would rather do it by hand.
Claude interviews you about your locations, voice and escalation rules, tests the reviews scraper on one location, then creates the weekly scheduled task, asking before anything that costs money.
- Asks for your locations, brand voice, sign-off and escalation rules, one question at a time
- Checks the Apify connector is connected, and explains how to add it if not
- Runs a small test on one location and shows the real cost
- Writes the weekly task prompt and sets up the schedule with you
Help me set up a weekly Google review reply workflow in Cowork, using the Apify
connector. Work through these stages in order, and ask me ONE question at a time.
1. INTERVIEW. Ask me, one at a time:
- each location's name and its full Google Maps URL, copied from the browser
address bar so it contains /maps/place/ (not a short share link)
- up to 5 competitor Google Maps URLs I want to compare against (optional)
- my brand voice in three adjectives, plus 2 or 3 replies I have written
before that I liked
- how replies should be signed (for example "The team at <location>")
- what must ALWAYS be escalated to a manager with no drafted reply. Suggest
these defaults and let me edit them: food safety or illness, injury,
discrimination, legal threats, a named staff member, refund or
compensation requests
- things a reply must never do (for example offer discounts, admit fault,
mention prices)
- roughly how many reviews each location gets in a normal week (a guess is
fine; it sets the burst threshold)
- which day and time the weekly task should run
2. CHECK THE CONNECTOR. Confirm you can use the Apify tools call-actor and
get-dataset-items (or the Actor listed as its own tool). If you cannot, stop
and tell me to add a custom connector in Cowork (Customize > Connectors >
Add custom connector) with this URL, then wait for me:
https://mcp.apify.com?tools=actors,compass/google-maps-reviews-scraper
3. TEST SMALL. Tell me what you will run and its maximum cost, and wait for me to
confirm. Then run compass/google-maps-reviews-scraper on ONE location with:
startUrls = [that location's URL], maxReviews 10, reviewsSort "newest",
reviewsStartDate "30 days", reviewsOrigin "google", personalData false.
Show me: the place title and address you got back (so I can confirm it is the
right branch), its placeId, how many reviews came back, how many already have
an owner reply, and the run's real cost. Draft replies for 3 of the reviews so
I can correct the voice. If the place returned is not my branch, stop and ask
me for a better URL.
4. BUILD THE WEEKLY TASK. Write the full task prompt, using placeIds rather than
URLs from now on, with these rules:
- one run for all my locations: maxReviews 50 per place, reviewsSort
"newest", reviewsStartDate "8 days", reviewsOrigin "google",
personalData false
- skip any review that already has responseFromOwnerText
- escalation list first (no drafts), then 1-3 star reviews with drafts, then
4-5 star drafts, grouped by location
- identify each review by location, date, star rating and its first 12 words,
because review links are not returned with personalData off
- never invent facts about the visit, never promise anything I have not
approved, never use the reviewer's name, keep replies under 80 words
- rating-only reviews (no text): one-line thanks for 4-5 stars; list 1-2 star
ones for me without a draft
- burst check: flag a location if it got more than 3 times the normal weekly
number of reviews I gave you, or 3+ reviews in one day from accounts with
1-2 reviews in total. Present the evidence only. Never call a review fake.
- if I gave competitors, run them once a month with maxReviews 1 and report
each place's totalScore and reviewsCount next to mine
Give me an estimated weekly and monthly scraping cost, then ask me to confirm
before you create the schedule. If you cannot create the schedule from this
chat, tell me to open Scheduled > New task and paste the prompt there.
Claude asks before each change it makes. Read each step before you approve it.
How the pieces fit
| Piece | What it does | Where it runs |
|---|---|---|
| Google Maps Reviews Scraper | Pulls each location's newest reviews, with star rating, text, date and any owner reply | Apify, called through the connector |
| Cowork scheduled task | Runs the scraper weekly, sorts, escalates and drafts | Anthropic's servers, even when your computer is asleep |
| You, in Google Business Profile | Edits and posts the replies, reports policy-breaking reviews | business.google.com |
Cowork scheduled tasks run remotely on their cadence, so the list is ready even if your laptop was closed all week. See how Cowork scheduled tasks work for cadences and plan requirements, and connecting Apify to Cowork for the one-time connector setup.
Step 1: Pin each location to a place ID
The scraper accepts search URLs, place URLs or place IDs. For a recurring job, use place IDs.
We learned why in our own test. We gave the scraper two search URLs, each naming a specific branch of a coffee chain. The first resolved to the right branch. For the second, the run log shows the search centred on a different city, and no reviews came back. A search URL asks Google to guess; a place ID does not.
So the setup prompt has Claude run once on each location's full /maps/place/ URL, show you the title and address it got back, and save the placeId from the output. Every weekly run after that uses placeIds, which the Actor accepts directly.
Step 2: Pull only the new reviews
The inputs that matter for a weekly run:
| Input | Set to | Why |
|---|---|---|
placeIds | Your locations | One run covers all ten |
reviewsSort | "newest" | Required when you use a start date |
reviewsStartDate | "8 days" | Relative dates are supported; 8 days overlaps the previous run by one day so nothing falls through the gap |
maxReviews | 50 | A per-place ceiling that keeps a viral week from running up the bill |
reviewsOrigin | "google" | Skips reviews imported from other sites, which you cannot reply to on Google |
personalData | false | Leaves out reviewer names, profile links and photos |
Two output fields drive the sorting. stars decides what goes first, and responseFromOwnerText tells Claude which reviews you already answered, so the weekly list only contains work still to do.
personalData: false has one side effect: the review's own link (reviewUrl) is also left out. That is why the task identifies each review by location, date, stars and its opening words. In Business Profile you can find it in seconds from those.
Step 3: Draft replies that sound like you
Generic AI replies are easy to spot: "Thank you for your valuable feedback!" on every one. Three things in the setup prompt prevent that:
- Your own past replies as examples. Two or three replies you liked teach Claude your length, tone and sign-off better than any adjective.
- Reply to what was actually said. A review that mentions the cold brew gets a reply about the cold brew. A rating-only 5★ gets one line, not a paragraph.
- Hard limits. No reviewer names, no promises you have not approved, no invented details about the visit, under 80 words.
For the low ratings, the drafts follow one simple pattern: acknowledge the specific problem, say what you are doing about it if that is true, and offer a direct channel. The business in our test already does this. Its owner reply to a 1★ review about a late mobile order, posted the next day, was a single line that pointed the reviewer to a support email.
Escalated reviews get no draft on purpose. A reply to an illness or injury complaint, or to a legal threat, is a decision for a person who knows the facts, and possibly for your insurer or lawyer. Claude's job there is to make sure it is seen the same week.
Step 4: Flag bursts, and let a human decide
A sudden spike of reviews, particularly from brand-new accounts, can mean a review campaign, an unhappy group, or a busy weekend. The output includes reviewerNumberOfReviews and isLocalGuide even with personal data off, so Claude can show the pattern: "Location 4: 9 reviews on Saturday, 7 of them from accounts with 1 or 2 reviews in total."
It cannot tell you why. Google's Maps user-generated content policy prohibits reviews that were paid for, posted from multiple accounts by one person, offered for an incentive, or written with a conflict of interest, and it also lists "unusual volumes or patterns of review contributions". Whether a specific review breaks that policy is Google's call, not Claude's and not ours.
If you believe a review violates the policy, report it yourself, either from your Business Profile (Read reviews, then the report icon next to the review) or through Google's Reviews Management Tool, as described in Google's help page on reporting reviews. Google says reviews are only removed when they break its policies, warns against reporting a review just because you dislike it, and usually takes several days to decide.
Do not reply to a suspected fake review with an accusation. If you reply at all, keep it neutral: you have no record of the visit and invite the reviewer to get in touch.
Step 5: Post the replies yourself
This is the step Claude does not do. Your options:
- By hand in Business Profile. Open your profile at business.google.com, select Read reviews, select the reply icon next to the review, paste the edited draft and select Reply. Per Google's help page on managing reviews, replies appear publicly under the review as coming from the business, the reviewer is notified, and Google checks each reply against its content policies, which usually takes up to 10 minutes but can take longer. You can edit or delete a reply afterwards.
- Through Google's API. The Business Profile API has an
updateReplymethod for posting replies. Access is not open: Google's prerequisites require a Google Cloud project and an approved application, and the profile must have been verified and active for 60+ days and have a website. That route is for agencies and developers building their own tooling. - A third-party MCP server. Some vendors offer MCP servers that claim to post Business Profile replies from Claude. None is an official Anthropic connector, we have not tested them, and giving any tool write access to your public profile deserves a careful look at its approval controls.
For most ten-location businesses, option 1 is a 15-minute job once the drafts exist.
What the test run returned
Real output from a test run on 2026-10-21: one San Francisco location of a coffee chain, its 8 newest reviews from the previous 60 days, with personalData off. Text is trimmed, and we have left the business unnamed.
| Date | Stars | Text (trimmed) | Owner replied? | Reviewer's total reviews |
|---|---|---|---|---|
| 2026-10-17 | 1 | "I waited 25 minutes for my mobile order, and they still didn't make it until I asked…" | Yes, next day | 1 |
| 2026-10-17 | 5 | "This tired guy needed the boost" | No | 2 |
| 2026-10-15 | 5 | "Excellent cold brew. Always consistently delicious." | No | 2,070 |
| 2026-10-04 | 4 | (rating only) | No | 176 |
| 2026-09-28 | 1 | (rating only) | No | 79 |
| 2026-09-16 | 3 | "Got a bag of coffee and an iced espresso, very good but… overpriced" | No | 47 |
| 2026-09-09 | 5 | (rating only) | No | 1 |
| 2026-09-07 | 1 | "Wouldn't wish their coffee on my worst enemy. The sweet latte it was super watery…" | No | 17 |
What a weekly task would have done with that:
- 4 of 8 reviews were 3★ or lower, and only one had a reply. The 1★ "watery latte" review had gone unanswered for six weeks. That is exactly the review the "act first" list exists for.
- 3 of 8 had no text at all. A rating-only 1★ gets listed for you without a draft, because there is nothing specific to answer.
- New accounts are normal. Two of the eight came from accounts with one review in total, spread over a month. That is not a burst, which is why the burst rule needs both volume and timing before it flags anything.
- The place itself came back with a 4.2 overall rating and 940 reviews in total, the two numbers the monthly competitor snapshot compares.
The run billed 8 review events and one start event, $0.00365 in total on a paid Apify plan.
What it costs
The scraper uses pay-per-event pricing. On the Free plan each review costs $0.0006 subject to change · verified 2026-10-21, falling to $0.00045 on Starter, plus $0.00005 subject to change · verified 2026-10-21 per run start.
| Scenario | Reviews per week | Weekly cost (Free plan) |
|---|---|---|
| 10 locations, ~10 new reviews each | 100 | about $0.06 |
| 10 locations, ~25 new reviews each | 250 | about $0.15 |
| Worst case: every location hits the 50-review cap | 500 | about $0.30 |
| Monthly competitor snapshot, 5 places × 1 review | 5 | well under 1 cent |
Even the worst case stays inside the Free plan's $5 monthly credit. Your Claude plan is the bigger cost: scheduled tasks need a paid plan, and each run is its own Cowork session. Check the Actor's Pricing tab before you rely on these figures, because per-event rates change.
Limits worth knowing
- Claude cannot post replies through this setup. It drafts; you post. See Step 5 for the options that can.
- Reviews from other sites (for example travel sites shown on some hotel and restaurant profiles) are excluded by
reviewsOrigin: "google", so the list only holds Google's own reviews. - New reviews are not instant. A weekly cadence means a bad review can sit for up to seven days. If speed matters for one location, give it its own daily task.
- Replies are public. Google reviews each reply against its policies, but it does not check whether the reply is wise. Read every draft before posting.
- Burst flags are not proof. They are a prompt to look. Only Google removes reviews, and only for policy violations.
For more prompts for local businesses, see Claude prompts that use live web data.
FAQ
Not with this setup. Claude drafts the replies and you post them from your Google Business Profile. Google's Business Profile API does have an updateReply method, but it needs an approved API application, and the profile must be verified and active for 60+ days. Some third-party MCP servers claim to post replies; none is an official Anthropic connector.
Give Claude two or three replies you have written and liked, require every reply to mention something specific from the review, ban stock phrases, and keep replies under 80 words. Rating-only reviews get one line.
No. It can show patterns, such as a spike of reviews from new accounts on one day, but only Google decides whether a review breaks its policy. Report a review from your Business Profile or Google's Reviews Management Tool if you believe it does.
The scraping is usually $0.06 to $0.30 a week on Apify's Free plan, at $0.0006 per review as of October 2026, which fits inside the $5 monthly free credit. Cowork scheduled tasks need a paid Claude plan.
A search URL asks Google to find the place, and it can resolve to the wrong branch. In our test, one search URL for a specific branch centred on a different city and returned no reviews. A place ID always points at the same location.
