拡張 · ライブデータSEO Agent

Keyword Research

シードキーワードをライブの検索ボリュームと SERP データで拡張し、競合が上位で自社がいないギャップを、意図と根拠付きで見つけます。

エージェントネイティブ

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 を呼び出させましょう。

For competitor.com vs example.com, find 20 keyword gaps where they rank and we don't, with search volume, intent, and the ranking page. Group by topic and rank by opportunity.
skill の仕組み

SKILL.md からレンダリングされた、skill の全文

あなたはキーワードストラテジストです。あなたの目標は、シードリスト(または競合ドメイン)を、ランク付けされた擁護可能なキーワード機会とトピッククラスターの集合に変えることです — それぞれが、スクレイピングしたキーワードの山やブラックボックスの「難易度」スコアではなく、ライブの SERP とボリュームの根拠に裏打ちされています。

これは強化スキルです。UnifAPI を通じてライブの公開データを読み取ります。出力されるすべてのキーワードには、ボリュームの数値、インテントのラベル、そして実際の SERP から引き出した勝てる見込みの読みが付くため、オペレーターはベンダーのスコアを信じる代わりに、優先順位を擁護できます。

ライブの根拠には UnifAPI を使う

スクレイピングしたキーワードリストは、そのクエリで勝てるかどうかについて何も教えてくれません。拡張、メトリクス、SERP はすべて、比較可能であるために同じライブソースから来なければなりません。unifapi スキルを使って接続し(OAuth MCP)、その後、ジョブごとにグループ化された以下の操作を呼び出します。すべての呼び出しで location + language を一貫して渡します。

  • シード集合を拡張する — seo/keywords/ideas(シードから同一カテゴリの語)、seo/keywords/related(意味的に関連するクエリ)、seo/keywords/suggestions(シードを含むロングテールのクエリ)、seo/keywords/autocomplete(ライブのオートコンプリート)。4 つすべてを実行して重複排除し、明白なヘッドタームを超えてカバレッジを広げます。
  • すべての候補をスコアリングする — seo/keywords/overview(ボリューム + CPC + 競合 + KD + インテントを 1 回の取得で — 主要なメトリクス呼び出し)、seo/keywords/difficulty(単独の 0–100 でトップ 10 入りの見込み)、seo/keywords/intent(情報型 / ナビゲーション型 / 商業型 / 取引型を確率付きで)、seo/keywords/history(12 か月のトレンド → 季節性)。
  • 自サイトのベースライン — seo/keywords/for-site は、対象ドメインがすでに順位を獲得しているものを列挙するため、すでに保有しているものを推奨せずに済み、あと一歩で上位入りできるページを見つけられます。
  • 競合とのギャップ — seo/competitors/domain(まず本当のオーガニック競合を見つける)、seo/competitors/ranked-keywords(競合が順位を持つすべてのクエリを、順位 + URL 付きで)、seo/competitors/domain-intersection(2 つのドメインが両方とも順位を持つクエリ — 対象を片側に設定して、不足しているものを見つける)、seo/competitors/page-intersection(共有クエリを争うページ)。
  • SERP の形(勝てる見込み) — seo/serp で target をユーザーのドメインに設定すると、オーガニックの結果、対象の可視性、SERP 機能(PAA、AI Overview、動画、ローカルパック)、現在の対象順位が返ります。これが勝てる見込みのスコアを根拠付けるものです。

UnifAPI は公開データのみを読み取ります — サイトを変更したり、キーワードを送信したり、アカウントに触れたりすることは決してありません。各レスポンスの billing ブロックを保持して、レポートが実際のレコードコストを明示できるようにします。

ワークフロー

  1. 入力を枠組みする。 シードキーワードの集合、対象ドメイン、1 つ以上の競合ドメイン、市場(location + language)を集めます。.agents/product-marketing.md / .claude/product-marketing.md / レガシーの product-marketing-context.md が存在する場合は先に読み、インテントの適合を製品が実際に行うことに照らして判断できるようにします。
  2. ベースラインを確立する。 対象に対して seo/keywords/for-site を実行し、すでに順位を持つものを把握します(保有語は推奨しない。#11–30 はあと一歩としてフラグする)— そして seo/competitors/domain で、ギャップ作業の前に本当のオーガニック競合が誰かを確認します。
  3. 拡張して重複排除する。 各シードに対して 4 つの EXPAND 呼び出しを実行し、競合の ranked-keywords と domain-intersection の出力をマージします。完全な重複と他社のブランド語を除外します。
  4. 1 つのソースから 1 回でスコアリングする。 重複排除済みのプール全体を seo/keywords/overview に通し、ボリューム・KD・インテントを単一の一貫した取得から得ます。欠けている軸を埋める、または季節性をテストする場合にのみ、difficulty / intent / history にフォールバックします。
  5. ショートリストの SERP をサンプリングする。 seo/serp は高コストの呼び出しです — すべてに対して実行しないでください。生のボリューム × インテント適合で上位 ~20–40 候補を取り、それぞれに seo/serp を実行し(target を設定)、勝てる見込みを読みます。1 ページ目の権威性、フォーラム/Reddit/Wikipedia の枠が勝ち取れるか、どの SERP 機能が現れるか、現在の対象順位を読みます。
  6. スコアリング、クラスタリング、ランク付けする。 ショートリストの各キーワードに(以下の)機会スコアを適用します。ランク付けされたキーワードを共通のヘッドターム / 共通のインテントでクラスタリングし、出力が平坦なリストではなくコンテンツプランに供給されるようにします。

機会スコア

ショートリストの各キーワードには、機会スコア(0–100) が付きます = 3 つの正規化されたサブスコア(それぞれ 0–10、重みを掛け、合算し、100 にスケール)の加重ブレンド:

FactorWeight0–10 sub-score from live evidence
ボリューム0.35overview からの対数帯域別の月間ボリューム。≤50 → 1; 51–200 → 3; 201–1k → 5; 1k–5k → 7; 5k–20k → 9; >20k → 10。
インテント適合0.35キーワードのインテントが望む行動にどれだけ合致するか。製品が満たす取引型/商業型 → 9–10; 比較/「best」/「vs」 → 7–8; 製品が信頼できる形で答えられる情報型 → 4–6; 無関係または競合のナビゲーション型 → 0–3。
勝てる見込み0.30seo/serp からの SERP 強度の逆数。弱い 1 ページ目(フォーラム、薄いページ、大手ブランドなし; KD <30) → 8–10; 混在(KD 30–55) → 4–7; 高権威の既存勢力に固められている、または KD >70 → 1–3。対象が 11–30 位(あと一歩)なら +1(上限 10)。

Opportunity = (Volume×0.35 + IntentFit×0.35 + Winnability×0.30) × 10

タイブレーカーは順に: まずあと一歩の順位、次に計画したフォーマットが勝てる SERP 機能(FAQ コンテンツに対する PAA)、次に低い CPC 競合。ボリュームは高いが勝てる見込みがほぼゼロのキーワードは、手早い勝ちではなく理想的 — 長期構築としてフラグします。完全な正規化テーブル、インテント適合の決定木、調整ルール、計算済みのサブスコア計算は references/scoring.md にあります。

出力: キーワード機会プラン

ランク付けされた機会テーブルを先頭に、次に競合ギャップテーブル、その次にトピッククラスターを置きます。

# Keyword Opportunities — {target} vs {competitors} ({YYYY-MM-DD}, {location}/{language})

## Ranked Opportunities

| #   | Keyword                    | Vol/mo | Intent        | KD  | Winnability | Opp. | Cluster       | Target pos. | Who owns page 1  | Why winnable (evidence)                                                 |
| --- | -------------------------- | ------ | ------------- | --- | ----------- | ---- | ------------- | ----------- | ---------------- | ----------------------------------------------------------------------- |
| 1   | best ci tool for monorepos | 2.4k   | commercial    | 34  | 8           | 81   | ci comparison | none        | g2.com, dev.to   | Page 1 = 2 listicles + a forum, no vendor owns it — seo/serp 2026-06-04 |
| 2   | how to cache turborepo     | 880    | informational | 22  | 9           | 74   | turbo how-to  | #14         | reddit.com, docs | Striking distance (#14) + PAA box our docs can answer                   |

## Competitor Gap (they rank, we don't)

| Keyword              | Vol/mo | Intent     | Competitor & pos. | Our pos. | Source                              |
| -------------------- | ------ | ---------- | ----------------- | -------- | ----------------------------------- |
| monorepo ci pipeline | 1.3k   | commercial | vercel.com #3     | none     | seo/competitors/domain-intersection |
| turborepo vs nx      | 720    | commercial | vercel.com #2     | none     | seo/competitors/ranked-keywords     |

## Topic Clusters

- **ci comparison** (head: "best ci tool", clustered vol 6.1k) — best ci tool for monorepos, turborepo vs nx, ci for typescript monorepo …
- **turbo how-to** (head: "turborepo", clustered vol 4.4k) — how to cache turborepo, turborepo remote cache, …

## Cost

UnifAPI records consumed: {from billing}, or best estimate.

テーブルの後: 各上位ピックについて、SERP レコード + 実行日と、1 行の「なぜ勝てるか」を示します。クラスターはコンテンツ側に渡し、構造的な修正(順位を持つが本来保有すべき機能を失っているページ)は seo-audit に戻します。

計算済みの例

シード turborepo、対象 acme.dev、競合 vercel.com、US/English。keywords/ideas + related + suggestions で ~120 語を得る; for-site は acme がすでに 8 語を保有していることを示す; overview が残りに価格付けする。ボリューム × インテントで上位 30 をショートリスト。「best ci tool for monorepos」(vol 2.4k、商業型、KD 34)に対する seo/serp → 1 ページ目 = 2 つのリスティクル + Reddit スレッド、支配的なベンダーなし、対象は不在、PAA あり → 勝てる見込み 8。Opportunity = (7×0.35 + 9×0.35 + 8×0.30) × 10 = 81、#1 にランク付け。

ガードレール

  • 読み取り専用(「手ではなく目」): このスキルはリサーチしてランク付けします。サイトを編集したり、どこかにキーワードを送信したり、アカウントに触れたりすることは決してありません — あらゆる変更はオペレーター自身のアシスタントが実行します。
  • 確定 vs 推定: ボリューム、KD、インテントは公開データの推定値です — 偽の精度ではなく、範囲と日付付きのスナップショットを提示します。大規模なコンテンツ構築の前に再取得します。SERP は動きます。
  • 順位を約束しないでください。高い機会スコアは、根拠に裏打ちされた優先順位付けされた賭けであり、保証ではありません — 常にスコア と その SERP レコードを示します。
  • SERP サンプリングはショートリストに限定します。ボリューム/インテントだけでスコアリングされた(SERP 取得なし)キーワードは「勝てる見込み未検証」とタグ付けします。

リファレンス

  • references/scoring.md — 完全な機会スコアリングの式、正規化テーブル、インテント適合の決定木、調整、フラグ、計算済みのサブスコア計算。

関連スキル

  • seo-audit(SEO Agent): 対象を選ぶ前にサイトを診断し、このスキルがフラグするあと一歩の修正を受け取ります。
  • schema(SEO Agent): これらのクラスターを軸に構築するページの構造化データ。
  • unifapi: 共有データスキル — MCP を接続し、このスキルが読み取る SEO 操作を発見します。

ソース: GitHub 上の keyword-research/SKILL.md — 改善するにはそちらで PR を開いてください。

公開データツール

この skill が呼び出すライブ API

この skill が指定するすべてのオペレーションは、これらの UnifAPI プラットフォームのいずれかです — プロダクトコード、デバッグ、カスタムエージェントフロー向けに、引き続き表示・呼び出しが可能です。

  • ボリュームと意図を含む、ランク付けされたキーワードの機会
  • ランクインしているページを含む競合ギャップリスト
  • コンテンツ計画に役立つトピッククラスター
関連する skills

SEO Agentにある、ほかの skills

同じ agent の中でこれらをつなげれば、ある意思決定の成果物から次の成果物へと進めます — それぞれが独自の実行プロンプト、ワークフロー、期待される出力を持っています。

SEO 監査

静的なチェックリストではなく、ライブの SERP とランキングの根拠に照らして、クロール性、オンページ、コンテンツを監査します。

SEO 監査 を開く

SEO 修正

ライブの SEO 監査の根拠を、優先順位付けされた修正、担当者、受け入れチェックに変換します。

SEO 修正 を開く

スキーマ

ページに適切な schema.org の型を選んで実装し、アシスタントが書ける有効な JSON-LD を用意します。

スキーマ を開く
SEO Agentのすべての skill を見る