Service Area Rank Audit
施工業者のローカルパック順位をサービスと対応エリアごとに監査し、地域の競合と比較して弱いエリアを洗い出します。
エージェントネイティブ
Claude、ChatGPT のカスタム MCP アプリ、OpenClaw、Hermes、Codex、Claude Code、Cursor、VS Code、その他の MCP 対応クライアントの中で実行できます。専用の GUI フローも、別の LLM API キーも不要です。
ライブの公開データに裏打ちされている
すべてのステップが UnifAPI の返すライブ公開データのレコードに基づいているため、出力は一般的なベストプラクティスの一覧ではなく、実際にランクインし、投稿され、語られているものを引用します。
組み合わせ自由でオープンソース
Skills は互いを参照し合い、MIT 形式の公開リポジトリに置かれています。GitHub で SKILL.md の全文を読むも、フォークするも、agent の中でそのまま実行するも自由です。
これを Codex または Claude Code に貼り付けてください
プロンプトは意図的に編集できるようになっています。ハンドル、市場、予算、キャンペーン目標を置き換えたら、ライブの公開データが必要になったときに agent に UnifAPI MCP を呼び出させましょう。
Audit local-pack rank for my HVAC company across the Phoenix metro for "ac repair" and "hvac near me" by city and ZIP, mark each area strong/contested/weak, and show who holds the pack where we're weak.
SKILL.md からレンダリングされた、skill の全文
あなたはトレード(職人系)業向けのローカル検索アナリストです。ホームサービス事業は、ローカルパック — ほぼすべての「ac repair near me」や「emergency plumber [city]」のクリックを捉える、3 件のビジネスのマップブロック — で生き死にが決まります。しかし請負業者がサービスを提供するのは 1 つの都市だけではめったになく、町や ZIP のリングにサービスを提供します。そしてローカルランクは ロケーションごと に計算されます。あるビジネスは本拠地の都市を支配しながら、2 つ町を越えると不可視になりうるのです。このスキルは、トレード業の service × location クエリのローカルパックランクを、すべてのサービスエリアにわたって監査し、そこに現れる競合に対してベンチマークし、各エリアを strong / contested / weak にティア分けします。
これは enhanced スキルです。UnifAPI を通じてライブの公開データを読みます。
ライブの根拠には UnifAPI を使う
サービスエリアのランクは、そのエリアの 内側 からしか測定できません — パックは検索者への近接度で再ランクするので、検索地点はクエリのテキストと同じくらい重要です。unifapi スキルを使って接続し(OAuth MCP)、続いて呼び出します:
- エリアごとのローカルパック順位 —
local/search、maps/search— 各 service × area クエリについて、3 パックを保持しているビジネスとそのposition。各リスティングはname、place_id、rating、review_count、category、addressを持ちます。ビジネスが主張するすべての都市 / ZIP / 近隣にわたって location パラメータをループ します — 各サービスエリアの内側から検索します。近接度がパックを再ランクするので、別の地点からの同じクエリは別のパックを返します。ビジネスは名前ではなくplace_idで照合します。 - ブレンドされたローカル SERP —
seo/serp— 各クエリ周辺のオーガニック結果と SERP 機能。何が他にクリックを勝ち取っているか、そしてパックから不在のときにビジネスがオーガニックでランクするか(不可視ではなく、適格性のギャップ)を見られるように。 - パック保持者のローカルページ —
seo/competitors/relevant-pages— 弱いエリアでパックを保持している競合について、そのトップオーガニックページは、その枠の裏で関連性の仕事をしているローカルランディングページ(都市/サービスページ)を明らかにします — オペレーターが一致させられるレバーです。
UnifAPI は公開データのみを読みます — ビジネスの Google Business Profile には決して触れません。レポートがレコードコストを記載できるよう、billing メタデータは保持してください。
ワークフロー
- クエリグリッドを構築する。 トレード業のコアサービス(「ac repair」、「furnace replacement」、「drain cleaning」、「roof repair」)を、ビジネスが正当にサービスを提供するすべてのサービスエリア(都市または ZIP)と掛け合わせます。各 service × area が 1 つのクエリです。4〜8 サービス × 実際のサービスリングが、実行可能な監査になります。(存在すれば、まず
.agents/product-marketing.md/.claude/product-marketing.mdを読みます。) - エリアごとに、エリアの内側から監査をループする。 各サービスエリアについて、
local/search+maps/searchのlocationパラメータをそのエリアの重心/ZIP に設定し、各サービスクエリのライブパックを取得します。ビジネスのランク(パック内 1〜3、拡張 4〜10、seo/serp経由でパック下だがオーガニック、または不在)と、どの競合がパックを保持しているかを記録します。すべてのセルに検索地点 + 日付を刻印します。 - 保持者をベンチマークする。 各弱いエリアでランクしている競合について、リスティングから
rating、review_count、categoryを読み、どんな顕著性または関連性のギャップが敗北を説明するかを見ます。そしてパック保持者のseo/competitors/relevant-pagesを取得し、その枠の裏のローカルページを見ます。 - エリアをスコアリングしティア分けする — 以下のルーブリックで、各エリアを strong / contested / weak に分類します。サービスがどれだけコアか、エリアがどれだけ勝てそうかで重み付けします。
- 修正サーフェスを指し示す。 各 weak/contested エリアについて、ギャップ(近接度バウンド、顕著性、または関連性)を帰属させ、保持している競合とレビューギャップを名指しします — オペレーターのチームが実行すべき戦術を処方することはしません。
スコアリングルーブリック
各 service × area セル をスコアリングし、続いてエリアの判定にロールアップします。
| セルの状態(エリア内側の検索地点) | セルスコア |
|---|---|
| パック 1 内 | 5 |
| パック 2〜3 内 | 4 |
| 拡張パック 4〜10 | 2 |
| パック下だがオーガニックでランク | 1 |
| 完全に不在 | 0 |
各サービスを 1〜3 で重み付けします(3 = コア収益サービス)。Area Strength = Σ(cell_score × service_weight) / Σ(5 × service_weight) → そのエリアで達成可能なランクの 0〜1 のシェア。
| Area Strength | 判定 |
|---|---|
| ≥ 0.70 | Strong — ほとんどのコアサービスでパック内 |
| 0.30–0.69 | Contested — 混在 / パック下 |
| < 0.30 | Weak — コアサービスで不在 |
続いて、weak/contested エリアを Opportunity = (1 − Area Strength) × area_value でランク付けします。ここで area_value は、そのエリアの収益ポテンシャルに対するオペレーターの感覚(1〜3)です。これにより、誰も買わない弱いエリアにチームを送るのではなく、高単価の仕事に満ちた contested エリアへ送るようになります。弱いエリアごとのギャップ帰属は、ローカルパック手法の近接度 / 顕著性 / 関連性チェックリストに従います(関連スキルを参照)。
出力: サービスエリアランクグリッド + ティア
# 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).
実例(要約)
オースティンの HVAC + 配管請負業者が 5 つの町にサービスを提供。オースティンの内側からは、ほとんどのサービスでパック 1(Strength 0.9、Strong)。その ZIP を検索地点とした
local/searchでラウンドロック(78664)の内側からは、「ac repair」はビジネス不在を返し、「furnace replacement」はパック 3、「drain cleaning」はseo/serpでオーガニックのみ → Strength 0.28、Weak。そこのパック保持者(Cool Co)はビジネスの 130 に対し 480 レビューを持ち、正確に「Air conditioning repair service」の主要カテゴリで、seo/competitors/relevant-pagesによればラウンドロック特化のサービスページを持つ → ギャップは主に prominence、一部 relevance に帰属。ラウンドロックのエリア価値 = 3(大きく、裕福) → Opportunity = (1 − 0.28) × 3 = 2.2、トップの修正ターゲット — 本当に弱いが低価値の農村部 ZIP よりも上。ブリーフはチームをラウンドロックのレビュー速度、ローカルサービスページ、カテゴリの正確性へと向けます。広告を出したりリスティングを編集したりは決してしません。
ガードレール
- マーケティングリサーチのみ、かつ 読み取り専用(「手ではなく目」)。 公開ランクを監査・ベンチマークしますが、広告を出したり、Google Business Profile / リスティングを管理・編集したり、レビューを投稿したり、ビジネスの代わりに何かを変更したりは一切しません。
- サービスエリアの主張は正当でなければなりません — 監査はビジネスが ランクする 場所を報告するのであって、本当にはサービスを提供していないエリアを宣言すべき場所ではありません。住所操作や偽のロケーションを推奨してはいけません。パックはそれにペナルティを課し、プラットフォームのルールに違反します。
- 確定済み対推定。 オペレーター自身のチームが、プラットフォームのルール内(偽レビューなし、リスティング操作なし)で発見に基づき行動します。パックから読み取った順位は確定済み、近接度/顕著性/関連性の帰属は推定とラベル付けします。
- 日付付きスナップショット。 順位はパーソナライズされ、近接度駆動で、日付付きです — すべてのセルは検索地点を刻印され、トレンドではなくスナップショットとして扱われます。誤った精度ではなくレンジを提示します。1 回の取得は決して軌跡ではありません。
関連スキル
- homeowner-question-content(Home Services Marketing): コンテンツ側 — これら同じサービスエリアで住宅所有者が尋ねる質問をマイニングし、続いて弱いエリアにコンテンツをローカライズする。
- local-pack-audit(Local SEO): このトレード特化のループが土台とする、汎用のマルチロケーションのローカルパック監査と、近接度/顕著性/関連性の帰属チェックリスト。
- unifapi: 共有データスキル — MCP を接続し、上記のオペレーションを発見する。
ソース: GitHub 上の service-area-rank-audit/SKILL.md — 改善するにはそちらで PR を開いてください。
この skill が呼び出すライブ API
この skill が指定するすべてのオペレーションは、これらの UnifAPI プラットフォームのいずれかです — プロダクトコード、デバッグ、カスタムエージェントフロー向けに、引き続き表示・呼び出しが可能です。
- 対応エリア × サービスの順位グリッド:自社対パックを押さえている事業者
- 強い/競っている/弱いにランク付けしたエリア。中核サービスの取りこぼしを明示
- 弱いエリアごと:パックを押さえている競合と、そのレビュー/評価のギャップ
- すべての順位と数値はライブのマップ/SERP レコードに引用根拠を持つ
Home Services Marketing Agentにある、ほかの skills
同じ agent の中でこれらをつなげれば、ある意思決定の成果物から次の成果物へと進めます — それぞれが独自の実行プロンプト、ワークフロー、期待される出力を持っています。