Skip to content
Marketing
Skill

/local-gmb-visibility

Build and track local search visibility with SE Ranking city-level rank tracking and turn it into local social content in Planable, including Google Business Profile posts. Use this skill whenever the user wants to grow a business's presence in a specific city or cities and pair

From plugin
seo-skills
14232 skills1 MCP
Install
$ npx -y skills add seranking/seo-skills --skill local-gmb-visibility --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/local-gmb-visibility

Context preview

The summary Claude sees to decide when to auto-load this skill.

Build and track local search visibility with SE Ranking city-level rank tracking and turn it into local social content in Planable, including Google Business Profile posts. Use this skill whenever the user wants to grow a business's presence in a specific city or cities and pair

SKILL.md

local-gmb-visibility.SKILL.md
name: local-gmb-visibility
description: >
  Build and track local search visibility with SE Ranking city-level rank tracking and turn it into
  local social content in Planable, including Google Business Profile posts. Use this skill whenever the
  user wants to grow a business's presence in a specific city or cities and pair it with local social,
  or says things like "track our rankings in [city]", "set up local rank tracking", "we want to show up
  in local search", "create Google Business Profile posts", "local SEO plus social for our locations", or
  "how are we ranking city by city and what should we post locally". Always activate for local/multi-location
  visibility work that combines SE Ranking rankings with Planable local/GMB content.

Local + Google Business Profile visibility

Pair SE Ranking's city-level rank tracking with Planable's local content — including Google Business Profile posts — so a business can see how it ranks in each target city and publish location-relevant content against it.

> **Scope note.** This skill covers **city-level keyword rank tracking** (SE Ranking projects with geo-targeted search engines) and **local social/GMB content** (Planable). SE Ranking's dedicated **Local Marketing** module — listings management, review monitoring, and the local rank grid/heatmap — is **not** exposed through the MCP, so those aren't part of this workflow. Set expectations accordingly.

Prerequisites

  • **SE Ranking MCP** connected, with permission to create/use a project (rank tracking is project-based).
  • **Planable MCP** connected. Before planning GMB posts, confirm a connected **Google Business Profile** page exists: call `list_pages` and look for a page with `type: "googleMyBusiness"`. If there isn't one, tell the user GMB isn't connected and fall back to other local social pages.
  • The user provides: business domain, the target city/cities, the core local keywords (e.g. "emergency plumber [city]"), and the Planable workspace.

Connector health check

Before doing anything else, verify both MCPs are reachable:

  • **SE Ranking:** call `DATA_getSubscription`. If it fails or returns an auth error, stop immediately and tell the user:

> "The SE Ranking connector isn't responding — please reconnect it before we continue. Setup guide: https://seranking.com/api/integrations/mcp/"

  • **Planable:** call `list_workspaces`. If it fails or returns an auth error, stop immediately and tell the user:

> "The Planable connector isn't responding — please reconnect it before we continue. Setup guide: https://help.planable.io/hc/en-us/articles/27538577098780-How-to-connect-Planable-MCP-to-your-AI-tools"

Only continue to the process steps below once both calls return a successful response.

Process

1. Scope the locations and terms

Confirm the cities, the local keywords per city, the business domain, and the Planable workspace + which pages (GMB and/or social). For multi-location, list each location explicitly. **Rank tracking consumes plan quota** (keywords × search engines) and search engines persist in the project — confirm scope before creating many, and offer to remove test engines afterwards.

2. Set up city-level rank tracking in SE Ranking

  • Create or reuse a project: `PROJECT_createProject(url, title)` → `site_id` (or reuse an existing project's `site_id`).
  • For each city, resolve the exact geo-target: `PROJECT_getAvailableRegions(search: "<City, State, Country>")` and take the canonical `name` string verbatim (abbreviated forms are rejected). A specific query returns one clean match.
  • Add a geo-targeted search engine per city: `PROJECT_addSearchEngine(site_id, country_code, region_name, lang_code?)` → returns `site_engine_id`. (The catalogue in `PROJECT_getAvailableSearchEngines` is only needed for niche regional engines.)
  • Add the local keywords: `PROJECT_addKeywords(site_id, keywords[])`, attaching each to the right city engine via `site_engine_ids`.
  • Trigger a check (`PROJECT_runPositionCheck`) or let the project's schedule run. **Results are not instant** — a check is asynchronous and city rankings populate on the next cycle, so don't expect `getPositionHistory` to return data immediately after setup.

3. Read local performance

  • `PROJECT_getPositionHistory(site_id, type, site_engine_id?, date_from, date_to)` — rankings over time, filterable to a single city engine. Use `avg_pos` and `visibility`.
  • `PROJECT_addCompetitor` + `PROJECT_getCompetitorPositions(competitor_id)` — how local competitors rank for the same terms.
  • For a live local SERP / local-pack read, `DATA_getSerpLocations` (to find the `location_id`) → `DATA_getSerpResults(location_id=...)`. **Heads-up: `getSerpLocations` can return a very large payload** (hundreds of thousands of characters for a broad query). Pass a specific `q` (e.g. "Brooklyn" or "New York, NY"), and if the result is still huge it's written to a file — extract the one matching `location_id` with `jq` rather than loading the whole thing. For tracking setup you usually only need `getAvailableRegions`, so reserve `getSerpLocations` for when a live SERP read is essential.
  • `DATA_getDomainKeywordsComparison` — local keyword gaps vs competitors.

4. Build the local content plan

Translate the rankings + gaps into location-relevant content: service-area posts, local proof and reviews-style content (written as posts, since review data isn't pulled here), neighbourhood/landmark references, local offers, and answers to local intent. Tailor copy per city — generic content underperforms locally.

5. Create the content in Planable

  • **Google Business Profile posts:** if a `googleMyBusiness` page exists, `create_post(workspaceId, gmbPageId, text, scheduledAt?)` on it.
  • **Local social posts:** `create_post` per page, or `create_grouped_post` for synced copy. For multi-location, use a label per city (via `list_labels` / `create_label`) so each location's content is easy to filter.
  • **Scheduling — ask before
Read more
Ships withseo-skills

Production-ready Claude Agent Skills for SEO, powered by the SE Ranking remote MCP.

Get the whole plugin

Other skills on seo-skills.