FLOW SEO Framework
AgriciDaniel/claude-seo
Brings the FLOW framework's stage-specific SEO prompts into the agent, from keyword discovery through backlinks, on-page work and conversion to local SEO, loaded on demand.
When a home-services business (HVAC, plumbing, roofing, electrical, or general contractor) wants to know where it ranks in Google's local pack for its services across every city and ZIP it serves.
$ npx skills add unifapi-agent/agents --skill service-area-rank-audit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install unifapi-agent/agents service-area-rank-audit --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/unifapi-agent/agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/home-services-marketing/service-area-rank-audit .claude/skills/service-area-rank-audit && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "service-area-rank-audit" agent skill from https://github.com/unifapi-agent/agents/tree/main/skills/home-services-marketing/service-area-rank-audit into .claude/skills/service-area-rank-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-area-rank-audit", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/unifapi-agent/agents/tree/main/skills/home-services-marketing/service-area-rank-auditType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add unifapi-agent/agents --skill service-area-rank-audit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install unifapi-agent/agents service-area-rank-audit --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unifapi-agent/agents.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/home-services-marketing/service-area-rank-audit .agents/skills/service-area-rank-audit && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "service-area-rank-audit" agent skill from https://github.com/unifapi-agent/agents/tree/main/skills/home-services-marketing/service-area-rank-audit into .agents/skills/service-area-rank-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-area-rank-audit", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add unifapi-agent/agents --skill service-area-rank-audit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install unifapi-agent/agents service-area-rank-audit --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unifapi-agent/agents.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/home-services-marketing/service-area-rank-audit .cursor/skills/service-area-rank-audit && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "service-area-rank-audit" agent skill from https://github.com/unifapi-agent/agents/tree/main/skills/home-services-marketing/service-area-rank-audit into .cursor/skills/service-area-rank-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-area-rank-audit", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/unifapi-agent/agents.git --path skills/home-services-marketing/service-area-rank-audit--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add unifapi-agent/agents --skill service-area-rank-audit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install unifapi-agent/agents service-area-rank-audit --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unifapi-agent/agents.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/home-services-marketing/service-area-rank-audit .gemini/skills/service-area-rank-audit && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "service-area-rank-audit" agent skill from https://github.com/unifapi-agent/agents/tree/main/skills/home-services-marketing/service-area-rank-audit into .gemini/skills/service-area-rank-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-area-rank-audit", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install unifapi-agent/agents service-area-rank-auditInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add unifapi-agent/agents --skill service-area-rank-audit -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/unifapi-agent/agents.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/home-services-marketing/service-area-rank-audit .github/skills/service-area-rank-audit && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "service-area-rank-audit" agent skill from https://github.com/unifapi-agent/agents/tree/main/skills/home-services-marketing/service-area-rank-audit into .github/skills/service-area-rank-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-area-rank-audit", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add unifapi-agent/agents --skill service-area-rank-audit -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install unifapi-agent/agents service-area-rank-audit --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unifapi-agent/agents.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/home-services-marketing/service-area-rank-audit .opencode/skills/service-area-rank-audit && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "service-area-rank-audit" agent skill from https://github.com/unifapi-agent/agents/tree/main/skills/home-services-marketing/service-area-rank-audit into .opencode/skills/service-area-rank-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-area-rank-audit", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
service-area-rank-auditWhen a home-services business (HVAC, plumbing, roofing, electrical, or general contractor) wants to know where it ranks in Google's local pack for its services across every city and ZIP it serves.
Service Area Rank Audit is an agent skill from unifapi-agent/agents. When a home-services business (HVAC, plumbing, roofing, electrical, or general contractor) wants to know where it ranks in Google's local pack for its services across every city and ZIP it serves. Also use on "service area ranking," "am I in the map pack for [city]," "ac repair [city] ranking," "which service areas are weak," "near me ranking by location," "multi-area local SEO," or "why aren't we showing up in the next town over." Reads public map and SERP data only — read-only research.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `README.md`).
It sits in Marketing & SEO, covering Local SEO. The repository describes itself as: Open-source marketing agents for Claude, ChatGPT, Codex, OpenClaw & Hermes. One plugin: SEO audits, GEO / AI-visibility, local SEO, KOL pricing, social listening & competitive… The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit fb53247. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Service Area Rank Audit loads about 2.3k tokens when it runs. Until then it costs about 129 tokens; SKILL.md has 1,049 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from unifapi-agent/agents at commit fb53247, republished under its MIT licence (© unifapi-agent). 1,049 words, ~2,335 tokens.
.claude/skills/service-area-rank-audit/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.You are a local-search analyst for the trades. Home-services businesses live or die by the local pack — the 3-business map block that catches almost every "ac repair near me" or "emergency plumber [city]" click. But a contractor rarely serves one city; it serves a ring of towns and ZIPs, and local rank is computed per location. A business can dominate its home city and be invisible two towns over. This skill audits local-pack rank for the trade's service × location queries across every service area, benchmarks against the competitors that show up there, and tiers each area strong / contested / weak.
This is an enhanced skill: it reads live public data through UnifAPI.
A service-area rank can only be measured from inside that area — the pack re-ranks by proximity to the searcher, so the search point matters as much as the query text. Use the unifapi skill to connect (OAuth MCP), then call:
local/search, maps/search — for each service × area query, the businesses holding the 3-pack and their position. Each listing carries name, place_id, rating, review_count, category, address. Loop the location param across every city / ZIP / neighborhood the business claims — search FROM inside each service area; proximity re-ranks the pack, so the same query from a different point returns a different pack. Match the business on place_id, not name.seo/serp — the organic results and SERP features around each query, so you can see what else is winning the click and whether the business ranks organically when it's absent from the pack (an eligibility gap, not invisibility).seo/competitors/relevant-pages — for a competitor holding the pack in a weak area, its top organic pages reveal the local landing page (city/service page) doing the relevance work behind its slot — the lever the operator can match.UnifAPI reads public data only — it never touches the business's Google Business Profile. Keep any billing metadata so the report can state record cost.
.agents/product-marketing.md / .claude/product-marketing.md first if it exists.)location param on local/search + maps/search to that area's centroid/ZIP and pull the live pack for each service query. Record the business's rank (in-pack 1–3, extended 4–10, below-pack-but-organic via seo/serp, or absent) and which competitors hold the pack. Stamp every cell with search point + date.rating, review_count, and category from the listing to see what prominence or relevance gap explains the loss, and pull seo/competitors/relevant-pages on a pack holder to see the local page behind its slot.Score each service × area cell, then roll up to an area verdict.
| Cell state (search point inside the area) | Cell score |
|---|---|
| In pack 1 | 5 |
| In pack 2–3 | 4 |
| Extended pack 4–10 | 2 |
| Below pack but ranks organically | 1 |
| Absent entirely | 0 |
Weight each service 1–3 (3 = core revenue service). Area Strength = Σ(cell_score × service_weight) / Σ(5 × service_weight) → a 0–1 share of the achievable rank in that area.
| Area Strength | Verdict |
|---|---|
| ≥ 0.70 | Strong — in-pack on most core services |
| 0.30–0.69 | Contested — mixed / below-pack |
| < 0.30 | Weak — absent on core services |
Then rank weak/contested areas by Opportunity = (1 − Area Strength) × area_value, where area_value is the operator's sense of that area's revenue potential (1–3). This stops the audit from sending the team to a weak area nobody buys from and toward a contested area full of high-ticket jobs. Gap attribution per weak area follows the proximity / prominence / relevance checklist from the local-pack methodology (see Related Skills).
# Service Area Rank Audit — <business> — <date>
Search params: areas/search points <…> · language <…>
## Rank grid (one block per area)
| Area: Round Rock (ZIP 78664) | ac repair (w3) | furnace repl (w3) | drain cleaning (w2) | Area Strength | Verdict |
| ---------------------------- | -------------- | ----------------- | ------------------- | ------------- | ------- |
| Business rank | absent (0) | pack 3 (4) | below/organic (1) | 0.28 | Weak |
| Pack holder (reviews) | Cool Co (480) | Cool Co (480) | DrainPro (210) | — | — |
## Area tiers + per-area fix surface
- Each area tiered strong / contested / weak with its Area Strength; core-service losses called out.
- Per weak/contested area: competitors holding the pack, the review/rating gap, the attributed cause (proximity / prominence / relevance), the pack holder's local page from `seo/competitors/relevant-pages`, and Opportunity rank.
- Every rank and number cited to the live map/SERP record it came from.
- Record cost consumed (or best estimate if billing metadata is unavailable).An HVAC + plumbing contractor in Austin serving 5 towns. From inside Austin it's pack 1 on most services (Strength 0.9, Strong). From inside Round Rock (78664) via
local/searchwith that ZIP as the search point, "ac repair" returns the business absent, "furnace replacement" pack 3, "drain cleaning" organic-only onseo/serp→ Strength 0.28, Weak. The pack holder there (Cool Co) has 480 reviews vs the business's 130, an exact "Air conditioning repair service" primary category, and a Round-Rock-specific service page perseo/competitors/relevant-pages→ gap attributed mostly to prominence, partly relevance. Area value of Round Rock = 3 (big, affluent) → Opportunity = (1 − 0.28) × 3 = 2.2, the top fix target — above a genuinely weak but low-value rural ZIP. The brief points the team at Round Rock review velocity, a local service page, and category accuracy; it never runs ads or edits the listing.
© unifapi-agent, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/home-services-marketing/service-area-rank-audit of unifapi-agent/agents.
Open the folder on GitHubat commit fb53247
Service Area Rank Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Service Area Rank Audit this skillunifapi-agent/agents | 589 | — | ~2.3k | Automated safety check: Pass | MIT | |
| FLOW SEO FrameworkAgriciDaniel/claude-seo | 19k | 2 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Google Mapscablate/mcp-google-map | 469 | — | ~909 | Automated safety check: Pass | MIT | |
| Google Maps Local SEOcablate/mcp-google-map | 469 | — | ~633 | Automated safety check: Pass | MIT | |
| Google Maps Travel Planningcablate/mcp-google-map | 469 | — | ~710 | Automated safety check: Pass | MIT | |
| Universal SEO AnalysisAgriciDaniel/claude-seo | 19k | — | ~4.9k | Automated safety check: Pass | MIT |
AgriciDaniel/claude-seo
Brings the FLOW framework's stage-specific SEO prompts into the agent, from keyword discovery through backlinks, on-page work and conversion to local SEO, loaded on demand.
cablate/mcp-google-map
Search places, resolve addresses, compare routes, inspect neighborhoods, and retrieve geographic or environmental facts through the standalone @cablate/mcp-google-map CLI.
cablate/mcp-google-map
Analyze Google Business Profile visibility, geographic grid rankings, local search keywords, and nearby competitors through the standalone Google Maps CLI.
cablate/mcp-google-map
Build evidence-backed day trips, multi-day itineraries, and efficient stop sequences with Google Maps data through the standalone CLI.
AgriciDaniel/claude-seo
Hub for site-wide SEO work: audits, technical checks, schema, content quality, local, hreflang and AI-search readiness, run through slash commands.
petera2c/simple-table
Set up a durable local SEO workspace with project context, notes, goals, positioning, preferences, MCP checks, and Search Console data intake.
unifapi-agent/agents
When the user wants to track how often their brand or domain gets mentioned across ChatGPT and AI search engines over a set of prompts, and how that share of voice compares to named competitors over…
unifapi-agent/agents
When a seller or SDR wants to catch public buying intent on X/Twitter and LinkedIn — someone asking for a tool they sell, complaining about or switching off a competitor, or hiring for a role that…
unifapi-agent/agents
When the user wants to research customers from public communities, or synthesize customer language, pains, and objections.
unifapi-agent/agents
When the user wants to research keywords, find keyword opportunities, run a keyword gap analysis, build topic clusters, or compare what competitors rank for.
unifapi-agent/agents
When the user wants to add, fix, or optimize schema markup and structured data on their site.
unifapi-agent/agents
When the user wants to audit, review, or diagnose SEO issues on their site.
Categories
When a home-services business (HVAC, plumbing, roofing, electrical, or general contractor) wants to know where it ranks in Google's local pack for its services across every city and ZIP it serves. Service Area Rank Audit is an agent skill from unifapi-agent/agents. When a home-services business (HVAC, plumbing, roofing, electrical, or general contractor) wants to know where it ranks in Google's local pack for its services across every city and ZIP it serves.
Service Area Rank Audit fits situations like: tasks that involve Local SEO.
Run `npx skills add unifapi-agent/agents --skill service-area-rank-audit -a claude-code`. Or copy the skill folder (skills/home-services-marketing/service-area-rank-audit in unifapi-agent/agents) into .claude/skills/service-area-rank-audit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add unifapi-agent/agents --skill service-area-rank-audit -a codex`. Or copy the skill folder (skills/home-services-marketing/service-area-rank-audit in unifapi-agent/agents) into .agents/skills/service-area-rank-audit in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add unifapi-agent/agents --skill service-area-rank-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/service-area-rank-audit, .gemini/skills/service-area-rank-audit, .github/skills/service-area-rank-audit and .opencode/skills/service-area-rank-audit in your project.
SKILL.md names no scripts, command-line tools or credentials: Service Area Rank Audit is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Service Area Rank Audit is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Service Area Rank Audit: FLOW SEO Framework (AgriciDaniel/claude-seo, 19k stars), Google Maps (cablate/mcp-google-map, 469 stars), Google Maps Local SEO (cablate/mcp-google-map, 469 stars) and Google Maps Travel Planning (cablate/mcp-google-map, 469 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
unifapi-agent (a GitHub organization) maintains it in unifapi-agent/agents, which has 589 GitHub stars. The repository holds 47 skills in this directory. The repository was last updated on September 5, 2026.
Source: unifapi-agent/agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.