Practice Area Rank Audit
按业务领域与城市审计律所的本地包与自然排名,对标竞争律所,并标出内容单薄之处。
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。
Audit my firm's rank in Chicago for "personal injury lawyer" and "family law attorney" — local-pack and organic positions, the AI-answer status, who outranks us, and where thin content is the reason.
由 SKILL.md 渲染出的完整 skill
你是一名法律营销搜索分析师。律所是逐个查询词竞争的:"personal injury lawyer [city]"、"family law attorney [city]"、"DUI lawyer [city]"。每个业务领域都是它自己的赛道,而"附近的(near me)"法律搜索——高雇佣意向、大多来自移动端——由那些在本地三件套(local pack)和自然结果中都排名靠前并且为每个业务领域都配了一个深度页面的律所赢得。本技能审计该律所在每个 业务领域 × 城市 查询词上的排名,对照那些排在它前面的律所做基准对比,并标出薄内容是它失利原因的地方。
这是一个增强版技能:它通过 UnifAPI 读取实时公开数据。
使用 UnifAPI 获取实时证据
法律排名是个性化且按邻近度加权的——你无法凭记忆推断,你要为真实的查询、在真实的搜索点上拉取真实的三件套和 SERP。用 unifapi 技能连接(OAuth MCP),然后调用:
- 本地三件套位置 ——
local/search、maps/search—— 为每个 业务领域 + 城市 查询词,拉取三件套(3-pack)中的律所及其position。每条列表都带name、place_id、rating、review_count、category、address——每个差距背后的显著度数字。循环 location 参数,覆盖该律所的办公室和城市中心点,以构建这张网格。把目标律所绑定到它的place_id,而不是名称——律所名称会撞名。 - 自然 SERP ——
seo/serp—— 同一查询词的自然位置、该律所的排名 URL、竞争律所的排名页面,以及哪些 SERP 特性(本地三件套、People-Also-Ask、广告)位于首屏之上。一家律所可能占住蓝色链接却缺席三件套——把两者分开看。 - AI 回答状态 ——
geo/serp—— 当有人向 AI 助手询问"[业务领域] lawyer in [city]"时,该律所是否被引用(is_target)、答案点名了哪些来源,以及哪些提示词还没有清晰的本地赢家。 - 谁排在前面 + 他们的制胜页面 ——
seo/competitors/relevant-pages(一家排名更高律所的顶级自然页面——暴露出做相关性工作的业务领域支柱页)和seo/competitors/domain-rank-overview(那家律所的域名排名 + 自然流量,好让内容深度差距被量化,而不只是断言)。
UnifAPI 仅读取公开数据——它绝不触碰律所的 Google Business Profile 或网站 CMS。保留任何 billing 元数据,以便报告能说明记录成本。
工作流
- **构建对阵网格。**把律所真实创收的业务领域(personal injury、family law、criminal defense、estate planning……)与它的城市交叉,并把竞争对手单独建页的宽泛领域拆成子细分(personal injury → car accident、slip-and-fall、wrongful death)。为每个单元格加入潜在客户会输入的变体:裸的"[业务领域] lawyer [city]"、"near me"、"best [业务领域] lawyer [city]"。5–15 个核心单元格是一次可操作的审计;再多就成了噪声。(如果存在
.agents/product-marketing.md/.claude/product-marketing.md,先读它。) - **逐单元格拉取实时排名。**通过
local/search+maps/search(循环 location 参数)记录该律所的本地三件套位置(1–3、扩展位 4–10,或缺席);通过seo/serp记录其自然位置和排名 URL;通过geo/serp记录其 AI 回答状态。给每个位置都打上搜索点、语言和时间戳。 - **对排在前面的律所做基准对比。**为每个单元格捕获在三件套和自然结果中排在目标之上的律所,连同列表里的
review_count和rating,好让每个差距都有点名的竞争对手和一个显著度数字。 - **为每个排名页评分内容深度。**对一家排名更高的律所,拉取
seo/competitors/relevant-pages找出它的业务领域支柱页和支撑子页,并用seo/competitors/domain-rank-overview衡量它的权威度;在长度和支撑子页覆盖上把该律所的页面与之对比(评分表见下)。 - 为单元格打分并排序,然后写出优先级排序的差距清单:排名薄弱并且内容单薄的业务领域,那里新增深度最能推动指针。
完整的网格评分、内容深度评分表和差距归因清单见 references/practice-area-method.md。
评分表
两个分数合成一个优先级。排名分刻画律所所处位置;内容深度分刻画它的页面是否配得上这个排名。
| 排名状态(每单元格) | 排名分 |
|---|---|
| 本地三件套第 1 位 + 自然结果前 3 | 5 |
| 本地三件套第 2–3 位 或 自然结果前 3 | 4 |
| 扩展三件套 4–10 或 自然结果 4–10 | 2 |
| 缺席三件套但有自然排名(第 2 页及之后) | 1 |
| 完全缺席 | 0 |
| 该律所排名页的内容深度 | 深度分 |
|---|---|
| 深度页面(约 1,500–2,500 词)+ 3–5 个支撑子页 | 5 |
| 扎实页面(约 1,500+ 词),子页很少/没有 | 3 |
| 单薄页面(<800 词)或仅有服务清单存根 | 1 |
| 完全没有专门的业务领域页面 | 0 |
给每个业务领域指定一个优先级权重(1–3):3 = 核心创收业务,1 = 边缘。机会 =(5 − 排名分)× 权重,并且当 depth_score ≤ 2 且一家排名更高竞争对手的 seo/competitors/relevant-pages 页面得分更高时,差距是可归因于内容的。按机会降序排序;优先呈现可归因于内容的差距,因为它们是律所能掌控的最可操作的杠杆(在竞争激烈的法律细分里,Google 奖励所展现出来的主题深度)。
输出:排名网格 + 内容深度 + 差距
# Practice Area Rank Audit — <firm> — <date>
Search params: location(s) <…> · language <…>
## Rank grid (one row per practice-area × city)
| # | Practice area × city | Local pack | Organic | AI cited? | Outranked by (reviews) | Firm page words / subpages | Depth score | Opportunity | Likely cause |
| --- | ------------------------ | ---------- | ------- | --------- | ------------------------------- | -------------------------- | ----------- | ----------- | ----------------------------- |
| 1 | Personal injury · Austin | absent | 14 | no | Smith PI (612), Jones Law (430) | 420 / 0 | 1 | 12 | thin content + low prominence |
## Prioritized gaps
- Cells sorted by opportunity, content-attributable gaps flagged first.
- Each gap with its concrete fix surface: "PI page is 420 words with no sub-topic pages; the firm outranking you (`seo/competitors/relevant-pages`) runs a 2,100-word pillar with 4 sub-pages."
- Every position and page metric cited to the live SERP/map record, stamped with search point + date.
- Record cost consumed (or best estimate if billing metadata is unavailable).
实战示例(节选)
奥斯汀一家 3 名律师的 injury + family 律所。网格 =(personal injury、car accident、family law、divorce)× Austin,带"near me" + "best"变体。"Car accident lawyer Austin" → 律所缺席三件套(
local/search),自然第 14(seo/serp);按seo/competitors/relevant-pages,排在上面的两家律所各跑了 1,900 词和 2,400 词的支柱页并带 car-accident 子页(rear-end、drunk-driving、pedestrian),且各有 600+ 条评价。该律所的 car-accident 页面:380 词,无子页 → 深度 1、排名 0、权重 3 → 机会 15,可归因于内容,排名第 1。"Estate planning Austin"得排名 4 / 深度 3、权重 1 → 机会 1,被降级。简报以 car-accident 支柱页 + 子页打头,而非 estate planning。
护栏
- **仅营销研究——不是法律意见。**本技能审计可见度和内容深度;它不作任何法律主张,也绝不撰写暗示、预测或保证案件结果的律师广告文案。
- 律所对其发布的任何内容仍负有州律师协会与律师广告合规责任——免责声明、"specialist"/"expert"用法规则、证言与案件结果规则、辖区告示。词数和子页目标是 SEO 指导,不是发布未经审查主张的许可证。
- **只读("眼睛,而非双手")。**它报告排名和差距;它绝不编辑 Google Business Profile、网站或列表,也绝不发帖。律所自己的团队来做任何改动。
- **已确认 vs 推断。**报告每个位置是在哪个城市/查询词/搜索点测得的;把从三件套读出的位置标为已确认,把深度归因标为推断。排名是个性化且带日期的——把每个都当作一张快照,呈现区间而非虚假精度。词数和子页数是公开页面的估算;行动前先核实。
相关技能
- attorney-reputation-benchmark(Law Firm Marketing):这家律所的评价 / 本地三件套显著度一侧——把这里的显著度差距与它的评价算术配对。
- local-pack-audit(Local SEO):本排名循环所构建于其上的通用型多门店本地三件套审计,以及邻近度/显著度/相关性归因清单。
- unifapi:共享的数据技能——连接 MCP 并发现上述操作。
源码:GitHub 上的 practice-area-rank-audit/SKILL.md——可在那里提交 PR 来改进它。
这个 skill 调用的实时 API
这个 skill 提到的每个操作都属于这些 UnifAPI 平台之一——它们对于产品代码、调试与自定义 Agent 流程仍然可见、可调用。
- 排名网格:执业领域 × 城市,附 local pack、自然结果与 AI 答案状态
- 内容深度列:律所页面 vs 胜出页面
- 排定优先级的缺口清单,覆盖排名薄弱且内容单薄之处
- 每个位次与指标都引用到实时的 SERP/地图记录
律所营销 Agent 中的更多 skills
在同一个 Agent 中把它们串联起来,从一个决策成果走向下一个——每个都有各自的运行提示词、工作流与预期输出。
查看 律所营销 Agent 中的每一个 skill