api-integration
Use this skill when the user says 'API integration', 'connect APIs', 'sync data', 'data mapping', 'rate limiting', or needs…
Use this skill when the user says 'local SEO', 'Google Business Profile', 'local search', 'NAP consistency', 'local listings', 'Google Maps', 'local pack', or is optimizing a business for local search results and map visibility. Do NOT use for general SEO audits or national
$ npx -y skills add cwinvestments/memstack --skill local-seo --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/local-seoContext preview
The summary Claude sees to decide when to auto-load this skill.
Use this skill when the user says 'local SEO', 'Google Business Profile', 'local search', 'NAP consistency', 'local listings', 'Google Maps', 'local pack', or is optimizing a business for local search results and map visibility. Do NOT use for general SEO audits or national
name: memstack-seo-local-seo description: "Use this skill when the user says 'local SEO', 'Google Business Profile', 'local search', 'NAP consistency', 'local listings', 'Google Maps', 'local pack', or is optimizing a business for local search results and map visibility. Do NOT use for general SEO audits or national keyword research." version: 1.0.0 license: "Proprietary, MemStack™ Pro by CW Affiliate Investments LLC. See LICENSE.txt"
*Evaluates Google Business Profile, NAP consistency, local schema markup, location pages, citations, and review management, producing an actionable local SEO scorecard.*
When this skill activates, output:
`📍 Local SEO, Checking local search presence and consistency...`
Then execute the protocol below.
| Context | Status | |---------|--------| | User says "local SEO" or "Google Business Profile" or "local search" | ACTIVE | | User says "NAP consistency" or "local listings" or "Google Maps" | ACTIVE | | Optimizing a business with a physical location or service area | ACTIVE | | Running a general site audit (broader scope) | DORMANT: use site-audit | | Optimizing for global/national keywords (no local component) | DORMANT |
| Trap | Reality Check | |------|---------------| | "We're online-only, local SEO doesn't apply" | If you serve specific regions or have a registered address, local SEO applies. Service-area businesses benefit enormously. | | "Google Business Profile is set and forget" | GBP needs regular updates: posts, photos, Q&A responses, review replies. Stale profiles rank lower. | | "Our address is on the Contact page, that's enough" | NAP must be consistent across every directory, citation, and page. One inconsistency can split your local authority. | | "Reviews don't affect ranking" | Reviews are a top-3 local ranking factor. Quantity, quality, recency, and response rate all matter. | | "We don't need location pages" | If you serve multiple areas, each needs a unique page with local content, not boilerplate with swapped city names. |
Verify the GBP listing is optimized:
**GBP optimization checklist:**
| Element | Check | Best Practice | |---------|-------|--------------| | Business name | Matches legal business name exactly | No keyword stuffing in the name | | Primary category | Most specific category selected | "Italian Restaurant" not just "Restaurant" | | Secondary categories | 2-5 relevant additional categories | Cover all services offered | | Address | Complete, matches website exactly | Include suite/unit number if applicable | | Phone | Local number, matches website | Avoid tracking numbers on GBP | | Website URL | Links to homepage or location page | Not a redirect, not a social profile | | Hours | Current, including holidays | Update for seasonal changes | | Description | 750 chars, includes keywords naturally | Describe what makes you different | | Photos | 10+ recent photos | Interior, exterior, team, products, menu | | Posts | Weekly updates | Events, offers, updates, products | | Q&A | Common questions answered proactively | Seed with your own FAQs | | Services/Menu | Listed with prices if applicable | Complete and current | | Attributes | All relevant attributes selected | Wi-Fi, parking, accessibility, etc. |
**GBP health indicators:**
| Signal | Healthy | Unhealthy | |--------|---------|-----------| | Profile completeness | 100% filled | Missing description, hours, or photos | | Photo count | 10+ with recent uploads | 0-2 photos, outdated | | Review count | 20+ with 4.0+ average | < 5 reviews or below 3.5 | | Response rate | 100% of reviews replied | Unanswered reviews | | Post frequency | Weekly | No posts in 30+ days | | Q&A | Proactive answers | Unanswered questions |
NAP (Name, Address, Phone) must be identical everywhere:
# Check website for NAP occurrences grep -rn "address\|phone\|tel:\|street\|suite\|zip\|postal" --include="*.tsx" --include="*.jsx" --include="*.html" --include="*.json" . | grep -v node_modules
**NAP consistency audit:**
| Source | Name | Address | Phone | Consistent? | |--------|------|---------|-------|------------| | Website (footer) | ? | ? | ? | Baseline | | Website (contact page) | ? | ? | ? | Match? | | Google Business Profile | ? | ? | ? | Match? | | Yelp | ? | ? | ? | Match? | | Facebook | ? | ? | ? | Match? | | Apple Maps | ? | ? | ? | Match? | | BBB | ? | ? | ? | Match? | | Industry directories | ? | ? | ? | Match? |
**Common NAP inconsistencies:**
| Issue | Example | Fix | |-------|---------|-----| | Abbreviation mismatch | "St" vs "Street" vs "St." | Pick one format, use everywhere | | Suite format | "#100" vs "Suite 100" vs "Ste 100" | Standardize to one format | | Phone format | "(555) 123-4567" vs "555-123-4567" | Use one format consistently | | Business name | "Acme LLC" vs "Acme" vs "ACME Inc." | Use exact legal name | | Old address | Moved but didn't update all listings | Update every citation |
# Search for LocalBusiness schema grep -rn "LocalBusiness\|PostalAddress\|GeoCoordinates\|openingHours" --include="*.tsx" --include="*.jsx" --include="*.html" . | grep -v node_modules
**Required LocalBusiness schema:**
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "[Business Name]",
"description": "[Business description]",
"url": "https://[domain]",
"telephone": "[phone]",
"email": "[email]",
"address": {
"@type": "PostalAddress",
"streetAddress": "[street]",
"addressLocality": "[city]",
"addressRegion": "[state]",
"postalCode": "[zip]",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "[lat]",
"longitude": "[lng]"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"The structured skill framework for Claude Code: 131 professional skills for deployment, security, databases, content, marketing, and more. Skills activate automatically when you need them. Say "deploy this to Railway" and the right skill loads on demand.
Use this skill when the user says 'API integration', 'connect APIs', 'sync data', 'data mapping', 'rate limiting', or needs…
Use this skill when the user says 'content pipeline', 'content automation', 'auto-publish', 'repurpose content', 'multi-platform…
Use this skill when the user says 'cron job', 'scheduled task', 'run every', 'cron expression', 'recurring job', or needs…
Use when the user says 'what MCP servers', 'find an MCP for', 'hosted MCP', 'list MCP servers', 'MCP catalog', 'available MCP…
Use this skill when the user says 'n8n workflow', 'build a workflow', 'automation workflow', 'connect services', or needs visual…
Use this skill when the user says 'webhook', 'webhook handler', 'webhook endpoint', 'receive events', 'HMAC verification',…