# Local SEO

Audit a Google Business Profile, compare it to local competitors, and map Maps...

- Repository: https://github.com/every-app/open-seo (25988 stars)
- Category: Business
- License: MIT
- Last updated: 2026-10-31
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add every-app/open-seo --skill local-seo -g -a claude-code -y`
Codex: `npx skills add every-app/open-seo --skill local-seo -g -a codex -y`
Cursor: `npx skills add every-app/open-seo --skill local-seo -g -a cursor -y`
Gemini CLI: `npx skills add every-app/open-seo --skill local-seo -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add every-app/open-seo`

## Description

Audit a Google Business Profile, compare it to local competitors, and map Maps visibility around a location.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# OpenSEO Local SEO

## Goal

Work out why a business does or does not show up in Google Maps and the local pack near its customers, and what to fix first.

Use this when rankings depend on a physical location or service area. For national organic work, use `competitor-analysis` or `keyword-research`.

## Required inputs

- `projectId`
- The business: name, or a `cid`/`placeId` (most reliable)
- Its coordinate (latitude/longitude), derive it from a `search_local_businesses` / `get_local_serp_results` row; only ask the user when derivation is ambiguous
- One to three keywords customers actually search (e.g. "emergency plumber", not the brand name)

## Project context

The project-context tools are free and shared with the app and other agents.

1. Call `get_project_context` first and ground the work in it, what the business does and where it operates decides which keywords and radius matter.
2. This skill needs `business_overview`. If it is empty, run a minimal inline setup: infer what the business does and its location from the site and confirm it with the user in one question, write it back with `update_project_context`, then continue. Never front-load the full interview; suggest `seo-project-setup` at the end for the rest.
3. Before spending credits, check the research log. If the same research ran within the last 30 days, reuse that result and say so instead of re-buying it.
4. On finish, write back what is durable with `update_project_context`, local competitors that have a website via `addCompetitors` (competitor rows are keyed by domain, so skip listings without one), a corrected `business_overview`, and append a research log entry: `{ appendResearchLog: { summary: "Local SEO: <business> near <area>. Verdict: <conclusion>" } }`.

## Deliver as a report

Deliver through the `seo-report` skill, saving with `skill: "local-seo"`. If that skill is not available, say so and stop before writing HTML.

## OpenSEO MCP tools

The rest: https://github.com/every-app/open-seo/blob/HEAD/.agents/skills/local-seo/SKILL.md
