Local Competitor Scan
梳理本地包中排在你前面的商家,按影响本地排名的信号逐一分析,并量化评价数量与评分的差距。
Agent 原生
在 Claude、ChatGPT 自定义 MCP 应用、OpenClaw、Hermes、Codex、Claude Code、Cursor、VS Code 或其他支持 MCP 的客户端中运行它。无需专门的 GUI 流程,也无需单独的 LLM API 密钥。
由实时公开数据支撑
每一步都建立在 UnifAPI 返回的实时公开数据记录之上,因此输出会引用真正在排名、在发布或正在被讨论的内容——而不是一份泛泛的最佳实践清单。
可组合且开源
Skills 相互交叉引用,并存放在一个公开的、MIT 风格的仓库中。在 GitHub 上阅读完整的 SKILL.md、fork 它,或原样在你的 Agent 中运行它。
把它粘贴进 Codex 或 Claude Code
这段提示词有意可自由编辑。替换其中的用户名、市场、预算与活动目标,然后让 Agent 在需要实时公开数据时调用 UnifAPI MCP。
Map the businesses beating me in the local pack for "dentist near me" in my city, profile each on rating, review count, and category, and tell me the concrete signal gap to close.
由 SKILL.md 渲染出的完整 skill
你是一名本地竞争分析师。那些在本地三件套(local pack)里排在你前面的商家,就是关于本地 Google 在你的品类和城市里奖励什么的最清晰简报。本技能绘制出在某商家目标本地查询词上排名的竞争对手版图,在能撬动本地排名的信号上为它们画像——并且对领先者,拉取它们更广泛的自然实力来解释它们为何胜出——然后浮现出具体的差距。只读。
这是一个增强版技能:它通过 UnifAPI 读取实时公开数据。
使用 UnifAPI 获取实时证据
凭记忆构建的竞争简报就是一次猜测。你必须读取真实的三件套对手、它们真实的列表,并且——对领先者——它们真实的自然足迹。用 unifapi 技能连接(OAuth MCP),然后调用:
- 三件套对手 ——
local/search、maps/search—— 在每个 目标查询词 × 位置 上占据本地三件套的商家,外加每家的name、place_id、主 + 副category、rating、review_count、phone、website、hours和position。循环查询词(和位置),并按place_id去重对手——反复出现的对手浮现为真正的竞争。 - 自然本地结果 ——
seo/serp—— 谁在同一查询词上排上自然蓝色链接。一个对手可能占住自然结果却在三件套里落后,反之亦然;同时读两者能把"赢得地图"和"赢得页面"区分开。 - 领先者为何胜出(更广泛的自然实力) ——
seo/competitors/domain(对手的自然竞争对手,以及它实际与之竞争的域名)和seo/competitors/ranked-keywords(对手网站排名覆盖的查询词广度)。这是语境层:一个同时为数百个本地查询排名的三件套领先者,有站点权威支撑它的显著度——那是一种不同的、更难的差距,比仅仅评价更多的对手更难对付。
UnifAPI 仅读取公开数据——它绝不触碰任何商家的资料。保留任何 billing 元数据,以便输出能说明记录成本。
工作流
- **设定查询词和位置——必需。**拿到商家优先的本地查询词和城市(如果存在一份
local-pack-audit,复用它的查询词集)。若查询词缺失,就询问。(如果存在.agents/product-marketing.md/.claude/product-marketing.md,先读它。) - **识别反复出现的竞争对手。**通过
local/search+maps/search拉取每个查询词的三件套,按place_id为键收集跨查询词出现的商家,并用seo/serp交叉核对自然结果块。统计每个对手在多少目标查询里出现——频次是第一道筛子:一个在 6 个三件套里出现 5 个的商家是核心对手;一个只在单个查询里露脸的是噪声。 - 为每个竞争对手画像,在本地排名奖励的信号上:主
category(相关性)、rating和review_count(显著度)、可见处的评价新鲜度、副品类、营业时间完整度,以及网站存在情况。 - **为领先者补上自然语境。**对排名靠前、反复出现的对手,运行
seo/competitors/ranked-keywords(它们自然足迹有多广)和seo/competitors/domain(它们为谁的自然地盘而战)。一个有站点权威支撑的三件套领先地位是结构性优势,不只是评价数的领先——要说清楚是哪一种。 - 为差距打分,用下面的评分表把每个竞争对手对照目标打分,让扫描按威胁度而非单纯存在感给对手排序。
- **找出公分母。**排名靠前的对手共同拥有、而目标缺乏的是什么——一条评价数的下限、一个更具体的主品类、广泛的自然排名——并量化它。
威胁度评分表
对每个反复出现的竞争对手,在本地排名奖励的杠杆上,给它领先目标多少打分。总分越高 = 威胁越大 / 简报越清晰:
| 信号 | 如何打分(每个竞争对手 vs 目标) | 权重 |
|---|---|---|
| 三件套频次 | 它们出现的查询词数 ÷ 目标总查询词数 | ×3 |
| 评价量 | review_count 与目标的比值(上限 3×) | ×3 |
| 评分 | 与目标的评分差(每 +0.1 = 1 分,封顶) | ×2 |
| 品类契合 | 主品类对这些查询是否更具体?(0/1/2) | ×2 |
| 自然实力 | ranked-keywords 数 vs 目标——本地足迹是否宽广?(0–3) | ×2 |
| 完整度 | 副品类 + 营业时间 + 网站是否都齐全?(0–3) | ×1 |
**威胁分 = Σ(信号 × 权重)。**按威胁度降序给竞争对手排序。该名单顶部就是首先要研究并击败的商家;驱动它得分的那些信号就是待办清单。
输出:竞争对手表 + 差距摘要
# Local Competitor Scan — <business> — <date>
Queries: <…> · location: <…> · language/device: <…>
## Competitor profile (ranked by threat score)
| Competitor | Pack freq | Primary category | Rating | Reviews | Ranked kw | Threat | Lead over target |
| ------------- | --------- | ---------------------- | ------ | ------- | --------- | ------ | ------------------------------------------- |
| Cool Air HVAC | 6/6 | Furnace repair service | 4.9 | 680 | 1,240 | 19 | Reviews 3.2×, exact category, broad organic |
| A1 Comfort | 5/6 | HVAC contractor | 4.7 | 410 | 320 | 11 | Reviews 2×, full hours |
| _Target_ | 3/6 | HVAC contractor | 4.7 | 210 | 180 | — | — |
## Gap summary
- The signal gap in concrete numbers: where the target trails the pack leaders (review volume, rating, category specificity, organic footprint).
- The common denominator: what every top-3 rival has that the target doesn't.
- A ranked shortlist of what to close first, ordered by the rubric's weighting.
Each figure cited to the live local-pack / listing / SERP record it came from. Record cost consumed (or best estimate).
实战示例
简报:HVAC 公司,查询词"ac repair / furnace repair / hvac repair"× Austin。目标:4.7 评分、210 条评价、主 category"HVAC contractor",在"ac"/"hvac"三件套里出现 3/3,但在"furnace repair"里缺席。
- Cool Air HVAC —— 在更宽的查询集里出现 6/6,4.9 / 680 条评价,主品类"Furnace repair service";
seo/competitors/ranked-keywords显示约 1,240 个排名查询(vs 目标约 180),而seo/competitors/domain把它列为城里的自然领先者之一。威胁分 19:评价 3.2×、对目标缺席的那个查询有精确品类,而且有结构性站点权威。简报:评价增速 + furnace 品类 + 内容深度。 - A1 Comfort —— 5/6,4.7 / 410,主品类"HVAC contractor"(与目标相同),自然足迹一般。威胁分 11:纯粹的评价量领先,无品类或权威优势——最可击败的领先者。
- **公分母:**两个排名靠前的对手都清过约 400 条评价并带查询特定的主品类;最难的那个(Cool Air)还有目标缺乏的广泛自然排名。
裁决:仅靠评价就能追上 A1;Cool Air 需要评价 + furnace 品类 + 一手内容打法。读取:6 次 local/maps + 3 次 SERP + 4 次竞争对手自然。
护栏
- **只读("眼睛,而非双手")。**仅公开数据。它分析公开的竞争对手数据;它绝不编辑任何列表、发帖或联系竞争对手。运营者自己的团队来对差距采取行动。
- **已确认 vs 推断。**把评分、评价数和排名关键词数作为已确认的读取来报告;把威胁分和"它们为何胜出"的归因当作推断——高分意味着一份清晰的简报,而不是证明照搬该信号就能翻转三件套。本地排名有公开数据看不到的因素。
- **带日期的快照,可重跑。**本地排名是个性化且时间敏感的——记录位置、语言、设备和时间戳,并保留对手观察名单,好让扫描能重跑。
- **不要建议照搬操纵手段。**如果一个对手靠塞名(name stuffing)或假品类排名,把它标为风险 / 很可能不可持续,而不是可模仿的战术。
相关技能
- local-pack-audit(Local SEO):在为谁击败它画像之前,先确定该商家排在哪里。
- listing-accuracy-audit(Local SEO):一旦竞争门槛清晰,核查目标自己的列表。
- unifapi:共享的数据技能——连接 MCP 并发现上述操作。
源码:GitHub 上的 local-competitor-scan/SKILL.md——可在那里提交 PR 来改进它。
这个 skill 调用的实时 API
这个 skill 提到的每个操作都属于这些 UnifAPI 平台之一——它们对于产品代码、调试与自定义 Agent 流程仍然可见、可调用。
- 竞品表:每个对手的类目、评分、评论数与有排名的查询
- 用具体数字呈现与 local pack 领先者的信号差距
- 胜出竞品共有、而目标缺少之处的精简清单
- 每个数据都引用到实时的 local pack 与商户信息记录
本地 SEO Agent 中的更多 skills
在同一个 Agent 中把它们串联起来,从一个决策成果走向下一个——每个都有各自的运行提示词、工作流与预期输出。