cosmicstack-labs/local-business-growth
A mini marketing agency in skill form — 7 practical, actionable marketing skills designed for local business owners (shop owners, restaurants, service providers) who don't have a marketing team. Covers social media content, email/SMS campaigns, referral programs, Google Business Profile optimization, review management, competitor analysis, and local SEO.
npx skills add https://github.com/cosmicstack-labs/mercury-agent-skills --skill local-business-growth
> A mini marketing agency for local businesses. Each skill is designed to be usable by someone who's never run a marketing campaign before.
Step 1: Identify the Business & Goal
Ask (or infer from context):
Step 2: Pick the Right Reel Format
Match format to business type and goal:
| Format | Best For | Example |
|--------|----------|---------|
| Behind-the-Scenes | Showing authenticity | "How we prep our kitchen every morning" |
| Transformation | Before/after results | Haircut transformation, renovation reveal |
| Customer POV | Relatability, social proof | "POV: You walk into the best coffee shop in [city]" |
| Quick Tip | Authority building | "3 things to check before calling a plumber" |
| Trending Audio | Reach & virality | Dance or trend with product showcase |
| Day in the Life | Connection with owner | "A day serving [city] — from prep to close" |
| FAQ Answer | Reducing friction | "How long does a haircut really take?" |
| Offer/Announcement | Direct response | "This week only: 20% off your first visit" |
| UGC Style | Authenticity | Real customer enjoying your service |
| Local Pride | Community connection | "Why we love being in [neighborhood]" |
Step 3: Generate the Reel Idea
For each idea, provide:
Step 4: Example Output
🎬 REEL IDEA #1: "The 7 AM Kitchen Prep"
Hook (text on screen): "What happens before you walk in?"
Visuals: Fast cuts of chopping veggies, coffee brewing, setting tables
Script: "Every morning at 6am, we start fresh. Hand-chopped.
Locally sourced. Made with love. [Business name] opens
at 8 — come taste the difference."
Audio: Upbeat trending sound or lo-fi beat
CTA: "Tag your brunch buddy 👇"
Hashtags: #localbusiness #[city]eats #behindthescenes
🎬 REEL IDEA #2: "The 15-Second Salad"
Hook: "This salad takes longer to order than to make ⏱️"
Visuals: Fast montage of assembling the most popular salad
Script: "Our [name of salad] — made in 90 seconds flat.
Perfect for your lunch break. Swing by [location]."
Audio: Fast-paced, snappy track
CTA: "Save this for your next lunch run"
Hashtags: #quicklunch #[city]foodie #healthyeating
Step 5: Batch Recommendations
Always suggest 3-5 ideas in one go so the owner can batch-film them in a single session.
Step 1: Gather Campaign Details
Ask:
Step 2: Pick the Campaign Type
| Type | Purpose | Channel |
|------|---------|---------|
| Promotional Offer | Drive sales with a discount or deal | Email + SMS |
| Weekly/Happy Hour Special | Regular cadence, predictable | SMS (short) |
| New Product/Service Launch | Build excitement | Email (long) |
| Event/Workshop Announcement | Drive attendance | Email |
| Re-engagement ("We miss you") | Win back lapsed customers | SMS (strong) |
| Holiday/Greeting | Seasonal connection | Email |
| Thank You / Loyalty | Retention & appreciation | Email |
| Urgent / Flash Sale | Scarcity-driven | SMS only |
Step 3: Write the Email Campaign
Structure every email:
Subject Line: [Under 50 chars, creates curiosity or states value]
Preheader: [Extension of subject line, 80-100 chars]
Header / Hero Section:
- One main message (e.g., "This Weekend Only: 20% Off")
- Eye-catching, benefit-first
Body:
- Short paragraphs (1-3 sentences max)
- What's the offer? Why now? Why you?
- Social proof if available ("Loved by 200+ locals!")
Call to Action:
- One primary button (NOT multiple)
- Clear action verb ("Order Now", "Book Your Spot", "Claim Offer")
Footer:
- Business name, address, hours
- Unsubscribe link
- Social media links
Step 4: Write the SMS Version
Keep under 160 characters for single SMS. Use urgency.
Template: [Offer] + [Deadline] + [Link/Coupon]
Example: "🍕 This weekend only: Buy one large pizza, get one FREE.
Use code BOGO25 at checkout. Ends Sunday! Order: [link]"
Step 5: Example Output
📧 EMAIL CAMPAIGN: "Summer Sale — This Weekend Only"
Subject: Your summer treat is here ☀️
Preheader: 20% off everything this Saturday & Sunday
Hi [Name],
Summer just got sweeter.
This weekend (Sat-Sun only), enjoy 20% off your entire order
at [Business Name]. Whether you're craving [signature item]
or want to try something new — now's the time.
📅 This weekend only: August 17-18
📍 [Address]
🎉 Use code: SUMMER20
We can't wait to serve you.
[Button: CLAIM YOUR 20% OFF]
With love,
[Business Name]
[Address] | [Hours]
[Instagram Link]
---
📱 SMS VERSION:
☀️ HOT DEAL: 20% off everything at [Business Name] this
weekend only! Use code SUMMER20. See you Sat-Sun!
📍 [address] [link]
Step 6: Compliance Reminder
Always include at the end:
Step 1: Analyze the Business Model
Ask:
Step 2: Choose a Referral Structure
| Structure | How It Works | Best For |
|-----------|-------------|----------|
| Double-Sided Reward | Both referrer & friend get something | Restaurants, retail |
| Single-Sided Reward | Only referrer gets rewarded | High-ticket services (dentist, auto repair) |
| Friend-Only Reward | Only the new customer gets a discount | First-time buyer incentive |
| Tiered Rewards | Rewards increase with more referrals | High-repeat businesses (salons, cafes) |
| Points System | Accumulate points per referral, redeem later | Subscription/regular visit models |
Step 3: Design the Reward
Rule of thumb: Reward should be 10-20% of average order value.
| Business Type | Suggested Reward (Referrer) | Suggested Reward (Friend) |
|--------------|---------------------------|--------------------------|
| Restaurant/Cafe | Free appetizer or drink | 15% off first meal |
| Hair Salon | 20% off next visit | 20% off first visit |
| Auto Shop | Free car wash with next service | $25 off first repair |
| Dental Office | Free teeth whitening kit | Free exam & X-rays |
| Boutique/Gift Shop | $10 store credit | 15% off first purchase |
| Yoga/Fitness Studio | 1 free class pass | 1 week free trial |
| Pet Groomer | $10 off next groom | $10 off first groom |
Step 4: Create the Tracking System
For businesses without fancy software:
Low-Tech Options (pick one):
1. Unique referral code per customer (e.g., "REF-JOHN5")
→ Customer shares code, friend mentions it at checkout
2. Physical referral cards (print 500, give 5 per customer)
→ Each card has a unique code, friend brings it in
3. "Mention [customer name]" — simple verbal system
→ Friend says "Sarah sent me" at checkout
4. Google Form + QR code at register
→ Customer scans, fills friend's email, you send the offer
5. Free tools: ReferralCandy, Viral Loops, Yotpo (for online)
→ Or simple: a Google Sheet + honor system
Step 5: Launch & Promote
Week 1: Train staff to ask every customer
- "Love us? Bring a friend and you both save."
In-Store signage:
- Counter tent card: "Share the love — refer a friend,
get [reward]. Ask us how!"
- Receipt footer: "Refer a friend → you both win"
- Bag stuffer card with referral details
Social Media Announcement:
1 post announcing the program
1 post highlighting a customer who earned the reward
1 Story with "Tag a friend you'd bring"
Check-in ask:
"How did you hear about us?" → If "a friend", log the referrer
Step 6: Measure & Optimize
Track monthly:
Step 1: Audit Current Profile Completeness
Check every field — Google rewards 100% complete profiles.
Completion Checklist:
□ Business name (exact real name — no keywords stuffed in)
□ Category (primary + secondary categories selected)
□ Address (exact, consistent with website and citations)
□ Service area (if no storefront, define radius)
□ Phone number (local, not toll-free)
□ Website URL
□ Business hours (including holiday hours)
□ Description (750 chars max — use keywords naturally)
□ Attributes (women-led, outdoor seating, free wifi, etc.)
□ Products/Services section (add top 5-10)
□ Photos (minimum 10-15 high-quality images)
□ Posts (minimum 1 per week)
□ Q&A section (populate with FAQs)
□ Reviews (respond to every single one)
Step 2: Optimize Categories
Primary category is the MOST important ranking factor.
How to choose:
1. Go to Google's category list
2. Pick the most specific category that fits
- ❌ "Restaurant" (too broad)
- ✅ "Italian Restaurant" (specific)
- ❌ "Hair Salon" (generic)
- ✅ "Hair Extension Salon" (more specific)
3. Add secondary categories
- Add 3-5 relevant secondary categories
- Restaurant example: "Pizza Restaurant", "Takeout", "Delivery"
Step 3: Optimize Business Description
Formula for the 750-character description:
Paragraph 1 (Who you are):
"For over [X] years, [Business Name] has been [city]'s go-to
for [service]. We specialize in [specific offering], serving
[neighborhood/community] with [what makes you different]."
Paragraph 2 (What you offer):
"From [signature product] to [another offering], we do it all.
Our team brings [years] of experience in [field]."
Paragraph 3 (Call to action):
"Visit us at [address]. Open [hours]. Call [phone] to book
or stop by — we'd love to serve you."
Keywords to naturally include:
- City name and neighborhood
- Service keywords (e.g., "organic haircolor", "wood-fired pizza")
- "Best [service] in [city]" (once, naturally)
Step 4: Audit NAP Consistency
NAP = Name, Address, Phone. This MUST be identical everywhere.
Check these sources for NAP consistency:
□ Google Business Profile
□ Website (footer and contact page)
□ Yelp
□ Facebook Page
□ Apple Maps
□ Bing Places
□ YellowPages
□ Nextdoor
□ Industry directories (ZocDoc for doctors, TripAdvisor for restaurants)
□ Chamber of Commerce site
□ Local blog mentions
Common NAP errors:
- "Street" vs "St" (pick one, use everywhere)
- "Suite 100" vs "Ste 100"
- Area code with/without parentheses
- (555) 555-1234 vs +1 555-555-1234
Step 5: Photo Strategy
Google profiles with photos get 42% more requests for directions.
Required photos:
□ 3-5 exterior shots (storefront from different angles)
□ 5-10 interior shots (atmosphere, seating)
□ 5+ product shots (food, services being performed)
□ 3-5 team photos (staff, owner, action shots)
□ 2-3 "in action" shots (customer enjoying service)
Photo best practices:
- High resolution (minimum 720px wide)
- No stock photos — real images only
- Add geotags to photos
- Upload new photos weekly
- Encourage customer photo uploads
Step 6: Posting Strategy
Posts show in search results and Maps. Post at least weekly.
Post Types & Cadence:
Monday: What's New (product, service, menu update)
Wednesday: Offer/Promotion (limited-time deal)
Friday: Event or Community Involvement
Post content formula:
- Image/video (720x720 minimum)
- Short, punchy text (150-200 chars)
- Clear CTA ("Call Now", "Get Offer", "Learn More")
- UTM tracking link if possible
Example Post:
"🔥 New on our menu: [Item Name]! Handmade, locally sourced,
and absolutely delicious. Come try it this weekend.
📍 [Address] [CTA: Order Now → link]"
Step 7: Q&A Optimization
Seed 5-10 common questions and answer them yourself.
Sample Q&A for a restaurant:
Q: "Do you have vegetarian options?"
A: "Yes! We have 8 vegetarian dishes including our famous [dish].
Ask your server for recommendations."
Q: "Do you take reservations?"
A: "We accept reservations for parties of 5+ via our website
or phone. Walk-ins are always welcome!"
Q: "What's the best time to avoid the crowd?"
A: "Weekday afternoons (2-4pm) are our quietest. Weekend
mornings before 10am are also great!"
Q: "Is there parking available?"
A: "Free street parking on [street names]. We also have a
small lot behind the building with 10 spaces."
Step 8: Prioritized Fix List
Output as a ranked action list:
🔴 HIGH PRIORITY (Do this week):
1. [Fix] Add secondary categories
2. [Fix] Respond to 12 unanswered reviews
3. [Add] 5 photos of interior
4. [Add] Complete business description
🟡 MEDIUM PRIORITY (Do this month):
5. [Fix] NAP inconsistency on Yelp
6. [Add] Weekly posts for next 4 weeks
7. [Seed] 5 Q&A entries
8. [Add] Products/Services section
🟢 LOW PRIORITY (Do this quarter):
9. [Add] 3 more exterior photos
10. [Add] Holiday hours
11. [Collect] 10 more Google reviews
Step 1: Analyze the Review
Classify before responding:
| Type | Sentiment | Goal |
|------|-----------|------|
| ⭐⭐⭐⭐⭐ Positive | Happy customer | Reinforce loyalty, encourage return |
| ⭐⭐⭐⭐ Positive with note | Mostly happy, small critique | Address the note, thank them |
| ⭐⭐⭐ Neutral | Mixed experience | Acknowledge, improve, invite back |
| ⭐⭐ Negative | Unhappy customer | Empathize, make it right, take offline |
| ⭐⭐⭐⭐ No text | Just stars | Simple warm thank you |
Step 2: Follow the Response Framework
For Positive Reviews (4-5 stars):
Framework: Thank + Personalize + Invite Back
"Hi [Name], thank you so much for the kind words! We're
thrilled you enjoyed [specific thing they mentioned].
Can't wait to serve you again soon. Next time, ask about
[new item/service] — we think you'll love it! 🙌
– [Owner/Manager Name], [Business Name]"
Rules:
For Negative Reviews (1-3 stars):
Framework: Empathize + Apologize + Explain + Resolve + Move Offline
"Hi [Name], thank you for sharing your experience. We're
truly sorry that [specific issue] didn't meet your expectations.
That's not the standard we aim for.
We'd love the chance to make this right. Please reach out
to us directly at [email/phone] so we can [specific resolution].
We appreciate your feedback — it helps us improve every day.
– [Owner/Manager Name], [Business Name]"
Rules:
Step 3: Example Responses by Scenario
⭐ 5-STAR: "Best pizza in town! The crust was perfect."
Response:
"Thanks, [Name]! That means the world to us. Our dough
is made fresh daily — glad you could taste the difference.
Next time, try the Truffle Mushroom — it's a fan favorite! 🍕"
⭐ 3-STAR: "Food was okay but service was slow."
Response:
"Hi [Name], thanks for the honest feedback. We're sorry
the service didn't match our usual pace — Saturday nights
can get busy. We've talked with our team about table
turnaround. We'd love to have you back for a faster
experience. Reach us at [email] and we'll set you up!"
⭐ 1-STAR: "Found a hair in my food. Disgusting."
Response:
"[Name], I'm genuinely horrified and deeply sorry. This
is completely unacceptable. Our kitchen team has been
re-trained on our protocols. Please email us at [email]
so we can personally make this right for you. We take
this extremely seriously."
⭐ 4-STAR: "Great haircut! Just wish the wait was shorter."
Response:
"Thanks, [Name]! So glad you loved the cut. You're right
about the wait — we've actually started taking online
bookings to fix that. Book ahead next time and you'll be
in the chair in 5 minutes. See you soon! ✂️"
Step 4: Track Sentiment Over Time
Maintain a simple log:
Date | Platform | Rating | Category | Issue (if negative) | Responded?
-----|----------|--------|----------|--------------------|-----------
Jan 5 | Google | ⭐⭐⭐⭐ | Service | Wait time | ✅
Jan 6 | Yelp | ⭐⭐⭐⭐⭐ | Food | - | ✅
Jan 7 | Google | ⭐⭐ | Cleanliness | Bathroom | ✅
Monthly Report:
- Total reviews: 45
- Average rating: 4.2
- Positive: 38 | Neutral: 4 | Negative: 3
- Top complaint: Wait time (5 mentions)
- Top praise: Food quality (12 mentions)
Step 5: Proactive Review Generation Strategy
Ask for reviews at the right moment:
🟢 Best times to ask:
- Right after a compliment ("I love this place!")
- After successful service completion
- When customer says "see you next time"
- After resolving a complaint successfully
🔴 Worst times to ask:
- During a rush or busy period
- When there's an unresolved issue
- Right after payment (feels transactional)
How to ask:
In-person: "If you had a great experience, we'd love a
Google review! Here's a QR code — takes 30 seconds."
Email/SMS follow-up: "Thanks for visiting [Business Name]!
If you enjoyed your experience, consider leaving us a
review. It helps small businesses like ours so much.
[Link to review]"
QR Code: Place at register and on receipts
Step 1: Identify Competitors
Ask the business owner:
Primary Competitors (direct — same service, same area):
1. [Name] — [Location/Area]
2. [Name] — [Location/Area]
3. [Name] — [Location/Area]
Secondary Competitors (different but could substitute):
4. [Name] — [Different angle, same customer need]
5. [Name] — [Nearby area, might draw same customers]
Step 2: Analyze Each Competitor Across 5 Dimensions
A. Google Business Profile
For each competitor, check:
□ Overall rating (average stars)
□ Number of reviews
□ Profile completeness (photos, description, services)
□ Post frequency
□ Response rate to reviews
□ Top keywords in their reviews (what customers praise)
B. Social Media Presence
Platform-by-platform analysis:
Instagram/Facebook:
- Follower count
- Post frequency
- Average likes/comments per post
- Content themes (food, team, promos, behind-the-scenes)
- Most engaging post types
- Use of Reels vs static posts
- Bio and link optimization
TikTok:
- Follower count
- Video style (trendy, educational, funny)
- Most viewed videos
- Posting frequency
C. Website & Online Presence
□ Website quality (mobile-friendly, speed, design)
□ Is there online ordering/booking?
□ Menu/pricing visible?
□ Blog or content?
□ Email signup visible?
□ SEO basics (title tags, descriptions)
D. Reviews & Reputation
What customers LOVE about them (extract from reviews):
1. [e.g., "Fast service" — mentioned 8 times]
2. [e.g., "Friendly staff" — mentioned 6 times]
What customers COMPLAIN about (their weak spots):
1. [e.g., "Expensive" — mentioned 5 times]
2. [e.g., "Parking is hard" — mentioned 4 times]
→ Their weaknesses = YOUR opportunities
E. Promotions & Marketing
□ Current offers or deals
□ Loyalty program
□ Referral program
□ Email/SMS marketing
□ Partnerships with other local businesses
□ Events or community involvement
Step 3: Competitive Matrix
Output as a comparison table:
COMPETITIVE COMPARISON: [Business Type] in [City/Area]
Feature | Us | Comp A | Comp B | Comp C
-----------------|-----------|----------|----------|----------
Google Rating | 4.5 ⭐ | 4.2 ⭐ | 4.7 ⭐ | 3.9 ⭐
# of Reviews | 87 | 203 | 56 | 41
Post Frequency | 1x/week | 3x/week | 1x/month | Never
Instagram Fol. | 1,200 | 3,400 | 890 | 450
Response Rate | 100% | 60% | 90% | 20%
Online Ordering | ✅ | ✅ | ❌ | ❌
Loyalty Program | ❌ | ✅ | ❌ | ❌
Happy Hour/Deals | Weekly | Daily | Never | Monthly
Website Mobile | ✅ Fast | ✅ Slow | ❌ | ✅ Decent
Step 4: Identify Opportunities
The gap analysis — what you can exploit:
🔵 OUR ADVANTAGES (defend & amplify):
- [e.g., Higher Google rating than anyone]
- [e.g., Only business with online ordering]
🟡 COMPETITOR WEAKNESSES (attack):
- [e.g., Comp A responds to only 60% of reviews —
we can win by responding to 100%]
- [e.g., Comp B doesn't post on social —
we can own that channel]
🟢 MARKET GAPS (nobody is doing this):
- [e.g., No one has a loyalty program]
- [e.g., No one posts behind-the-scenes content]
- [e.g., No one does a weekly email newsletter]
Step 5: Provide 3 Actionable Recommendations
🚀 TOP 3 ACTIONS FOR THIS WEEK:
1. [Action] — [Why] — [Expected Impact]
e.g., "Post 3x this week on Instagram. Comp A is
out-posting us 3:1 and capturing attention."
2. [Action] — [Why] — [Expected Impact]
e.g., "Respond to all 12 unanswered reviews today.
Comp A ignores 40% of theirs — being responsive
builds trust."
3. [Action] — [Why] — [Expected Impact]
e.g., "Add a 'Refer a Friend' card to every bag.
No competitor has a referral program — this is
free customer acquisition."
Step 1: Understand Keyword Types for Local Businesses
4 Types of Local Keywords:
1. "Near me" & Implicit Near Me
- "pizza near me"
- "coffee shop near me"
- "dentist open now"
→ Google uses location data; optimize GBP
2. Service + Location
- "hair salon Austin"
- "plumber Brooklyn"
- "best Italian restaurant Chicago"
→ Most competitive; highest intent
3. Service + Modifier
- "affordable plumber"
- "24 hour dentist"
- "vegan bakery"
→ Qualifies intent; less competitive
4. Long-tail Questions
- "how much does a haircut cost in [city]"
- "what's the best pizza place for delivery near [street]"
- "when do farmers markets open in [city]"
→ Lowest competition; content opportunity
Step 2: Research Keywords (Free Methods)
Method 1: Google Autocomplete
Type into Google: "[service] in [city]" and note suggestions
Example: "pizza in" → "pizza in Chicago", "pizza in [neighborhood]"
Method 2: Google's "People Also Ask"
Search your main keyword → scrape the PAA boxes
These are real questions people are asking
Method 3: Google Search Console
Go to Performance → Queries
Filter by your pages that rank 8-20 (easy wins)
Look for queries with impressions but low clicks
Method 4: Customer Language Audit
Look at your existing reviews — what words do customers use?
(They often use different terms than you do!)
Method 5: Google Maps Search
Type "[service]" with your Maps location centered
Note what auto-suggests in the Maps search bar
Method 6: AnswerThePublic (Free tier)
Enter "[service] [city]" → get question-based keywords
Step 3: Build the Keyword Table
Output a structured table:
LOCAL KEYWORD OPPORTUNITIES: [Business Name]
Primary Keywords (High volume, competitive — optimize GBP + homepage):
| Keyword | Search Intent | Competition | Priority | Where to Use |
|---------|--------------|-------------|----------|-------------|
| [service] [city] | Transactional | High | ⭐⭐⭐ | Homepage, GBP |
| [service] near me | Transactional | High | ⭐⭐⭐ | GBP, Website |
| best [service] [city] | Commercial | Medium | ⭐⭐⭐ | Homepage, Blog |
| [service] [neighborhood] | Transactional | Medium | ⭐⭐⭐ | GBP, Landing page |
Secondary Keywords (Medium volume — optimize service pages + posts):
| Keyword | Intent | Competition | Priority | Where to Use |
|---------|--------|-------------|----------|-------------|
| affordable [service] [city] | Commercial | Low | ⭐⭐ | Pricing page |
| [service] open now [city] | Transactional | Low | ⭐⭐ | GBP hours |
| [service] for [specific need] | Informational | Low | ⭐⭐ | Blog post |
| [city] [service] [descriptor] | Commercial | Low | ⭐⭐ | Service page |
Long-tail Content Keywords (Low volume, high conversion — blog/social):
| Keyword | Intent | Competition | Priority | Content Idea |
|---------|--------|-------------|----------|-------------|
| how to [related topic] | Informational | Very Low | ⭐ | Blog: "How to..." |
| [service] vs [alternative] | Commercial | Very Low | ⭐ | Comparison post |
| what to look for in [service] | Informational | Very Low | ⭐ | Buyer's guide |
| best time for [service] [city] | Informational | Very Low | ⭐ | Seasonal post |
Step 4: Map Keywords to Content
For each priority keyword, create a content plan:
Keyword: "emergency plumber Austin TX"
Content to Create:
1. Homepage section: "24/7 Emergency Plumbing in Austin"
→ Include phone number prominently
→ Mention response time ("60 minutes or less")
2. Service page: "Emergency Plumbing Services Austin"
→ List common emergencies (burst pipes, clogged drains)
→ Service area map
→ Testimonials from emergency calls
3. GBP Post: "Got a plumbing emergency? We're available
24/7. Call [number]. #AustinPlumber #EmergencyPlumbing"
4. Blog post: "What to Do in a Plumbing Emergency [City Guide]"
→ Step-by-step instructions
→ When to call a pro vs DIY
→ Your emergency contact info
Step 5: Technical Local SEO Checklist
For each keyword group, ensure:
☐ Keyword appears in page title tag
☐ Keyword appears in H1 (once, naturally)
☐ Keyword appears in URL slug
☐ Keyword appears in meta description (1x, naturally)
☐ Keyword appears in first 100 words of content
☐ City/neighborhood name on page (NATURALLY, not stuffed)
☐ NAP (Name, Address, Phone) on every page
☐ Embedded Google Map on contact page
☐ Schema markup: LocalBusiness structured data
LocalBusiness Schema example:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "[Business Name]",
"image": "[logo URL]",
"address": {
"@type": "PostalAddress",
"streetAddress": "[Street Address]",
"addressLocality": "[City]",
"addressRegion": "[State]",
"postalCode": "[ZIP]"
},
"telephone": "[Phone]",
"openingHours": "Mo-Fr 09:00-17:00",
"url": "[Website URL]"
}
</script>
Step 6: Content Calendar Based on Keywords
WEEK 1: Primary Keywords
- Update homepage H1 with main keyword
- Write GBP description with top 3 keywords
- Create 1 GBP post with secondary keyword
WEEK 2: Secondary / Service Keywords
- Create/optimize 1 service page
- Write 1 blog post for a long-tail question
WEEK 3: Local Content
- Write a neighborhood guide or "Best of [City]" post
- Get listed on 2 local directories/citation sites
WEEK 4: Review & Measure
- Check Google Search Console for keyword impressions
- Note which keywords are gaining traction
- Adjust strategy for next month
Monthly recurring:
- Add 1 new blog post targeting a long-tail keyword
- Create 4 GBP posts (1 per week)
- Check rankings for top 10 keywords
- Add 1 new citation/directory listing
| If you want to... | Use this skill |
|-------------------|---------------|
| Get more followers and views on social media | Social Reel Maker |
| Send a promotion to your customer list | Campaign Writer |
| Get existing customers to bring in new ones | Referral Builder |
| Show up higher in Google Maps and local search | GBP Optimizer |
| Handle customer reviews like a pro | Review Responder |
| See what competitors are doing and beat them | Competitor Scout |
| Find the exact words people search for | Local SEO Keyfinder |
DAY 1: ☐ Respond to all unanswered reviews (Review Responder)
DAY 2: ☐ Post 1 Reel/Reel idea (Social Reel Maker)
DAY 3: ☐ Add 3 new photos to GBP (GBP Optimizer)
DAY 4: ☐ Research 5 local keywords (Local SEO Keyfinder)
DAY 5: ☐ Check 1 competitor's social (Competitor Scout)
WEEK 2: ☐ Send 1 promotional email/SMS (Campaign Writer)
WEEK 3: ☐ Design referral program (Referral Builder)
WEEK 4: ☐ Post weekly GBP updates (GBP Optimizer)
*Built for local business owners who wear every hat. No marketing degree required.*
Take cosmicstack-labs/local-business-growth from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.