mcpField
P
product-research

product-research

github.com/alexander-zuevマーケティング・グロース0430 回インストール今日更新
リポジトリ

product-research について

product-researchは、ニッチ市場の機会を探すプロダクト開発者向けのリサーチスキルです。Redditで課題を調査し、需要の新しさや既存製品、競合レビューを確認して、定められた基準で案を評価します。

主な機能

  1. 01Redditコミュニティの課題調査
  2. 02需要の新しさと既存製品の確認
  3. 03競合レビューと機能不足の分析
  4. 04複数の基準によるアイデア評価
  5. 05根拠ソースとスレッドURLの記録

活用シーン

  1. 01対象ユーザー向けの製品機会探し
  2. 02コミュニティで繰り返すニーズの検証
  3. 03既存ツールの不足点の比較
  4. 04開発上の制約に沿った案の絞り込み

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alexander-zuev/agent-skills --skill product-research

インストール後、Claude Code で/product-researchを入力して読み込まれたか確認します。

詳細

プロダクトのリサーチとアイデアの検証

このスキルでできること

対象ニッチ市場で、プロダクトの機会を見つけて検証する2段階のリサーチプロセスです。

  • 第1段階(Reddit): 実際のコミュニティでの会話から、未加工の悩み、不満、ツールへの要望を収集します
  • 第2段階(裏付け調査): 情報の鮮度を確かめ、既存のソリューションを調べ、競合製品のレビューを読み、現在もその悩みが存在するかを確認します

入力

ユーザーが指定する項目:

  • ニッチ市場/対象ユーザー(例:「Amazon FBAの出品者」「Shopifyのストアオーナー」「フリーランスのデザイナー」)
  • 任意の制約(例:「個人開発」「シンプルに開発できるものがよい」「B2Bのみ」)

第1段階:Redditコミュニティのリサーチ

ブラウザーのセットアップ

必ず playwright-cli open --headed --persistent を使用してください。 両方のフラグが必要です。どちらかが欠けていると、Redditにブロックされます。headed を指定するとヘッドレス検出を回避でき、persistent を指定するとログインCookieが保持されます。

フェーズ1:コミュニティの特定(1分)
  1. ブラウザーを開きます:playwright-cli open --headed --persistent
  2. Redditにアクセスし、そのニッチ市場に関連する上位2~3件のサブレディットを特定します
  3. 優先順位を決めるため、登録者数を確認します(多い順)
フェーズ2:全体像の調査(サブレディットごとに3~5分)

各サブレディットで、JS evalを使って人気投稿を抽出します(スナップショットの解析は使用しません)。

# Navigate to top posts
playwright-cli goto "https://www.reddit.com/r/{subreddit}/top/?t=year"

# Extract titles + metadata in one shot
playwright-cli eval "JSON.stringify([...document.querySelectorAll('a[href*=\"/comments/\"]')].map(a => ({title: a.textContent?.trim()?.slice(0,150), href: a.href})).filter(x => x.title && x.title.length > 20 && !x.title.includes('Skip') && !x.title.includes('Navigate')).reduce((acc, x) => { if (!acc.seen.has(x.href)) { acc.seen.add(x.href); acc.result.push(x); } return acc; }, {seen: new Set(), result: []}).result.slice(0, 25))"

最近の傾向を把握するため、t=month でも繰り返します。

時期の偏りに注意してください。2026年を2025年より優先します。2024年より前のスレッドは背景情報としてのみ扱い、主要な根拠にはしないでください。

フェーズ3:スレッドの詳細調査(スレッドごとに2~3分)

シグナルの強いスレッドを4~5件読み、コメントを抽出します。

playwright-cli eval "JSON.stringify([...document.querySelectorAll('[id*=\"comment\"] p, article p')].map(p => p.textContent?.trim()).filter(t => t && t.length > 25).slice(0, 35))"

コメントで確認する点:

  • 既存ツールへの不満(「Xは使いにくい」「XではYができない」)
  • 明確な要望(「こんなものがあればいいのに……」「こういうツールを知っている人はいますか?」)
  • ユーザーが説明している回避策(手作業でのプロセスは自動化の機会です)
  • 繰り返し現れる不満(複数のスレッドで同じ問題が挙がっていれば、確度が高まります)
  • ツールの推奨と、それでは不十分な理由

すべてのデータポイントについて、情報の鮮度を記録してください。

  • 各スレッド/コメントの経過期間を記録します(Redditには「Xか月前」「X年前」のように表示されます)
  • 12か月より古いものには、情報が古くなっている可能性があることを示します
  • 同じ悩みを扱う最近のスレッド(3か月未満前)は、強いシグナルです
  • 最近の同様のスレッドが見つからない古いスレッドは、問題が解決済みか、関連性がなくなっている可能性があります
フェーズ4:絞り込んだ検索(必要な場合のみ、2分)

フェーズ2~3で全体像を把握した後に限り実施します。一般的な「こんなツールがあればいいのに」という検索ではなく、すでに見られたパターンに基づいて、情報を踏まえた検索クエリを使います。

playwright-cli goto "https://www.reddit.com/r/{subreddit}/search/?q={informed_query}&sort=relevance&t=all"
フェーズ5:第1段階の調査結果をまとめる

第2段階に進む前に、スレッドのURLと情報の鮮度を示すタグを付けて、悩みの生データ一覧を作成します。


第2段階:裏付けと検証

第1段階で得た上位5~7件のアイデアについて、外部の情報源を使って検証します。「Redditで誰かが不満を述べていた」という話と、「実在し、現在も需要があるのに十分なサービスが提供されていない市場」とを区別するための段階です。

2A:情報の鮮度を確認

それぞれのアイデアについて、次の点を確認します。この悩みは今日も続いているでしょうか。それとも、すでに解決済み、あるいは無関係になっているでしょうか。

  • 同じ悩みについて、直近3か月の投稿を検索します
  • 悩みが古いもの(例:2019年にPPCが問題だった)なら、2025~2026年のスレッドにも同じ不満があるか、新しいツールによって解決されたかを確認します
  • 「Xに乗り換えたら解決した」というコメントを探します。そうしたコメントがある場合、問題はすでに解決されている可能性があります
2B:既存ソリューションの調査

各アイデアについて、すでに存在するものを調べます。

# Search for existing tools
playwright-cli goto "https://www.google.com/search?q={niche}+{pain_point}+tool+OR+software+OR+app"

# Check review sites
playwright-cli goto "https://www.g2.com/search?query={tool_name}"
playwright-cli goto "https://www.capterra.com/search/?query={tool_name}"

記録する項目:

  • ツール名、価格、評価
  • レビューで多く見られる不満(1~2つ星のレビューは、満たされていないニーズが分かるため特に重要です)
  • レビュアーが挙げている機能の不足
  • 「Xから乗り換えた理由は……」というコメント
2C:競合の弱点分析

上位3件のアイデアについて、既存ソリューションの1つ星および2つ星のレビューを読みます。

# Extract review text
playwright-cli eval "JSON.stringify([...document.querySelectorAll('[class*=\"review\"] p, [class*=\"Review\"] p, [data-testid*=\"review\"] p')].map(p => p.textContent?.trim()).filter(t => t && t.length > 30).slice(0, 20))"

低評価レビューに見られる主なパターン:

  • 「機能に対して高すぎる」→ 価格面で競争する機会
  • 「UIが使いにくい/操作が難しい」→ UX改善の機会
  • 「Xの機能がない」→ 機能面のギャップを埋める機会
  • 「サポートがひどい」→ サービス改善の機会
  • 「何年も更新されていない」→ 放置されたプロダクトに代わる機会
2D: 市場規模のシグナル

有望なアイデアごとに簡単に確認します。

  • 主な既存ツールを Google で検索し、料金ページでプランの段階を確認します(市場の成熟度がわかります)。
  • Chrome ウェブストアで関連する拡張機能を確認します(インストール数は市場規模の目安になります)。
  • ProductHunt で類似のローンチを確認します(コメントから反応がわかります)。

スコアリングの枠組み

要素123
課題の深刻度(P)あれば便利週に数時間を節約収益や存続に不可欠
確信度(C)言及が1~2件スレッドが3~5件+賛成票繰り返し見られる話題で、複数の情報源がある
実現の容易さ(E)複雑なオーケストレーション、多数の連携標準的なウェブアプリ、一部 API 作業ありシンプルな SaaS、数週間で MVP を開発可能
宣伝のしやすさ(M)リーチが難しい、エンタープライズ向けの販売ニッチなコミュニティ、口コミReddit/YouTube/SEO と自然に相性がよく、拡散の可能性がある
TAM(T)ニッチ市場の一部活動中のメンバーの大半ニッチ市場の全員
新しさ(F)補正値:古いスレッドのみなら0.5倍、混在なら1倍、現在注目されているなら1.5倍

スコア = P x C x E x M x T x F(高いほど良い)

ユーザーの制約に応じた調整:

  • ユーザーが「solo dev」または「作りやすい」と言った場合 → 実現の容易さの比重を上げます(E に1.5を掛けます)。
  • ユーザーが「複雑でも問題ない」と言った場合 → 実現の容易さを理由に減点しません。
  • ユーザーが収益モデルを指定した場合 → スレッドから支払い意思のシグナルを考慮します。

出力形式

# {Niche} App Ideas — Research Report

**Date:** YYYY-MM-DD
**Pass 1 Sources:** {subreddits with member counts}
**Pass 2 Sources:** {review sites, competitor tools checked}

## Scoring Framework
{table}

## Ranked Ideas

### 1. [Idea Name] — Score: X (P:X C:X E:X M:X T:X F:X)

**Problem:** What the audience is struggling with

**Freshness:** {ACTIVE / STALE / EMERGING} — {one-line justification, e.g., "3 threads in last 2 months, complaints intensifying due to 2026 fee changes"}

**Evidence (Reddit):**
- [Thread title](https://reddit.com/r/.../comments/...) — "key quote" (X upvotes, Y comments, Z ago)
- [Thread title](https://reddit.com/r/.../comments/...) — "key quote" (X upvotes, Z ago)

**Existing solutions & gaps:**
- {Tool} (${price}/mo, {rating} on G2) — Gap: "{what users complain about}"
- {Tool} (${price}/mo) — Gap: "{missing feature}"

**Opportunity angle:** What specifically to build differently
**MVP scope:** What v1 looks like + rough timeline

### 2. ...

## Top 3 Recommendation
{Brief rationale for the top picks given user's constraints}

動作ルール

  1. アクションの間に短いランダムな間隔を入れます:ナビゲーションの間に sleep $((RANDOM % 2 + 1)) を実行します。
  2. データの抽出にはスナップショットの解析ではなく、JS eval を使います — 10倍速く、信頼性も高くなります。
  3. まずは自然な形で閲覧します — 検索する前に人気の投稿を読み、状況を把握します。
  4. 文字どおりすぎる検索クエリは避けます — 人々は「X を作ってほしい」とは書きません。不満を述べたり、代替案を尋ねたり、回避策を説明したりします。
  5. タイトルだけでなくコメントも読みます — タイトルはクリックベイトで、コメントに本当の課題が書かれています。
  6. スレッドの経過期間を必ず記録します — 最近の言及がない3年前の課題は、すでに解決されている可能性があります。
  7. スコアを付ける前に裏付けを取ります — Reddit はシグナルを示し、Pass 2 は確信を深めます。Reddit だけを根拠に高く評価しないでください。
  8. 終了したらブラウザーを閉じます — playwright-cli close
  9. Pass 1 で10~15個のアイデアを目標にし、Pass 2 で上位5個を詳しく調べます — ニッチ市場ごとの合計所要時間が約30分を超えると、追加調査の効果は薄れます。
  10. 必ず --headed --persistent を使います — ユーザーは操作を見たいと考えており、セッションも維持されます。
  11. スレッドの URL を必ず含めます — すべての根拠に情報源へのリンクを付け、ユーザーが自分で確認できるようにします。

コメント