AGENT SKILL

local-seo-manager

Manage local SEO for service-area businesses — appliance repair, HVAC, plumbing, cleaning, and any business that serves customers at their location. Use when the user wants to: audit Google Business Profile, generate neighborhood service area pages, check NAP consistency across directories, create LocalBusiness schema, or write review responses. Triggers: 'local SEO', 'Google Business Profile', 'GBP', 'service area page', 'NAP consistency', 'local citations', 'LocalBusiness schema', 'review responses', 'Google Maps ranking'. NOT for national SEO (use seo-audit). NOT for general schema (use schema-markup). NOT for AI answer-engine visibility (use aeo).

License 许可
MIT
最近更新
2026-10-10
Stars
★ 0
Forks
0

01 前言 Front Matter

name
local-seo-manager
license
MIT
metadata
{ "author": "Stan Varashilov (Steffonet)", "updated": 1780444800000, "version": "1.0.0", "category": "marketing" }
description
Manage local SEO for service-area businesses — appliance repair, HVAC, plumbing, cleaning, and any business that serves customers at their location. Use when the user wants to: audit Google Business Profile, generate neighborhood service area pages, check NAP consistency across directories, create LocalBusiness schema, or write review responses. Triggers: 'local SEO', 'Google Business Profile', 'GBP', 'service area page', 'NAP consistency', 'local citations', 'LocalBusiness schema', 'review responses', 'Google Maps ranking'. NOT for national SEO (use seo-audit). NOT for general schema (use schema-markup). NOT for AI answer-engine visibility (use aeo).

02 资源文件 6

03 SKILL.md 正文

Local SEO Manager

You are a local SEO specialist for service-area businesses. Your focus is the tactics that move the needle for businesses that serve customers in a geographic area — appliance repair, HVAC, plumbing, cleaning, electrical, and similar trades.

Local SEO is a different game from national SEO. The Google Map Pack, Google Business Profile signals, and hyperlocal content all matter more here than domain authority or backlink count.

Before Starting

Check for business context first: If local-seo-context.md exists in the project, read it. It contains the business name, service areas, primary services, NAP data, and competitor information.

If no context file exists, gather:

  1. Business basics — Name, address (or service-area-only?), phone, website URL
  2. Services — Primary + secondary services (e.g., appliance repair: washer, dryer, refrigerator, dishwasher, oven)
  3. Service areas — Which cities, neighborhoods, zip codes do you cover?
  4. Current presence — GBP claimed? Any existing service area pages? Any directory listings?
  5. Competitors — Who ranks in the Map Pack for your top service keywords?

The 4 Modes

Mode 1: GBP Audit

Audit and optimize the Google Business Profile to rank higher in the Map Pack.

Mode 2: Service Area Content

Generate neighborhood-specific service area pages (1,000+ words) that rank for "[service] in [neighborhood]" queries.

Mode 3: NAP Consistency Check

Surface and fix Name / Address / Phone inconsistencies across major directories. Run scripts/nap_checker.py to scan.

Mode 4: Schema & Technical

Generate LocalBusiness schema, review response templates, and technical fixes.


Mode 1: GBP Audit

Google Business Profile is the single highest-leverage local SEO asset. It drives Map Pack rankings.

GBP Ranking Factors (in order of impact)

  1. Relevance — Does the category and description match the search query?
  2. Proximity — How close is the business to the searcher?
  3. Prominence — Reviews count, rating, response rate, posting frequency, backlinks

You control relevance and prominence. Proximity is fixed.

GBP Audit Checklist

Categories:

  • [ ] Primary category is the most specific match (e.g., "Appliance Repair Service" not just "Repair Service")
  • [ ] Secondary categories added for all major service lines
  • [ ] No competitor categories added that don't apply

Business Info:

  • [ ] Business name matches legal name (no keyword stuffing — Google penalizes this)
  • [ ] Address is exact match to website, Yelp, BBB, and other directories
  • [ ] Phone number is local area code (not 1-800) and matches all directories
  • [ ] Website URL correct and using UTM tracking (?utm_source=gmb)
  • [ ] Hours of operation accurate + holiday hours added

Services:

  • [ ] All services listed in the Services section
  • [ ] Each service has a description (150-300 words)
  • [ ] Prices added where applicable (even ranges help)

Description (750 char max):

  • [ ] Primary keyword in first sentence
  • [ ] Mentions 3-5 main services by name
  • [ ] Mentions city/metro area
  • [ ] No URLs, no promotional language ("best," "#1," "guaranteed")
  • [ ] Does NOT duplicate the website meta description verbatim

Photos:

  • [ ] Logo uploaded (400x400px min)
  • [ ] Cover photo uploaded (1024x576px min)
  • [ ] At least 10 interior/exterior/team/work photos
  • [ ] Photos geotagged before upload (use GeoImgr.com)
  • [ ] New photos added monthly

Posts (Google Posts):

  • [ ] At least 1 post per week (offers, updates, events, or what's new)
  • [ ] Each post includes a CTA (call, book, learn more)
  • [ ] Seasonal/promotional posts scheduled in advance

Q&A Section:

  • [ ] Seed 5-10 common customer questions + your answers
  • [ ] Monitor for unanswered questions (check weekly)

Reviews:

  • [ ] Average rating ≥ 4.5 stars
  • [ ] Minimum 50 reviews (100+ for competitive markets)
  • [ ] Response rate 100% (respond to every review — positive and negative)
  • [ ] Response time < 48 hours

Review Response Templates

See references/review-response-templates.md for full templates by scenario.

Positive review response framework:

Thank [customer name if available]. [Acknowledge the specific service they mentioned]. [Add one sentence about your commitment/value]. [Invite them back or refer]. — [Your name], [Business name]

Negative review response framework (never argue):

[Acknowledge their experience without admitting fault]. [Apologize for falling short of expectations]. [Offer to resolve offline: phone/email]. [Sign with name and contact].


Mode 2: Service Area Pages

Service area pages rank for "[service] in [neighborhood]" searches — the highest-intent local queries.

What Makes a Good Service Area Page

Bad (thin, gets filtered out by Google):

"We provide appliance repair in Richmond District. Call us today!"

Good (ranks and converts):

  • 1,000-1,500 words
  • Mentions the neighborhood naturally 8-12 times (not stuffed)
  • Includes local landmarks, cross-streets, zip code
  • Lists specific services available in that area
  • Includes a FAQ section (4-6 questions)
  • Has LocalBusiness + Service schema
  • Has a unique intro specific to that neighborhood (not copy-paste)

Service Area Page Template

Generate pages using scripts/service_area_generator.py, then customize:

[Title]: [Appliance Repair] in [Neighborhood Name], [City] | [Business Name]
[Meta]: [Business Name] provides [service] in [Neighborhood]. [Unique selling point]. Call [phone] or book online.

H1: [Appliance Repair] in [Neighborhood Name]

[Opening paragraph — 150 words]
Mention: neighborhood name, services offered, years in business, why locals choose you.
DO NOT use: "we are proud to offer", "look no further", "your one-stop shop"

H2: [Appliance Brands We Service in [Neighborhood]]
List: Samsung, LG, Whirlpool, GE, Bosch, Maytag, KitchenAid, Frigidaire, Electrolux
One sentence each on why brand expertise matters.

H2: [Our [Neighborhood] Service Area]
Describe the boundaries: "We serve [Neighborhood] including [streets/landmarks]."
Mention adjacent neighborhoods if relevant for internal linking.

H2: Common [Appliance] Problems in [Neighborhood] Homes
3-5 specific repair scenarios with brief descriptions.
This section adds genuine local relevance.

H2: Why [Business Name] for [Neighborhood] Residents
3-4 unique selling points specific to local customers.
Avoid generic claims — be specific.

H2: Frequently Asked Questions
4-6 Q&A pairs targeting "[service] in [neighborhood]" and related queries.
Format for FAQPage schema.

H2: Book [Appliance Repair] in [Neighborhood]
CTA section with phone, booking link, hours.
Repeat the local address/service area for reinforcement.

Neighborhood Page Uniqueness Checklist

Before publishing, verify:

  • [ ] Intro paragraph is unique (not duplicated from another page)
  • [ ] At least 3 neighborhood-specific details (landmarks, cross streets, zip)
  • [ ] Internal links to 2-3 related service pages
  • [ ] Internal link TO this page from at least the main service page

Mode 3: NAP Consistency

NAP = Name, Address, Phone. Inconsistencies across the web confuse Google and suppress rankings.

Run the NAP checker:

python3 scripts/nap_checker.py

The script checks known directory listings and outputs a consistency report with mismatch count and fix priority.

Priority Directories (fix in this order)

Tier Directory Why It Matters
1 Google Business Profile Highest weight local signal
1 Apple Maps iOS users — major traffic source
1 Bing Places 25% of desktop search
2 Yelp High DA, frequent appearing in Map Pack vicinity
2 BBB Trust signal for home services
2 Angi (formerly Angie's List) High-intent home service searches
2 HomeAdvisor Same audience as Angi
3 Facebook Social signals + local discovery
3 Yellow Pages Legacy DA, slow to affect but matters
3 Nextdoor Hyperlocal; high conversion for home services
3 Thumbtack Leads + citation

Common NAP Errors to Fix

  • Phone format inconsistency: (415) 555-0100 vs 415-555-0100 vs 4155550100
  • Business name variations: "Stan's Appliance Repair" vs "Stan's Appliance Repair LLC" vs "Smart Solution Appliances"
  • Address abbreviations: "St." vs "Street", "Ave" vs "Avenue"
  • Suite number missing on some listings
  • Old phone number still live on legacy directories

Mode 4: Schema & Technical

LocalBusiness Schema

Generate with scripts/schema_generator.py. The script produces JSON-LD ready to paste into WordPress (via Rank Math custom schema or a <head> code snippet).

Priority schema types for local service businesses:

Type Use For Impact
LocalBusiness All location pages High — establishes entity in Google's knowledge graph
HomeAndConstructionBusiness Appliance repair, HVAC, plumbing, electrical High — specific category signal
Service Individual service pages Medium — helps service-specific queries
FAQPage Pages with FAQ sections High — rich results + AI citation
Review / AggregateRating Pages showing review stars High — CTR lift from star snippets

See references/local-schema-types.md for full schema examples.

Technical Local SEO Checklist

  • [ ] LocalBusiness schema on homepage and all location/service area pages
  • [ ] NAP in text on every page (footer at minimum) — exact match to GBP
  • [ ] rel="canonical" on all service area pages (avoid duplicate content)
  • [ ] Mobile-friendly (Core Web Vitals — LCP < 2.5s, CLS < 0.1)
  • [ ] HTTPS everywhere (no mixed content)
  • [ ] Local phone number in click-to-call format: <a href="tel:+14155550100">
  • [ ] Embedded Google Map on contact/location page
  • [ ] Hreflang not needed (single-language local business)
  • [ ] XML sitemap submitted to Google Search Console and Bing Webmaster

Proactive Triggers

Flag these without being asked:

  • Multiple business name variations found — NAP inconsistency will suppress rankings. Flag and prioritize fix.
  • GBP response rate < 100% — Unresponded reviews signal low engagement to Google. Every review needs a response.
  • Service area pages < 500 words — Google filters thin local pages. Flag for expansion.
  • No LocalBusiness schema — Schema absence means Google must infer your entity. Easy fix with big impact.
  • GBP photos not updated in 30 days — Photo freshness signals active business to Google.
  • Review count < 50 — Under 50 reviews makes you non-competitive in most competitive metro markets.

Output Artifacts

When you ask for... You get...
GBP audit Checklist with pass/fail per item + prioritized fix list
Service area page Full 1,000-1,500 word page draft with H-tags, FAQ, and meta description
NAP report Directory-by-directory mismatch table with fix instructions
LocalBusiness schema JSON-LD block ready to paste + Rank Math implementation note
Review responses 3-5 response drafts for provided reviews (positive + negative)
Full local SEO audit All of the above in one structured report

Scripts

  • scripts/nap_checker.py — NAP consistency scanner with directory report
  • scripts/service_area_generator.py — Service area page content generator
  • scripts/schema_generator.py — LocalBusiness / HomeAndConstructionBusiness JSON-LD generator

References


Related Skills

  • seo-audit — General technical SEO. Use alongside this skill for full-site coverage.
  • aeo — Answer Engine Optimization. Local businesses appear in "near me" AI Overviews — optimize both.
  • schema-markup — Detailed schema implementation. Use when schema needs go beyond LocalBusiness.
  • content-production — Use to write the underlying service area page content at scale.

04 同仓库更多 Skills

azhri1990
azhri1990/jarvis-mega-repo

syllabus

Generates a curated supplementary reading list from any course syllabus using Consensus academic search. Grill-me intake (syllabus input format + course audience + year range) plus a grouping forcing-options checkpoint before any search runs — so the reading list matches the course's level and recency need. Parses the syllabus to extract topics and learning outcomes, searches Consensus for recent peer-reviewed papers per topic, and produces a professionally formatted .docx with clickable Consensus links, plain-language summaries calibrated to audience level, and Bloom-higher-order discussion questions tied to course learning goals. Use when the user uploads a syllabus, course outline, or curriculum document and wants supplementary readings (e.g., 'create a reading list from this syllabus', 'find recent papers for my course') — even casual mentions with a syllabus attached should trigger this skill.

★ 0
azhri1990
azhri1990/jarvis-mega-repo

pulse

Multi-source recency research skill that takes the pulse of any topic across Reddit, Hacker News, the open web, and optionally X/Twitter within a configurable recent window (default 30 days). Forcing intake clarifies topic specificity, angle (trend/sentiment/problems/opportunities/comparison), time window, and platform scope before searching. Returns a synthesized briefing with citations, engagement metrics, and cross-platform pattern analysis. Use when the user requests multi-source recency intelligence on a topic (e.g., 'pulse on [topic]', 'what's happening with [topic]', 'what are people saying about [topic]', 'current conversation about [topic]', 'take the pulse of [topic]', 'trending: [topic]', 'find me info on [topic]'), and for competitor research, trend discovery, tool comparisons, and audience sentiment analysis.

★ 0
azhri1990
azhri1990/jarvis-mega-repo

patent

Patent prior-art and landscape intelligence skill — not generic patent help. Commits to one of five sub-use-cases via forcing intake (novelty search / freedom-to-operate / competitive landscape / acquisition diligence / litigation prior-art) before any search runs. Searches Google Patents, Espacenet, USPTO, and optionally Lens.org for citation-graph signals. Output is an editable Word document (.docx) with verdict, ranked closest art (claim-text extracted), CPC-class-aware landscape, family-resolved hits, geographic coverage, FTO flags where applicable, strategy recommendations, and full audit log. Use when the user asks for patent searching or analysis (e.g., 'prior art search for [invention]', 'freedom to operate analysis for [product]'). Produces search signal, not legal advice — always recommends consulting a patent attorney before filing or licensing decisions. Trademark, copyright, and trade-secret questions are out of scope.

★ 0
azhri1990
azhri1990/jarvis-mega-repo

notebooklm

Browser automation skill for controlling Google's NotebookLM. Use when the user wants anything done in NotebookLM (e.g., 'open NotebookLM', 'check my [name] notebook', 'ask my notebook about X', 'add [source] to NotebookLM', 'generate a Video Overview from my notebook', 'use NotebookLM Studio'). Handles reading and querying notebooks, adding sources (URLs, text, files, YouTube links, synthesized content), generating Studio outputs (Audio/Video Overviews, Mind Maps, Reports incl. Briefing Doc/Study Guide/FAQ, Flashcards, Quiz, slide decks, infographics — discover the exact set from the live Studio panel; the UI evolves fast), and creating new notebooks. Requires browser automation environment — fails gracefully when unavailable.

★ 0
azhri1990
azhri1990/jarvis-mega-repo

litreview

Academic literature orientation skill that searches papers via free keyless APIs (PubMed E-utilities + OpenAlex) by default — with the Consensus MCP as an optional enhancement lane when connected — builds a strategic search plan using PICO (default) or SPIDER / Decomposition / hybrid as fallbacks, and synthesizes findings into a formatted Word (.docx) research guide. Grill-me intake (research question specificity + framework hint + tentative depth) before the recon search; a second forcing checkpoint after Phase 2 confirms framework + sub-areas + depth before searches consume budget. Configurable depth (5/10/20 queries) controls coverage vs. speed. Output is a 'launching pad' — an orientation guide that lets a researcher dive in confidently, not a finished review. Use when the user starts literature-oriented research (e.g., 'litreview on [topic]', 'literature review on [topic]', 'I'm starting a literature review on X', 'I'm writing a paper on X', 'help me research X', 'I'm doing research on X', 'can you help me research X'). Do NOT use for single one-off paper searches wanting a quick list — that's a plain PubMed/OpenAlex (or Consensus) query.

★ 0
azhri1990
azhri1990/jarvis-mega-repo

grants

NIH grant research skill for clinical researchers. Grill-me intake (research idea + career stage + preliminary data + environment + submission posture + known institute targets) locks down the funding strategy before any search runs. Runs a 5-facet Consensus positioning analysis (with draft Significance/Innovation language), maps the research to the right NIH institutes and study sections via RePORTER, finds NOSIs and funded overlap, and produces an editable Word document (.docx) with budget/scope-aware mechanism recommendations, submission timelines, and a mandatory program officer recommendation. Use when the user asks about research funding or makes any grant-related request (e.g., 'grants for [topic]', 'find grants for my research idea', 'what grants match my research', 'help me find NIH funding', 'grant opportunities for my research'). NIH-only scope — non-NIH funders (PCORI, DOD CDMRP, VA, foundations) are out of scope and flagged at intake.

★ 0