How to Build a Local Content Strategy with Claude (Step-by-Step)
You have a client. They need content. You could open a spreadsheet, pull keywords from various tools, spend a few hours organizing them, figure out what pages to build, and then spend more hours briefing each piece.
Or you could run four prompts.
This is the complete keyword-to-content-architecture workflow using Claude + LocalSEOSkills. From raw keyword research through concept clustering, page type assignments, geogrid tracking keyword selection, and full content brief production for each piece identified.
Every step uses real prompts with real outputs. The example throughout: a residential roofing company in Charlotte NC with a basic website (two pages) and a GBP profile with a single “Roofing Contractor” category. They want to build a complete content presence but don’t know where to start.
The Four-Step Workflow
The workflow chains four skills together:
- Keyword Research — Discover what customers search for
- Content Strategy — Organize keywords into concepts, assign content vehicles
- Content Briefs — Specify exactly what each piece must cover
- Coverage Audit — Measure what exists, identify gaps
Each step produces output that feeds the next. Run them in sequence for a new client. Run steps 3-4 repeatedly as you build and measure.
Step 1: Keyword Research
The foundation. You can’t build a content strategy without knowing what concepts matter to this market.
The Prompt
Do local keyword research for a residential roofing company in Charlotte NC.
Give me: top 20 transactional keywords with volume and competition,
top 10 informational/content keywords, GBP service additions,
and keyword gaps vs. [competitor domain].
What Happens
Dispatch routes to local-keyword-research, which calls LocalSEOData’s keyword endpoints. You get:
TRANSACTIONAL KEYWORDS (top 10 of 20)
Keyword | MSV | Competition
"roofing company charlotte nc" | 480 | HIGH
"roof repair charlotte" | 320 | HIGH
"roofing contractor charlotte" | 210 | HIGH
"storm damage roof repair charlotte" | 140 | MEDIUM
"roof replacement charlotte nc" | 120 | HIGH
"emergency roof repair charlotte" | 90 | MEDIUM
"metal roofing charlotte" | 70 | MEDIUM
"shingle roof repair charlotte" | 60 | LOW
"roof leak repair charlotte" | 50 | MEDIUM
"flat roof repair charlotte nc" | 40 | LOW
INFORMATIONAL KEYWORDS (top 5 of 10)
"how much does a new roof cost in nc" | 590
"how long does a roof last" | 320
"does insurance cover roof damage" | 260
"signs you need a new roof" | 180
"best roofing material for nc climate" | 90
GBP SERVICE ADDITIONS
Currently listed: Roofing Contractor (primary category only)
Add these services:
→ Storm Damage Repair
→ Emergency Roof Repair
→ Roof Inspection
→ Gutter Installation
→ Roof Replacement
→ Shingle Repair
→ Metal Roofing Installation
→ Flat Roof Repair
KEYWORD GAPS VS. [COMPETITOR]
Competitor ranks, you don't:
"charlotte roofing estimates" | 70/mo | Position 4
"roofing warranty charlotte" | 40/mo | Position 6
"licensed roofer charlotte nc" | 35/mo | Position 3
What to Look For
The keyword list is raw material. Notice:
- Cluster signals — “storm damage roof repair,” “emergency roof repair,” and “roof leak repair” are probably the same user need expressed differently
- GBP opportunities — Services not listed are visibility not captured
- Informational intent — The cost and insurance questions have higher volume than many transactional keywords. These are research-phase customers.
- Competitor gaps — Terms they rank for that you don’t represent content opportunities
Don’t try to act on this list directly. That’s what Step 2 is for.
Step 2: Build the Content Strategy
This is where a keyword list becomes a content plan. Same session — paste the output from Step 1.
The Prompt
Take this keyword research output and build the complete content strategy
for [Business Name] in Charlotte NC.
Organize into concept clusters, assign content vehicles,
select 4 geogrid tracking keywords with reasoning,
and confirm GBP actions.
What Happens
Dispatch routes to local-content-strategy. You get a complete content architecture:
CONTENT STRATEGY: [Business Name] — Charlotte NC
7 concept clusters identified
═══════════════════════════════════════════════════════════════
CLUSTER 1: Roofing Services — Charlotte (Primary)
Primary keyword: "roofing company charlotte nc" | 480/mo | HIGH
Supporting: "roofing contractor charlotte", "charlotte roofing company",
"roofer charlotte nc", "roofing charlotte"
Intent: Transactional — ready to hire
Competition: High
Content vehicle: PRIMARY LOCATION PAGE
URL: /roofing-company-charlotte-nc/
Reasoning: Highest volume transactional concept in the market.
Deserves comprehensive location page treatment — this is the hub
all other pages link to. Must cover: services offered, service area,
credentials, process, and differentiators. 1,800-2,400 words.
═══════════════════════════════════════════════════════════════
CLUSTER 2: Storm Damage Roofing
Primary keyword: "storm damage roof repair charlotte" | 140/mo | MEDIUM
Supporting: "hail damage roof repair", "wind damage roof charlotte",
"roof damage insurance claim charlotte"
Intent: Transactional — urgent, event-driven
Competition: Medium
Content vehicle: LOCATION PAGE + GBP SERVICE
URL: /storm-damage-roof-repair-charlotte/
Reasoning: Distinct concept from general roofing. Significant local
relevance — Charlotte severe weather season (April-September).
High commercial intent at a specific decision moment. Users searching
this have recent storm damage. Requires content covering: damage
assessment, insurance claim process, emergency tarping, timeline.
Add "Storm Damage Repair" as GBP service immediately.
═══════════════════════════════════════════════════════════════
CLUSTER 3: Emergency Roof Repair
Primary keyword: "emergency roof repair charlotte" | 90/mo | MEDIUM
Supporting: "24 hour roofer charlotte", "emergency roofer near me",
"roof leak emergency charlotte"
Intent: Transactional — urgent, immediate need
Competition: Medium
Content vehicle: LOCATION PAGE + GBP SERVICE
URL: /emergency-roof-repair-charlotte/
Reasoning: Distinct from storm damage — emergency can be any cause.
After-hours availability is the differentiator. If you offer 24/7
service, this page converts high-intent urgent searches. If you
don't, deprioritize. Add "Emergency Roof Repair" as GBP service.
Consider "24 Hour Service" attribute if applicable.
═══════════════════════════════════════════════════════════════
CLUSTER 4: Roof Replacement
Primary keyword: "roof replacement charlotte nc" | 120/mo | HIGH
Supporting: "new roof charlotte", "reroof charlotte",
"roof replacement cost charlotte"
Intent: Transactional — major purchase decision
Competition: High
Content vehicle: LOCATION PAGE + GBP SERVICE
URL: /roof-replacement-charlotte-nc/
Reasoning: Different job type from repair — larger scope, longer
sales cycle, higher ticket. Customers researching replacement have
different questions than repair customers. Dedicated page allows
specific coverage of: material options, timeline, financing, warranty.
Add "Roof Replacement" as GBP service.
═══════════════════════════════════════════════════════════════
CLUSTER 5: Roof Cost and Process (Informational)
Primary keyword: "how much does a new roof cost in nc" | 590/mo
Supporting: "roof replacement cost nc", "average roof cost charlotte",
"roofing estimate charlotte"
Intent: Informational — research phase
Competition: Low-Medium
Content vehicle: BLOG POST / FAQ PAGE
URL: /blog/roof-cost-north-carolina/
Reasoning: Informational intent — user is researching before deciding.
Highest volume keyword in the entire research. AI Overview candidate
(direct answer format works). No location page needed — this is
awareness/consideration content that links to transactional pages.
Cover: price ranges by material, factors affecting cost, NC-specific
considerations, what to expect from an estimate.
═══════════════════════════════════════════════════════════════
CLUSTER 6: Insurance and Claims
Primary keyword: "does insurance cover roof damage" | 260/mo
Supporting: "roof insurance claim process", "roofing insurance charlotte",
"storm damage insurance roof"
Intent: Informational — decision support
Competition: Low
Content vehicle: BLOG POST
URL: /blog/roof-damage-insurance-claims-nc/
Reasoning: Research-phase content supporting storm damage conversions.
Users asking this question have damage and are deciding whether to
file a claim. Content should cover: what's typically covered, the
claim process, working with contractors on claims, NC-specific
insurance considerations. Links to storm damage location page.
═══════════════════════════════════════════════════════════════
CLUSTER 7: Near-Me Searches
Primary keyword: "roofer near me" | [varies by location]
Supporting: "roofing company near me", "roof repair near me"
Intent: Transactional — proximity-driven
Competition: High (proximity-dependent)
Content vehicle: GBP SIGNAL ONLY — NO PAGE NEEDED
Reasoning: Near-me queries are won through GBP prominence, proximity,
and completeness — not through page content. You cannot rank a page
for "near me" from a user in a different location. These keywords
are served by: strong GBP, good reviews, correct business location,
complete service area settings. No content action required.
═══════════════════════════════════════════════════════════════
GEOGRID TRACKING KEYWORDS (4 selected)
1. "roofing company charlotte nc"
Reasoning: Primary revenue concept. Highest volume transactional
keyword. Ranking improvement here directly increases leads.
Track on 7x7 grid, 1mi spacing, centered on business location.
2. "storm damage roof repair charlotte"
Reasoning: Seasonal high-value intent. Charlotte storm season
(April-September) drives urgent searches. SoLV here during
storm season = significant revenue capture.
3. "roof replacement charlotte nc"
Reasoning: Different job type from repair. Higher ticket,
longer sales cycle. Tracking separately shows whether you're
capturing major project searches vs. just repair searches.
4. "emergency roof repair charlotte"
Reasoning: Urgent intent, high conversion. If you offer 24/7
service, this tracks whether you're capturing emergency searches.
Geographic spread matters — emergencies happen across service area.
═══════════════════════════════════════════════════════════════
GBP ACTIONS (do these today)
Categories:
✓ Roofing Contractor (primary) — already claimed
+ Add: "Siding Contractor" — if you offer siding
+ Add: "Gutter Cleaning Service" — if you offer gutters
Services to add:
→ Storm Damage Repair
→ Emergency Roof Repair
→ Roof Inspection
→ Roof Replacement
→ Shingle Repair
→ Metal Roofing Installation
→ Gutter Installation
→ Flat Roof Repair
Attributes to confirm:
→ "Identifies as veteran-owned" (if applicable)
→ "Free estimates" (if offered)
═══════════════════════════════════════════════════════════════
PRODUCTION PRIORITY ORDER
Phase 1 — Today (GBP, no content):
Add 8 services, confirm attributes. [30 minutes]
Phase 2 — First 2 weeks:
Build primary location page (/roofing-company-charlotte-nc/)
Build storm damage page (/storm-damage-roof-repair-charlotte/)
[These capture highest-value searches first]
Phase 3 — Weeks 3-6:
Build emergency page, roof replacement page
Build cost blog post (highest informational volume)
Phase 4 — Ongoing:
Insurance blog post, secondary content, coverage expansion
How to Read This Output
The strategy output contains more information than a keyword list:
Cluster labels are concepts, not keywords. “Storm Damage Roofing” is the concept. The keywords within the cluster are expressions of that concept. Content should cover the concept, not target each keyword.
Content vehicle assignments have reasoning. Not every keyword needs a page. Some need GBP services. Some need blog posts. Some need nothing because GBP signals handle them. The reasoning explains why each assignment was made.
Geogrid keywords are strategic choices. Four keywords, four distinct concepts. You’re not tracking synonyms — you’re tracking whether you’re capturing different types of searches across your service area.
Production priority is sequenced. GBP actions first because they take 30 minutes and expand visibility immediately. High-value location pages next. Supporting content later.
Step 3: Produce Content Briefs
With the strategy in place, each content vehicle needs a complete brief. This is a repeatable loop — one prompt per piece.
The Prompt
Write a complete content brief for the Storm Damage Roofing location page
for [Business Name] in Charlotte NC.
Include concept coverage plan, required local entities,
schema requirements, internal linking, and AI Overview formatting.
What Happens
Dispatch routes to local-content-briefs. You get a complete, execution-ready brief:
CONTENT BRIEF: Storm Damage Roof Repair — Charlotte NC
═══════════════════════════════════════════════════════════════
CORE CONCEPT
How a Charlotte homeowner evaluates storm damage, navigates the
insurance claim process, and works with a roofing contractor to
restore their roof — from identifying damage through completed repair.
This is not a page about "storm damage roof repair" as a keyword.
It's a page that demonstrates complete expertise on the topic of
storm damage roofing in the Charlotte market.
═══════════════════════════════════════════════════════════════
CONTENT VEHICLE: Location Page
TARGET WORD COUNT: 1,400–1,800 words
PRIMARY KEYWORD: "storm damage roof repair charlotte" | 140/mo
SUPPORTING KEYWORDS (weave naturally):
- hail damage roof repair charlotte
- wind damage roof repair
- roof damage insurance claim charlotte
- emergency roof tarping charlotte
- storm damage roof inspection
═══════════════════════════════════════════════════════════════
CONCEPT COVERAGE PLAN
COMPREHENSIVE COVERAGE (400-500 words each):
1. Identifying Storm Damage on Your Roof
Why comprehensive: This is the entry point. Users searching this
term have just experienced a storm and don't know if they have damage.
Key points to cover:
- Visual signs of hail damage (dented vents, granule loss, bruised shingles)
- Visual signs of wind damage (lifted shingles, exposed underlayment)
- When it's safe to inspect yourself vs. when to call a professional
- Time sensitivity — why waiting can make damage worse
Local specificity:
- Charlotte hail patterns (spring/early summer storms)
- Typical wind speeds in Charlotte severe storms
- How Carolina humidity affects damage progression
2. The Insurance Claim Process for Roof Damage
Why comprehensive: This is the decision gate. Users need to understand
whether insurance will cover the repair before committing.
Key points to cover:
- What homeowner's insurance typically covers (and doesn't)
- Documentation required before filing
- The adjuster visit — what to expect, how to prepare
- Working with a contractor who handles insurance claims
- Timeline from claim to repair completion
Local specificity:
- NC Department of Insurance as regulatory reference
- NC-specific claim considerations
- Common Charlotte insurers and their processes
───────────────────────────────────────────────────────────────
STANDARD COVERAGE (200-300 words each):
3. Emergency Tarping and Temporary Protection
What to cover: When tarping is needed, what it protects against,
how long a tarp lasts, cost considerations
Link to: Emergency roof repair page
4. The Professional Inspection Process
What to cover: What a storm damage inspection includes, how long
it takes, what the report contains, free vs. paid inspections
5. Repair vs. Full Replacement Decision
What to cover: Factors that determine repair vs. replace, age of
roof, extent of damage, insurance considerations, cost comparison
───────────────────────────────────────────────────────────────
BRIEF COVERAGE (75-150 words each):
6. Timeline from Claim to Completion
Key point: Typical timeline, factors that affect speed
7. What If the Adjuster Underestimates?
Key point: Options for disputing, supplemental claims, contractor advocacy
8. Choosing a Storm Damage Contractor
Key point: What to look for, red flags, questions to ask
═══════════════════════════════════════════════════════════════
REQUIRED LOCAL ENTITIES
| Entity | Type | Context for Mention |
|--------|------|---------------------|
| [Business Name] | Business | Intro paragraph, CTA sections |
| Charlotte, NC | Geography | Throughout — primary geo signal |
| Mecklenburg County | Geography | Service area section |
| NC Department of Insurance | Regulatory | Insurance section reference |
| Common Charlotte neighborhoods | Geography | Service area list |
| Charlotte storm season | Local fact | April-September mention |
═══════════════════════════════════════════════════════════════
QUESTIONS THIS CONTENT ANSWERS
| Question | Section | AI Overview? |
|----------|---------|--------------|
| How do I know if my roof has storm damage? | Section 1 | YES |
| Does insurance cover storm damage roof repair? | Section 2 | YES |
| How long does storm damage repair take? | Section 6 | YES |
| Should I tarp my roof after a storm? | Section 3 | NO |
| When should I replace vs. repair? | Section 5 | NO |
| What does a roof inspection include? | Section 4 | NO |
| How do I file an insurance claim for roof damage? | Section 2 | YES |
| What if my insurance claim is denied? | Section 7 | NO |
═══════════════════════════════════════════════════════════════
LOCAL SEO TECHNICAL REQUIREMENTS
GBP CONSISTENCY:
This page aligns with GBP service "Storm Damage Repair"
Ensure service is added before publishing page
NAP PLACEMENT:
- Business name: Intro paragraph, About section, CTA
- Address: Footer (sitewide), Service area section
- Phone: CTA sections, header (sitewide)
SCHEMA TO IMPLEMENT:
- LocalBusiness: Full implementation with service area
- FAQPage: Mark up 4 AI Overview questions/answers
- Service: Storm Damage Roof Repair service schema
INTERNAL LINKS:
| Link to | Anchor text | Placement |
|---------|-------------|-----------|
| /roofing-company-charlotte-nc/ | Charlotte roofing services | Intro |
| /emergency-roof-repair-charlotte/ | emergency roof repair | Section 3 |
| /blog/roof-damage-insurance-claims-nc/ | insurance claim process | Section 2 |
| /roof-replacement-charlotte-nc/ | roof replacement | Section 5 |
AI OVERVIEW FORMATTING:
These questions should use direct-answer format (H3 question heading,
2-3 sentence direct answer, then expanded content):
- How do I know if my roof has storm damage?
- Does homeowner's insurance cover roof storm damage?
- How long does storm damage roof repair take?
- How do I file an insurance claim for roof damage?
═══════════════════════════════════════════════════════════════
RECOMMENDED CONTENT STRUCTURE
H1: Storm Damage Roof Repair in Charlotte NC
[Opening paragraph: Establish expertise, mention Charlotte storm
patterns, acknowledge the urgency of the situation, position
[Business Name] as the solution. 100 words.]
H2: How to Identify Storm Damage on Your Roof
H3: Signs of Hail Damage
H3: Signs of Wind Damage
H3: When to Call a Professional
H2: Navigating the Insurance Claim Process
H3: What Does Insurance Cover?
H3: How do I file an insurance claim for roof damage?
H3: Working With Your Contractor on the Claim
H2: Emergency Tarping and Temporary Protection
H2: The Professional Inspection Process
H2: Repair vs. Full Replacement: Making the Decision
H2: Frequently Asked Questions
H3: How long does storm damage roof repair take?
H3: What if my insurance claim is underestimated?
H3: How do I choose a storm damage contractor?
H2: Get Your Free Storm Damage Inspection
[CTA section with phone, form, service area mention]
═══════════════════════════════════════════════════════════════
QUALITY CHECKLIST
- [ ] 15+ distinct concepts covered
- [ ] All required local entities mentioned in context
- [ ] All 8 reader questions answerable from content
- [ ] NAP appears naturally in at least 2 locations
- [ ] 4 sections formatted for AI Overview direct-answer
- [ ] Internal links placed with concept-based anchor text
- [ ] No keyword stuffing — concepts appear because relevant
- [ ] Opening 100 words establish core concept + local context
- [ ] CTA appears at end and mid-page
- [ ] Schema requirements specified and implementable
Bulk Brief Production
For a full content strategy, you’ll produce briefs for every piece identified. The pattern:
- Pillar/primary location page brief first — establishes the concept framework
- Supporting location page briefs — each one references the primary
- Blog/FAQ briefs last — these support location pages via internal links
Each brief is self-contained. For CLI generation loops, each brief becomes one generation call. Label files by content vehicle and primary keyword for easy identification.
Step 4: Audit Your Current Coverage
Before building new content, or after building, measure what exists.
The Prompt
Audit [domain]'s current content coverage against this content strategy.
What's missing, what's thin, what's duplicating effort?
What Happens
Dispatch routes to local-seo-audit and localseodata-tool. You get a gap analysis:
COVERAGE AUDIT: [domain] vs. Content Strategy
CURRENT STATE:
- 2 pages indexed (homepage, about page)
- GBP: 1 category, 0 services listed
- No location pages for any concept cluster
- No blog content
COVERAGE GAPS:
CRITICAL (no coverage):
- Cluster 1: Roofing Services Charlotte — NO PAGE
- Cluster 2: Storm Damage — NO PAGE
- Cluster 3: Emergency Repair — NO PAGE
- Cluster 4: Roof Replacement — NO PAGE
- Cluster 5: Cost Content — NO PAGE
- Cluster 6: Insurance Content — NO PAGE
GBP GAPS:
- 0 of 8 recommended services listed
- Missing "Free estimates" attribute
- Description doesn't mention primary concepts
COMPETITOR COMPARISON:
[Competitor A]: 6 location pages, 12 blog posts, 8 GBP services
[Competitor B]: 4 location pages, 8 blog posts, 5 GBP services
[Your client]: 0 location pages, 0 blog posts, 0 GBP services
PRIORITY ACTIONS:
1. Add 8 GBP services TODAY (30 min, immediate visibility)
2. Build primary location page THIS WEEK
3. Build storm damage page NEXT (seasonal relevance)
Connecting Content Strategy to Geogrid Tracking
Once the strategy selects tracking keywords, set up recurring geogrid scans to measure whether the content is working.
Set up monthly geogrid tracking for [Business Name] in Charlotte
for these 4 keywords: [list from strategy].
7x7 grid, 1mi spacing, centered on business location.
Alert me if SoLV drops below 40% for any keyword.
The geogrid measurements become the feedback loop. Content builds. Rankings change. Geogrids show where and how much.
Running the Full Workflow for a New Client
For a new client onboarding:
Session 1 (30 minutes):
- Run keyword research prompt
- Run content strategy prompt
- Execute GBP actions immediately (add services, categories, attributes)
- Set up geogrid tracking for selected keywords
Session 2 (varies by content volume):
- Produce briefs for Phase 2 content (primary location pages)
- Either write content from briefs or feed briefs to CLI generation
Session 3 (after Phase 2 content is live):
- Run coverage audit
- Produce briefs for Phase 3 content
- Measure initial geogrid baseline
Ongoing:
- Monthly geogrid review
- Quarterly coverage audit
- Brief and build content for remaining gaps
From Briefs to Content Generation
Each brief is formatted for direct execution. For practitioners running content at scale:
- Save each brief as a separate file:
brief-storm-damage-charlotte.md - Use Claude CLI with the brief as input
- The brief’s structure, concept coverage plan, and quality checklist guide generation
- Output is a complete content piece ready for review and publishing
The brief does the strategic work. Generation does the writing work. The two are separate steps that can be run by different people (or different Claude sessions).
The four-step workflow — keyword research, content strategy, content briefs, coverage audit — is the complete system. Run it once for a new client. Run steps 3-4 repeatedly as you build out the content plan. The skills chain together because they were designed to chain together.
Start with the first prompt. The rest follows.