competitor-intel について
competitor-intelは、競合調査と継続的なモニタリングを統合するスキルです。営業向けバトルカード、マーケティング概要、比較ページ用資料を作るチーム向けに、サイト、検索順位、ソーシャル投稿、トレンドなどの公開情報を集め、以前の記録との差分を確認できます。
主な機能
- 01ウェブサイトと価格ページの情報収集
- 02検索順位、キーワード、被リンクの分析
- 03ソーシャル投稿とコミュニティ議論の収集
- 04検索上の可視性と需要トレンドの確認
- 05競合の変化をまとめたブリーフ作成
活用シーン
- 01営業向け競合バトルカードの作成
- 02週次の競合動向ダイジェスト作成
- 03比較ページ向け機能・価格情報の収集
- 04競合の順位、コンテンツ、オーディエンス動向の追跡
MCP 対応
このスキルはHyper MCP経由でFirecrawl、HyperSEO、および任意のソーシャル・検索ツールキットを呼び出します。公開データを統合し、競合分析や変化の比較に利用します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hyperfx-ai/ marketing-skills --skill competitor-intelインストール後、Claude Code で/competitor-intelを入力して読み込まれたか確認します。
同梱ファイルreferences/brief-templates.mdreferences/source-by-source.md
詳細
競合インテリジェンス
競合調査とモニタリングをエンドツーエンドで実施します。対象を定義し、重要な公開情報源すべてから情報を取得し、前回の実行結果(または自社の情報)と比較して、実際に役立つブリーフを作成します。バトルカード、週次ダイジェスト、取締役会向けアップデート、比較ページの素材などに活用できます。
対象外 — 他のスキルに委ねる内容
| リクエスト | 連携先 |
|---|---|
| 競合の有料広告(Facebook/Instagramの配信中広告) | meta-ads-library |
| 主な情報源としてHyperSEOを使う、純粋なSEO/キーワード調査 | seo-research — 同じHyperSEOツールキットを使用しますが、キーワード調査をさらに深く行います |
| インテリジェンス取得後に、比較キャンペーン用のクリエイティブ(画像/コピー)を生成すること | ad-creative-generation |
| 競合のメールプログラムからデータを取得すること | 実施できません — オプトインが必要です。代わりに、ランディングページでfirecrawl_urls_scrapeを使用してください。 |
competitor-intelは統合レイヤーであり、あらゆる情報源から情報を取得して統合します。検索順位/被リンク/交差分析にはHyperSEOを使用しますが、SEO調査そのものを行うスキルではありません。
要件
- Hyper MCPがインストールされ、接続されていること。 https://app.hyperfx.ai/mcp
- https://app.hyperfx.ai/appsで、以下のツールキットのうち少なくとも1つが接続されていること。
- Firecrawl (強く推奨 — サイト/ブログ/料金ページに関する作業の基盤となります)
- HyperSEO (検索順位、被リンク、ドメイン重複の分析に必要です)
- Apifyスクレイパー — Instagram、TikTok、LinkedIn、Twitter、Reddit、Google検索、Google Trends
- 画像生成 (任意 — ブリーフを後続の比較ページやバトルカードの素材として使う場合のみ)
エージェントのツール一覧にこれらのツールプレフィックス(firecrawl_*、hyperseo_*、instagram_scrape*、scrape_tiktok*、x_tweets_search、reddit_scrape*、google_search_results_search、google_trends_scrape、web_pages_scrape)が1つも表示されない場合は、処理を中止し、Hyper MCPを有効にして、少なくともFirecrawlとソーシャルスクレイパー1つを接続するようユーザーに伝えてください。LinkedInスクレイパー(scrape_linkedin_profiles)は、その専用の連携が有効な場合にのみ利用できます。見つからない場合はブリーフ全体を失敗させず、LinkedInの情報収集を問題なくスキップしてください。
このスキルでツールを実行する方法
このスキルの各ツールは、正式なツール名で指定されています。利用する環境に応じた呼び出し方法で実行してください。
| 環境 | ツールを探す | 実行する |
|---|---|---|
| MCPクライアント(Claude、Cursor、Codex、ChatGPT) | search("<what you want to do>")を実行し、続けてdescribe("<name>") | call("<name>", {...}) |
| Hyper CLI | hyperai search "<what you want to do>"を実行し、続けてhyperai describe <name> | hyperai call <name> --json '{...}' |
ツールが見つからない場合は、その連携が未接続、またはワークスペースで有効になっていません。処理を中止し、接続すべき連携をユーザーに伝えてください。
ツールの概要
| フェーズ | ツール |
|---|---|
| サイトとウェブコンテンツ | firecrawl_urls_scrape、firecrawl_urls_scrape_batch、firecrawl_websites_crawl、firecrawl_screenshots_create、firecrawl_branding_extract、web_pages_scrape(JS レンダリングのフォールバック。対象を絞った抽出には ai_query をサポート)、web_pages_fetch、web_pages_load |
| 検索順位と被リンク | hyperseo_competitors_search、hyperseo_competitor_domains_search、hyperseo_domain_overview_get、hyperseo_domain_keywords_get、hyperseo_domain_intersections_search、hyperseo_site_keywords_search、hyperseo_backlinks_history_get、hyperseo_rank_history_get、hyperseo_mentions_track |
| AI 検索と SERP におけるブランドへの言及 | hyperseo_ai_overviews_get、hyperseo_ai_search_volume_get、hyperseo_mentions_track、google_search_results_search、web_search |
| オーガニックソーシャル — Instagram | instagram_scrape、instagram_posts_scrape、instagram_followers_count_scrape |
| オーガニックソーシャル — TikTok | tiktok_videos_scrape、tiktok_comments_scrape |
| オーガニックソーシャル — LinkedIn | scrape_linkedin_profiles (条件付き — LinkedIn スクレイパーのインテグレーションが Hyper ワークスペースで有効な場合のみ利用できます) |
| オーガニックソーシャル — Twitter / X | x_tweets_search |
| コミュニティ/センチメント — Reddit | reddit_scrape、reddit_leads_scrape |
| E コマースの競合に関する詳細 | ecommerce_products_scrape、ecommerce_reviews_scrape |
| 需要/トレンドのシグナル | google_trends_scrape、hyperseo_search_volume_get、hyperseo_intents_search |
| オプション:比較ページ用アセット | images_generate |
重要なルール
- 公開情報のみを使用してください。 ログインの壁や有料の壁の内側をスクレイピングしてはいけません。対象が制限されている場合は、そこで停止してユーザーに伝えてください。回避を試みてはいけません。
- スクレイピングを始める前に競合セットを選んでください。 3~5社が最適です。10社以上ではブリーフが読みにくくなり、スクレイピングのクレジットも消費します。ユーザーがリストを持っていない場合は、まず
hyperseo_competitors_search(domain=<their_domain>)を実行してオーガニック検索上位の競合を提示し、その後、ユーザーにセットを確認してください。 - スナップショットを取得してから差分を比較してください。 初回の実行はベースラインにすぎません。比較対象はまだありません。2回目、3回目の実行から価値が積み重なります(価格設定の変更、新しい投稿、順位を落とした企業など)。ユーザーが初めて実行するときは、この点を明確に伝えてください。
- HyperSEO はクレジット制です。 意図的に使用してください。4社分の情報が必要なだけなら、12社に対して
hyperseo_domain_overview_getを繰り返し実行しないでください。呼び出しごとにコストがかかるため、まとめて取得し、キャッシュしてください。 - Apify のスクレイパーは時間がかかることがあり、レート制限もあります。 8件のスクレイピングを並列で開始しないでください。順番に実行し、すべての処理が終わるのを待つのではなく、結果が届いたら部分的な結果をユーザーに提示してください。
- 分析だけでなく、スクレイピングした内容もスナップショットとして保存してください。 ブリーフ内の主張には必ず、ソース URL、スクレイピングのタイムスタンプ、短い抜粋を含めてください。そうしないと、翌週の差分比較の対象がなくなり、ブリーフの検証ができなくなります。
- 単一のデータポイントを過大解釈しないでください。 「競合 X が 1.2 万件の「いいね」を獲得したリールを投稿した」はノイズです。「競合 X は過去 30 日間の投稿あたりの「いいね」が平均 8,000 件で、以前の 2,000 件から増加した」はシグナルです。比較は逸話ではなく、集計データに基づいて行ってください。
- 事実に基づく記述を徹底してください。 「競合 X は日付 Z に Y を公開し、そのコピーには…と書かれています」のような中立的な表現を使い、「競合 X の戦略は破綻しています…」のような価値判断は避けてください。ブリーフは情報であり、意見ではありません。
- ブランド名の検索結果ページを明確に区別してください。
<competitor>だけで検索すると、同じブランド名を持つ無関係な結果が返されることがよくあります(例:「hyperfx」の検索では、hyperfx.ai ではなく HyperX のヘッドフォンが大半を占めます)。正確な検索結果ページを得るには、必ずブランド名にカテゴリを示す語句を組み合わせてください(<competitor> alternative、<competitor> reviews、<competitor> pricing、<competitor> vs <us>など)。 - Apify を利用するスクレイパーは断続的に失敗します。
instagram_scrape*、scrape_tiktok*、reddit_scrape*、google_trends_scrape、x_tweets_search、google_search_results_searchで、ときおり"fetch failed"や空の結果が返ることを想定してください。ソースが見つからないと報告する前に、少し待ってから一度再試行してください。スクレイパーが復旧しない場合も、ブリーフ全体を失敗させず、部分的な結果をユーザーに提示してください。
ワークフロー
フェーズ 1 — 競合セットを定義する
ユーザーに尋ねるか、情報から推定してください。
- ユーザーのドメイン — 比較の基準を定めるために必要です。
- 競合セット — 名前とドメインを 3~5 件。明確でない場合は、オーガニック検索上位の競合を提示してください。
hyperseo_competitors_searchに渡すのはユーザーのドメインではなく、ユーザーが上位表示を狙うキーワードです。そのため、まずユーザーのカテゴリにおける検索意図の強いキーワードを 3~5 個決めてから、次を実行してください。
hyperseo_competitors_search(
keywords=["<category keyword 1>", "<category keyword 2>", "<category keyword 3>"],
location_code=2840, # 2840=US, 2826=UK, 2124=CA, 2036=AU
limit=10
)
その後、提示したセットをユーザーに確認してから続行してください。推測してそのまま進めてはいけません。
- 目的 — このブリーフは何のためのものですか?目的によって内容が変わります。
- 営業用のバトルカード → ポジショニング、価格設定、「…と言われたときの返答」といった異議への対応に重点を置きます。
- マーケティング/経営チーム向けの週次ダイジェスト → 今週何が変わったかに重点を置きます。
- マーケティング向け比較ページの資料 → 客観的で比較可能な機能・価格データに重点を置きます。
- 取締役会/取締役会準備用の更新情報 → 全体的なポジション(シェア・オブ・ボイス、順位の変動、成長)に重点を置きます。
- 実施頻度 — 単発ですか、それとも定期的に実施しますか?定期的に実施する場合は、毎回の実行が妥当な時間内に完了するよう、対象ソースを絞り込みます。
ユーザーが #3 に回答できない場合は、いったん停止して尋ねてください。成果物が何かを知らずに情報を集めても、必ず無駄になります。
フェーズ 2 — ソースマトリクスを作成する
すべてのソースが、すべての競合他社や業務に関係するわけではありません。競合他社ごとに、どの情報源から取得するかを決めます。
| 競合他社のタイプ | 特に重要な情報源 |
|---|---|
| 直接競合の SaaS/B2B | サイト、ブログ、料金ページ、LinkedIn の企業投稿(利用可能な場合)、AI 検索の引用(hyperseo_ai_overviews_get)、ドメインランクの変化 |
| E コマース/DTC ブランド | サイト、商品カタログ(ecommerce_products_scrape)、商品レビュー(ecommerce_reviews_scrape)、Instagram、TikTok、Reddit のスレッド、Google Trends の関心度 |
| 消費者向け/クリエイターブランド | Instagram、TikTok、Twitter、YouTube(接続されている場合は YouTube ツールキット経由)、Reddit |
| コンテンツ主導/出版メディア | サイト、ブログ(全件クロール)、バックリンク履歴、AI 検索の引用、検索順位の推移 |
| 地域密着型/複数拠点 | サイト、「[ブランド] 近く」での Google 検索結果、Reddit/Twitter の評判、地域別の Google Trends |
ソースごとの詳細な手引き(利用するタイミング、わかること、注意点)は、references/source-by-source.md にあります。
フェーズ 3 — データを取得する
取得は順番に行い、すべてを並列で実行しないでください。順序はコストを抑えるうえでも、途中で得た結果を次の呼び出しに活用するうえでも重要です。
次の順序で実行します:
- 最も低コストから — HyperSEO のベースライン(競合他社ごとに 1 回呼び出し、ブリーフ内でデータを再利用します):
hyperseo_domain_overview_get(domain="<competitor>.com", location_code=2840)
hyperseo_domain_keywords_get(domain="<competitor>.com", limit=50, location_code=2840)
hyperseo_domain_intersections_search(
domain1="yourbrand.com",
domain2="<competitor>.com",
limit=50,
location_code=2840
)
- Firecrawl でサイトコンテンツを取得:
firecrawl_urls_scrape(url="https://<competitor>.com/pricing")
firecrawl_urls_scrape(url="https://<competitor>.com/")
firecrawl_branding_extract(url="https://<competitor>.com") # logo, colors, voice
ブログアーカイブ全体を詳しく調べる場合は、firecrawl_websites_crawl を 1 回実行し、firecrawl_crawls_status_check でステータスを確認します。Firecrawl の返却結果がほとんどない場合、JavaScript を多用する SPA である可能性があるため、web_pages_scrape(url=..., use_proxy=true, ai_query="extract pricing tiers and prices") に切り替えます。
- ソーシャル — プラットフォームごとに順番に実行(注意:ほとんどのスクレイパーは、単一のユーザー名ではなく 配列 の識別子を受け取ります):
instagram_scrape(direct_urls=["https://www.instagram.com/<competitor>/"], results_type="posts", results_limit=30)
instagram_followers_count_scrape(usernames=["<competitor>"]) # cheap, do it weekly
tiktok_videos_scrape(profiles=["<competitor>"], results_per_page=30)
x_tweets_search(from_user="<competitor_handle>", max_items=50)
# Only if scrape_linkedin_profiles is in your MCP tool list:
scrape_linkedin_profiles(urls=["https://www.linkedin.com/company/<competitor>"])
- 評判と需要:
reddit_scrape(searches=["<competitor>"], max_items=50, sort="new", time="month")
google_trends_scrape(
search_terms=["<competitor>", "yourbrand"],
time_range="today 3-m", # options: now 7-d, today 1-m, today 3-m, today 5-y, all
geo="US"
)
google_search_results_search(query="<competitor> reviews", num_results=20, country="us")
- AI 検索での可視性(通常は SaaS/B2B の場合のみ):
# AI Overview takes ONE keyword at a time + integer location_code
hyperseo_ai_overviews_get(keyword="<your category keyword>", location_code=2840)
# track_mentions runs the query against OpenAI / Claude / Perplexity and returns citations
hyperseo_mentions_track(
query="best <your category> tools",
brands=["<competitor>", "yourbrand"]
)
各フェーズが完了したら、途中結果を提示してください。すべての取得が終わるまで、ユーザーへの提示を待たないでください。
フェーズ 4 — 差分を確認する
このスキルの目的はスナップショットではなく、差分 です。競合他社ごとに、次の項目を比較します。
| ソース | 比較対象 |
|---|---|
| 料金ページ | 前回のスクレイピング結果(プラン名、価格、プラン上限の変更、新しい追加オプション) |
| ホームページのヒーローセクション | 前回のスクレイピング結果(新しいポジショニング文、新しい CTA、新しいロゴ) |
| ドメインランク | hyperseo_rank_history_get(domain=..., date_from=..., date_to=...) と過去 30/90 日間の比較 |
| ドメインキーワード | 新たに順位を獲得したキーワード、順位を失ったキーワード |
| ドメインの重複(相手 ∩ 自社) | 相手が順位を獲得していて、自社は獲得していないキーワード — コンテンツのギャップ |
| Instagram/TikTok | 前回の実行以降の投稿、フォロワー数の変化、エンゲージメント率の変化 |
| Twitter/Reddit | 前の期間と比較した言及数 |
| AI 検索の引用 | 前回の実行以降に新たに引用された AI Overview |
初回の実行では、比較対象となる「前回」のデータはありません。ブリーフの差分セクションには「ベースラインを確立しました。次回の実行時にこれと比較します」と記載します。1 日目からインサイトが得られると誤解されないよう、この点をユーザーに明確に伝えてください。
フェーズ 5 — ブリーフ
情報を成果物にまとめます。用途に応じたブリーフの形式は以下のとおりです(テンプレート全文は references/brief-templates.md を参照してください)。
- バトルカード — 競合他社ごとに 1 ページ:ポジショニングの要約、競合他社の最も強い主張 3 件、自社側からの対抗主張 3 件、よくある反論と回答、勝敗の傾向。
- 週次ダイジェスト — 全競合他社を対象に合計 1 ページ:競合他社ごとに今週の変更点を箇条書きにし、重要度順に並べます。
- 比較ページ用インプット — 機能マトリクス表、価格表、プランの上限表。すべてに URL とタイムスタンプを付けます。
- 取締役会準備用アップデート — 期間中のシェア・オブ・ボイス、順位の変動、コンテンツの公開ペース、感情の傾向。
すべてのブリーフに適用する出力基準:
- すべての主張に出典とタイムスタンプを必ず付けます。 「競合他社 X は Pro ティアの価格を $79 から $99 に引き上げました(価格ページ、2026-04-29)」は、「X は値上げしました」よりも適切です。
- 中立的な表現を使います。 ブリーフを読んだ人が自分で結論を導き出せるようにします。
- 観察と解釈を区別します。 解釈には明示的なラベルを付けます。「観察:『請求書の自動化』で過去 30 日間に順位が 12 位下がりました。考えられる解釈:…」
- 「重要な事項」の順位付きリストを冒頭に 1 つ置きます。 それ以外の情報はその下に配置します。ほとんどの読者は最初の 3 項目までしか読みません。
フェーズ 6 — 定期的なモニタリング(任意)
一度きりではなく継続的なモニタリングをユーザーが希望する場合:
- ソースマトリクスと競合他社のリストを、永続的に保管できる場所に保存します(
bigquery_*、Notion、Sheets のタブ、またはユーザーのプロンプトテンプレート内に直接記載)。 - 定期的にデータ取得を再実行するようエージェントをスケジュールします。週次が最適です。日次ではノイズが多すぎ、月次では動きの速い変化を見逃します。
- 特に指定がなければ、ブリーフの形式は週次ダイジェストとし、重要な変化があった場合は詳細なブリーフに切り替えられるようにします。
参考ワークフロー
| 参考資料 | 読むタイミング |
|---|---|
references/source-by-source.md | ソースごとのプレイブック。各スクレイパー/HyperSEO 呼び出しで分かること、利用するタイミング、注意点(レート制限、JavaScript のレンダリングに関する問題、キャッシュ期間、クレジットコスト)を説明します。 |
references/brief-templates.md | バトルカード、週次ダイジェスト、比較ページ、取締役会準備用のテンプレート。記入例と出力構成を掲載しています。 |