A free Claude skill that audits your Google Business Profile like an operator — categories, services, photos, posts, Q&A, reviews — and hands back the five fixes that actually move calls, ranked.
For most local businesses the map pack is the storefront. This skill runs a 40-point audit in impact order — the category and services levers first, the folklore never.
Local businesses that live or die by “near me” searches: trades, dentists, restaurants, salons, gyms, clinics. If the phone rings when you're in the pack and doesn't when you're not, this is for you.
Works from your GBP dashboard answers or screenshots of the public listing — no SEO tools required.
“We don't show up on Google Maps.” · “Audit my Google Business Profile.” · “How do I get more calls from Google?”
You give Claude the dashboard details for a Cedar Rapids bakery whose wedding-cake orders have gone quiet. Here's the top of the report:
Score: 21/40 — leaking calls
Top 5 fixes, in order:
Doing fine: name is clean (no keyword stuffing), NAP matches the site, hours and holiday hours set.
Categories and services before photos and posts — the report ranks by what moves calls, not by what's easiest to screenshot.
Option 1 · Claude Code
In your terminal, run:
npx skills add buildwithreef/claude-skills
Pick google-business-profile-optimizer from the list (or install the whole set). Done.
Option 2 · Claude.ai
Download the .zip below, then in Claude.ai go to Settings → Capabilities → Skills and upload it.
Download google-business-profile-optimizer.zipOption 3 · Manual
Copy the SKILL.md below into ~/.claude/skills/google-business-profile-optimizer/SKILL.md. The zip also includes the 40-point checklist the skill scores against.
---
name: google-business-profile-optimizer
description: Audits and improves a Google Business Profile listing — categories, services, description, photos, posts cadence, Q&A, and reviews — and returns a prioritized fix list. Use when the user wants more calls from Google Maps, asks to audit or optimize their Google Business Profile, GBP, or Google Maps listing, or says things like "we don't show up on Google Maps" or "improve my Google listing".
---
# Google Business Profile Optimizer
For most local businesses, the Google Business Profile produces more calls than the website. Audit it like it's the storefront, because it is.
## How Maps ranking actually works
Three factors: **proximity** (where the searcher stands — you can't move it), **relevance** (categories, services, content — fully in your control), and **prominence** (reviews, photos, activity, links — earnable). Every fix below pushes relevance or prominence. Tell the user this up front so they stop trying to "rank #1 everywhere" — the goal is winning the searches near them.
## Step 1 — Gather the current state
Ask the user to open their GBP dashboard (business.google.com) or share the public listing, and collect:
- [ ] Business name exactly as listed
- [ ] Primary category + all secondary categories
- [ ] Description text
- [ ] Services/products listed (and which have descriptions)
- [ ] Photo count and date of the newest photo
- [ ] Date of the most recent post
- [ ] Review count, average rating, and % of reviews with owner responses
- [ ] Q&A section: how many questions, who answered
- [ ] Hours (including holiday hours set?), phone, website link
- [ ] The same business's name/address/phone as printed on the website footer
For the deep audit criteria on each area, load [references/checklist.md](references/checklist.md).
## Step 2 — Audit in this order (impact order)
1. **Primary category** — the single strongest relevance signal. It must be the most specific match ("Emergency plumber" beats "Plumber" if that's the money service). Wrong or generic primary category is the #1 fix.
2. **Secondary categories** — add every genuinely applicable one (typically 3–9). Don't add aspirational ones; category spam triggers rescinded rankings.
3. **Business name** — must match real-world signage. Keyword stuffing ("Smith Plumbing | Best Water Heater Repair Des Moines") ranks better until it gets the listing suspended. If the name is stuffed, flag it as a suspension risk, not a win.
4. **Reviews** — count and velocity vs. the top 3 competitors in the pack. A steady 2–4 new reviews per month beats a one-time burst of 30. Owner response rate should be near 100% (see the review-responder skill).
5. **Services** — add every service as its own entry with a 2–3 sentence description. These feed relevance for "service near me" searches.
6. **Description** — 750 characters max; front-load the first 250 with what you do, where, and for whom. No keyword walls, no "welcome to."
7. **Photos** — minimums: exterior (helps people find the door), interior, team, and 10+ real work/product shots. Add 2–4 new ones monthly; a listing whose newest photo is 14 months old signals "possibly closed."
8. **Posts** — weekly is ideal, biweekly is fine, dead-for-six-months is harmful. Offers and updates outperform generic tips.
9. **Q&A** — seed it: post the 5–10 questions customers actually ask (from the owner's account) and answer them (from the business account). Anyone can answer Q&A — if you don't, a stranger will.
10. **Hours, attributes, booking link, messaging** — completeness signals. Holiday hours unset = "hours may differ" warnings that cost calls.
11. **Website link** — should point to the most relevant page (service page for a single-service push), tagged with UTM parameters so GBP traffic is visible in analytics: `?utm_source=google&utm_medium=organic&utm_campaign=gbp`.
## Step 3 — Deliver the audit
```
## GBP Audit — [Business name]
**Score: [X]/100** (weights: categories 20, reviews 20, services 15,
photos 10, posts 10, description 10, Q&A 5, completeness 10)
### Top 5 fixes (do these first)
1. [fix] — why: [ranking factor it moves] — effort: [15 min / 1 hr / ongoing]
...
### Full findings
[area-by-area: current state → what to change → exactly how]
### Monthly maintenance (30 min/month)
- [ ] 2–4 new photos
- [ ] 2+ posts
- [ ] Reply to every new review
- [ ] Check Q&A for new questions
```
## Suspension traps — warn before the user touches anything
- Changing name, address, and category in one session often triggers re-verification and a listing outage. Space edits days apart.
- Keyword-stuffed names, virtual-office addresses, and P.O. boxes are the top suspension causes.
- Service-area businesses (no storefront) must hide the address, not fake one.
---
Built by Reef — AI systems for small business → https://buildwithreef.com
Yes — this one. GBP Optimizer is a free, open-source Claude skill that audits your listing across 40 points — categories, services, description, photos, posts, Q&A, reviews, and NAP consistency — and returns a scored report with the top five fixes ranked by impact on calls.
Three ways: run npx skills add buildwithreef/claude-skills in your terminal and select google-business-profile-optimizer (Claude Code), upload the .zip from this page in Claude.ai under Settings → Capabilities → Skills, or copy the SKILL.md above into a folder at ~/.claude/skills/google-business-profile-optimizer/.
No. The skill works from what you can see in your own GBP dashboard at business.google.com and an incognito search for your main service — it tells you exactly what to look up and where. Tools can speed up competitor category checks, but nothing requires one.
No, and it won't pretend to. Category, services, and description fixes often show movement in weeks; review velocity and prominence take months. The skill sets those expectations honestly and leaves you a 15-minute weekly routine sized for a real calendar.
Yes. MIT licensed, no signup, no catch. It's published by Reef, an Iowa-based studio that builds AI systems, websites, and automation for small businesses. If you'd rather have this whole workflow running done-for-you, that's the work Reef takes on.
Business Ops
The listing is one battlefield — this audits all of them, citations to city pages.
Business Ops
Response rate is part of your listing's trust signal. Handle it well.
Websites & Conversion
Your GBP link deserves a page built to convert the click.