皆さんこんにちは、横浜で清掃業をしているヤスです。
前回は【Dify中級】1on1メモを貼るだけ!部下の成長課題分析+次回質問リスト+育成アクションプランを全自動生成
のアプリを作りましたね。今回はこちらです。
1. スタートアップの競合調査・ピッチ準備に6時間かかる問題を解決します
スタートアップを始めようとしている人・新規事業を提案したい人なら誰もが経験する時間のかかる作業があります。競合調査に2時間・市場規模の調査に1時間・ピッチ資料の構成を考えるのに3時間…合計6時間以上かかります。このアプリはその作業を数分に短縮します。
今回紹介する「ピッチ要約自動生成くん」は、事業アイデアを入力するだけで以下を全自動生成します。
- 競合スタートアップ5社以上の自動収集(企業名・特徴・強み・弱み・参入できる隙間)
- 市場規模のTAM・SAM・SOM3層分析(根拠付き・推定値表記)
- 差別化ポイント3点と市場参入の注意点
- 投資家が聞きたい5つのポイント(Problem・Solution・Market・Traction・Ask)
- 想定Q&A3問(投資家からのツッコミ対策)
- エレベーターピッチ(30秒で言える100〜150字の文章)
実際に「中小企業向けAI経費精算SaaS・プロトタイプ段階・シードラウンド」でテストしたところマネーフォワード・楽楽精算・freee・ジョブカン・TOKIUMの5社の競合分析と「中小企業の経理担当者が毎月3時間費やす経費精算をスマホ撮影だけで解決する」というエレベーターピッチが数分で完成しました。
2. このアプリの最大の特徴:Jina AI検索APIでリアルタイムに競合を調査する
このアプリが他のピッチ支援ツールと最も違う点は「検索APIでリアルタイムに競合情報を取得する」ことです。
| 比較 | 通常のAIツール | このアプリ(Jina AI連携) |
| 競合情報の鮮度 | 学習データ時点の情報 | リアルタイムの検索結果 |
| 競合の特定 | AIの記憶に頼る | 実際のWebページから収集 |
| APIキー | 不要 | Jina AIの無料キーが必要 |
| 処理時間 | 数秒 | 2〜3分(検索に時間がかかる) |
💡 Jina AIの検索API(s.jina.ai)は無料プランでAPIキーを取得できます。https://jina.ai/ でGoogleアカウントでサインアップするだけで即取得できます。
3. 実際の出力サンプル
🚀 ピッチ要約レポート 業界:経費精算 SaaS フィンテック ステージ:プロトタイプ段階 📊 市場規模(推定) TAM:約500億円(日本の経費精算市場全体) SAM:約150億円(中小企業向け市場) SOM:約30億円(初年度獲得目標) 市場トレンド:成長(デジタル化・リモートワーク普及) 🏢 競合5社 マネーフォワード:既存連携強み・中小カスタマイズに限界 楽楽精算:価格安い・高機能には物足りない freee:スタートアップ人気・大企業機能不足 ジョブカン:ワークフロー柔軟・UI改善余地あり TOKIUM:AI機能高度・知名度低い 💡 差別化3点 ①スマホ撮影だけでAIが自動処理する手軽さ ②中小企業特化のカスタマイズ機能 ③シンプルなUI/UX設計 ⚡ エレベーターピッチ(30秒版) 「中小企業の経理担当者が毎月3時間も費やす 経費精算の負担を、スマホでの撮影だけで AIが自動処理するSaaSで解決します。 市場は約150億円。中小企業向けカスタマイズと シンプルなUI/UXで競合と差別化します」
4. 【正直レポート】発生したエラーの全記録
失敗①:Jina AI検索APIで401エラー
Request failed with status code 401 原因: s.jina.ai(検索API)は以前は無料・APIキー不要だったが 現在は認証が必要になっている 解決方法: ① https://jina.ai/ でGoogleアカウントでサインアップ ② ダッシュボードでAPIキーを取得 (jina_xxxxxxxxxx という形式) ③ HTTPリクエストのヘッダーに追加: Authorization → Bearer jina_xxxxxxxxxx
失敗②:GPT-4oで429 Rate Limit Errorが発生
Request too large for gpt-4o Limit 30000, Requested 119280 tokens 原因: Jina AIの検索結果が大量のテキストで返ってきて GPT-4oのトークン制限(30,000TPM)を大幅に超えた 解決方法: LLM①の前にコード実行ブロックを追加して 検索結果を先頭3,000字に削る Pythonコード: def main(search_result1, search_result2): trimmed1 = search_result1[:3000] trimmed2 = search_result2[:3000] return {“trimmed1”: trimmed1, “trimmed2”: trimmed2} → LLM①の変数参照を HTTPリクエスト.body から コード実行.trimmed1/2 に変更する
💡 429エラーはJina AIの検索結果が想定以上に大きかったことが原因です。コード実行ブロックでデータを削ることで解決しました。このブロックはデータの前処理に非常に有効です。
5. 全体のブロック構成
| # | ブロック名 | 種類 | 役割 |
| 1 | ユーザー入力 | 開始 | 事業アイデア・ターゲット・課題・解決法・業界を入力 |
| 2 | 競合調査 | HTTPリクエスト① | Jina AI検索で類似スタートアップを自動収集 |
| 3 | 市場規模調査 | HTTPリクエスト② | Jina AI検索で市場規模データを自動収集 |
| 4 | データ削減 | コード実行 | 検索結果を先頭3,000字に削って429エラーを防ぐ |
| 5 | 競合・市場分析 | LLM① | TAM/SAM/SOM・競合5社・差別化ポイントを生成 |
| 6 | ピッチサマリー生成 | LLM② | 5ポイントピッチ・想定Q&A・エレベーターピッチを生成 |
| 7 | 最終整形 | テンプレート変換 | 全レポートを1つにまとめる |
| 8 | 出力 | 終了 | 最終レポートを出力 |
6. 事前準備|必要なものはこれだけ
- Difyのアカウント(無料プランOK)
- OpenAIのAPIキー(GPT-4oが使えるプラン)
- Jina AIのAPIキー(無料・https://jina.ai/ で取得)
- 事業アイデアの概要(箇条書きでOK)
- 所要時間:60〜90分
⚠️ Jina AI検索APIのURLは s.jina.ai です。以前の記事で使ったURL読み取り用の r.jina.ai とは異なります。s=Search(検索)・r=Reader(読み取り)と覚えてください。
7. 【作り方】ステップごとに丁寧に解説
STEP 1|新しいワークフローアプリを作成する
- Difyにログインして「アプリを作成」をクリック
- 種類は「ワークフロー」を選ぶ
- アプリ名に「ピッチ要約自動生成くん」と入力
- 「作成する」をクリック
STEP 2|開始ブロックを設定する(変数7つ)
| 変数名 | 表示名 | 種類 | 必須 |
| idea | 事業アイデア | テキスト(長文) | ✅ 必須 |
| target | ターゲット顧客 | テキスト(短文) | ✅ 必須 |
| problem | 解決する課題 | テキスト(長文) | ✅ 必須 |
| solution | 解決方法 | テキスト(長文) | ✅ 必須 |
| industry | 業界・カテゴリ | テキスト(短文) | ✅ 必須 |
| stage | 現在のステージ | セレクトボックス | ✅ 必須 |
| funding | 求める資金調達額 | セレクトボックス | 任意 |
STEP 3|HTTPリクエスト①②を設定する
💡 DifyのHTTPリクエストブロックの基本設定はこちらの記事で詳しく解説しています
【Dify】スプレッドシート連携・完結編!HTTPリクエストでデータを飛ばそう
HTTPリクエスト①(競合調査)のURL:
HTTPリクエスト②(市場規模調査)のURL:
両方のブロックに以下のヘッダーを設定してください。
| キー | 値 |
| Accept | application/json |
| X-Return-Format | text |
| Authorization | Bearer jina_xxxxxxxxxx(取得したAPIキー) |
⚠️ AuthorizationヘッダーはHTTPリクエスト①②の両方に設定してください。片方だけでは401エラーになります。
STEP 4|コード実行ブロックを追加する(429エラー対策)
HTTPリクエスト②とLLM①の間にコード実行ブロックを追加します。
def main(search_result1, search_result2): trimmed1 = search_result1[:3000] trimmed2 = search_result2[:3000] return {“trimmed1”: trimmed1, “trimmed2”: trimmed2}
| 入力変数名 | 参照先 |
| search_result1 | HTTPリクエスト①.body |
| search_result2 | HTTPリクエスト②.body |
出力変数:trimmed1(String)・trimmed2(String)の2つを追加してください。
💡 このコード実行ブロックがなければLLM①は119,280トークンのデータを受け取ってしまい429エラーになります。3,000字に削るだけで解決します。
STEP 5|LLM①②を設定する
LLM①の変数参照で重要なポイントがあります。
LLM①の変数参照: – 類似スタートアップ情報:{{コード実行.trimmed1}} – 市場規模データ:{{コード実行.trimmed2}} ↑ HTTPリクエスト①②.bodyではなく コード実行.trimmed1/2を参照する点に注意
LLM②ではLLM①の引き継ぎメモを参照して一貫性のある分析を生成します。
LLM②の変数参照: – 競合・市場分析:{{LLM1.text}} 引き継ぎメモの活用: ・市場の魅力度→Market セクションに反映 ・差別化ポイント→Solution セクションに反映 ・投資家が気にするポイント→想定Q&Aに反映

8. テスト実行と確認ポイント
| 項目 | 入力内容 |
| idea | 中小企業向けAI経費精算SaaS。領収書をスマホ撮影するだけで自動分類・申請まで完結 |
| target | 従業員50〜300名の中小企業の経理担当者 |
| problem | 経費精算に月3時間・手入力ミスが多い・紙の領収書管理が煩雑 |
| solution | スマホ撮影→AI自動抽出→承認ワークフローまで自動化 |
| industry | 経費精算 SaaS フィンテック |
| stage | プロトタイプ段階(試作品あり) |
| funding | 500万〜3,000万円(シードラウンド) |
⚠️ 処理時間は2〜3分かかります。HTTPリクエスト①②の検索に各25秒程度・LLM①②の生成に各30〜60秒程度が目安です。タイムアウトエラーが出た場合は再実行してください。
9. よくある質問(FAQ)
Q1. Jina AIのAPIキーは有料ですか?
無料プランで取得できます。https://jina.ai/ でGoogleアカウントでサインアップするだけで即時発行されます。無料プランの利用制限はありますが個人利用・学習用途であれば十分です。
Q2. 競合調査の精度はどのくらいですか?
Jina AIがリアルタイムで検索した結果を使うため学習データの時点ではなく現在の競合情報が反映されます。ただし検索キーワードの設定や市場によって精度は変わります。重要な意思決定の前には必ず一次情報を確認してください。
Q3. 429エラーが出た場合はどうすればいいですか?
コード実行ブロックのデータ削減コードが正しく設定されているか確認してください。search_result1・search_result2の入力変数がHTTPリクエスト①②のbodyを参照しているか・trimmed1・trimmed2の出力変数が設定されているかを確認します。
Q4. 市場規模の数値はどの程度信頼できますか?
AIが推定した概算値です。投資家へのプレゼンには必ず公的統計・調査会社のレポートで裏付けを取ってください。このアプリは「ピッチの骨格を素早く作る」ためのツールです。
10. まとめ
- 事業アイデアを入力するだけでJina AI検索が競合5社以上を自動収集・TAM/SAM/SOM3層の市場規模分析を生成
- 投資家が聞きたい5つのポイント(Problem/Solution/Market/Traction/Ask)と30秒エレベーターピッチが自動生成
- s.jina.aiの検索APIは無料APIキーで使えるがAuthorizationヘッダーへの設定が必須
- Jina AIの検索結果が大きすぎて429エラーになる場合はコード実行ブロックで先頭3,000字に削る
- 処理時間は2〜3分かかるが競合調査6時間が数分に短縮される
スタートアップを目指す人・新規事業を提案したい人・ピッチコンテストに参加する人全員に使っていただけるアプリです。競合調査の時間を削減してアイデアをブラッシュアップする時間に使ってください。
今回もちょこちょことエラーがでましたが、そんなにはまらず解決できました!
エラーも解説してるので皆さんは簡単に作れそうですね。
次におすすめの記事
【GAS実践】コピペ卒業!文字の結合と見積もり計算をやってみよう
xもやってるので良かったら見に来てください
次回も是非お楽しみに!


コメント