過去の提案書から類似案件の骨子を検索して再利用する
新しい案件の条件(業種、課題、予算規模、提案する製品)を入力に、過去の提案書ファイルの中から条件の近いものを検索し、その構成(見出し立て)と、流用できる箇所を提示させます。
- 利用ツール
- Amazon Kendra/Azure AI/Azure OpenAI Service/ChatGPT/Claude/Gemini/Google Vertex AI/OpenSearch
- 対象業界
- IT・SaaS/広告/建設
- 対象部門
- 営業
- 対象業務
- 情報検索/書類作成
- 主な課題
- 属人化している/情報が見つからない/書類作成に時間がかかる
- AIで行う処理
- 検索(RAG)
- 主な効果
- 品質標準化/属人化解消/工数削減
- 導入難易度
- ★★★★☆
- 実装レベル
- 半自動化
- 費用感
- 個別開発(大)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 新しい案件の提案依頼を受ける
- 「似た案件を過去にやった気がする」と思い、SharePointのフォルダを開く
- フォルダ名と日付を頼りに、当たりをつけて開く。中身が違う。閉じる
- 何度か繰り返して諦め、社内チャットで「◯◯業界の提案書を持っている人はいますか」と聞く
- 返事が来るまで待つ。来ないこともある
- 結局、直近で自分が作った提案書を下敷きにして書き始める
- 構成を組み、本文を書く
- 営業担当が、案件の条件を入力する(業種、課題、予算規模、提案製品。2〜3分)
- 自動条件をもとに、過去提案の中から類似する5件を検索する
- 自動各提案について、見出し構成、提案の骨子、受注/失注の結果を並べて示す
- 自動5件に共通する構成をもとに、今回の提案書の見出し案を作る
- 人営業担当が、示された過去提案を開いて中身を確認する
- 人見出し案を調整し、本文を書く
各工程の詳しい説明を読む
- 新しい案件の提案依頼を受ける
- 「似た案件を過去にやった気がする」と思い、SharePointのフォルダを開く
- フォルダ名と日付を頼りに、当たりをつけて開く。中身が違う。閉じる
- 何度か繰り返して諦め、社内チャットで「◯◯業界の提案書を持っている人はいますか」と聞く
- 返事が来るまで待つ。来ないこともある
- 結局、直近で自分が作った提案書を下敷きにして書き始める
- 構成を組み、本文を書く
問題は3つあります。
(a)ファイル名検索が効かない。 「株式会社◯◯様_ご提案書_v3_最終.pptx」という名前からは、中身が製造業向けなのか小売向けなのかが分かりません。全文検索をかけても、PowerPointの図中テキストは拾えないことがあります。
(b)探せないので、探さない。 50分かけて見つからない経験を何度かすると、探すこと自体をやめます。結果、社内に3,000件の資産があっても、各担当が使うのは自分が過去に作った10件程度です。
(c)品質が担当ごとに固定される。 提案が通った資料と通らなかった資料が同じフォルダに並んでいるため、「勝ちパターン」が共有されません。
- 営業担当が、案件の条件を入力する(業種、課題、予算規模、提案製品。2〜3分)
- 【自動】 条件をもとに、過去提案の中から類似する5件を検索する
- 【自動】 各提案について、見出し構成、提案の骨子、受注/失注の結果を並べて示す
- 【自動】 5件に共通する構成をもとに、今回の提案書の見出し案を作る
- 【人】 営業担当が、示された過去提案を開いて中身を確認する
- 【人】 見出し案を調整し、本文を書く
自動化されるのは「探す」と「構成を組む」の一部です。本文作成は自動化しません。 提案書は顧客に提出する文書であり、内容の責任は営業担当が負うためです。
02今回想定するシステム構成
【準備フェーズ(初回のみ・以後は定期実行)】 SharePoint の提案書 3,000ファイル │ ▼ テキスト抽出(PowerPoint / Word / PDF) │ ▼ 分割(スライド単位・章単位)+ メタデータ付与 (業種 / 提案製品 / 金額帯 / 受注失注 / 作成日 / 担当者) │ ▼ 埋め込みベクトル化 → 検索インデックスへ格納 (Azure AI Search / Vertex AI Search / OpenSearch など) 【利用フェーズ】 営業担当が案件条件を入力 │ ▼ ハイブリッド検索(ベクトル検索+キーワード検索) + メタデータでの絞り込み(業種・金額帯・受注のみ 等) │ ▼ 上位5件を取得 │ ▼ LLM API ── 構成の要約と、今回向けの見出し案を生成 │ ▼ 検索結果画面(元ファイルへのリンク付き)──【人が確認】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ファイル保管 | SharePoint | Google Drive、Box |
| 検索基盤 | Azure AI Search | Vertex AI Search、Amazon Kendra、OpenSearch |
| 生成AI | Claude API | OpenAI API、Gemini API、Azure OpenAI Service |
| 画面 | Microsoft Teams アプリ | 社内Webアプリ、Slackアプリ |
Microsoft 365 中心の環境なら Azure AI Search、Google Cloud 中心なら Vertex AI Search のほうが権限連携と運用が素直になります。まず自社がどちらの環境かで決めてください。
03どうやって実装するのか
処理の起点を決める
利用フェーズは営業担当の検索操作が起点です。
準備フェーズは、初回の一括取り込みと、その後の定期実行(週1回、新規追加分のみ)に分かれます。ファイル追加のたびにリアルタイムで取り込む必要はありません。
入力データを集める
準備フェーズで取り込むもの:
| データ | 中身 | 取得元 |
|---|---|---|
| 提案書の本文 | スライドのテキスト、ノート欄、表 | SharePoint のファイル |
| 業種・製品 | 提案先の業種、提案した製品 | CRMの案件レコードと突合 |
| 金額帯 | 提案金額 | CRM |
| 受注/失注 | 結果 | CRM |
| 作成日・担当者 | ファイルのプロパティ |
利用フェーズで受け取るもの: 案件の業種、顧客の課題(自由記述)、想定予算帯、提案する製品。
データの取得方法を決める
ファイルの取得: Microsoft Graph API で SharePoint のドキュメントライブラリを走査し、ファイルをダウンロードします。
テキスト抽出: ファイル形式ごとに処理が変わります。
- PowerPoint … スライドのテキストフレームとノート欄を抽出します。図形内の文字や画像化されたテキストは取れない場合があります
- Word … 本文と表を抽出します
- PDF … テキストPDFならそのまま、スキャンPDFはOCRが必要です
この工程が、この構成でもっとも手間がかかる部分です。 3,000ファイルの中に、テキストが取れないファイルが一定数含まれます。まず100ファイルで抽出を試し、何割が取れるかを測ってから全体に進めてください。
メタデータの突合: ファイル名や格納フォルダから顧客名を推定し、CRMの案件レコードと突き合わせます。ここは完全一致しません。突合できなかったファイルは、業種・受注失注が不明のまま取り込み、検索の絞り込み対象から外します。
AIへ渡す前に整形する
- 分割 … 提案書1ファイルをまるごと1つのベクトルにすると、検索精度が出ません。スライド単位、または章単位に分けます。「課題整理」「提案内容」「体制」「費用」といった章ごとに分けると、章単位での流用がしやすくなります
- 不要スライドの除外 … 表紙、目次、会社概要、免責事項は、どの提案書にも同じ内容が入っています。これを残すと、検索結果が会社概要スライドで埋まります
- メタデータの付与 … 各断片に、業種・製品・金額帯・受注失注・作成日を付けます。これが後の絞り込みに効きます
- 古い資料の扱い … 3年以上前の提案書は、製品仕様も価格も変わっています。除外するか、検索結果に「古い資料です」と表示します
AIに処理させる
2段階に分かれます。
第1段階(検索): LLMではなく、検索エンジンの仕事です。案件条件をベクトル化し、キーワード検索と組み合わせたハイブリッド検索で上位を取ります。ハイブリッド検索は、意味の近さ(ベクトル)と語句の一致(キーワード)の両方を使って順位を付ける方式です。製品名や業界用語のように、表記が一致することが重要な語を取りこぼさないために使います。
第2段階(要約と骨子作成): 取得した5件について、LLMに次をさせます。
- 各提案書が「どんな課題に対して、何を提案したか」を3行で要約する
- 5件に共通する見出し構成を抽出する
- 今回の案件条件に合わせた見出し案を作る
- 各見出しについて、どの過去提案のどの部分が流用できるかを示す
指示内容を固定する
あなたは提案書の作成を支援する担当者です。
以下は、今回の案件条件と、社内の過去提案から検索された5件の抜粋です。
【厳守事項】
- 提案書の本文を書かないでください。見出し構成と、流用元の指摘までです。
- 抜粋に書かれていない実績、事例、数値を作らないでください。
- 各見出しについて、流用元となる提案書のファイル名と該当箇所を必ず示してください。
示せない見出しは提案しないでください。
- 失注した提案からの流用を提案する場合は、その旨を明記してください。
- 抜粋の内容が今回の案件条件と合わない場合は、
「該当する過去提案が見つかりませんでした」と返してください。
無理に関連づけないでください。
【今回の案件条件】
業種: {industry} / 課題: {issue} / 予算帯: {budget_range} / 提案製品: {product}
【検索された過去提案(5件)】
{retrieved_documents}
「示せない見出しは提案しないでください」が重要です。 これを書かないと、AIは一般的な提案書の型(「課題整理・解決策・体制・スケジュール・費用」)を返してきます。それは社内の資産を使っていないので、この構成の意味がありません。
出力形式を固定する
{
"similar_proposals": [
{
"file_name": "",
"file_url": "",
"summary": "",
"outcome": "受注 | 失注 | 不明",
"created_at": "",
"relevance_note": ""
}
],
"suggested_outline": [
{
"heading": "",
"purpose": "",
"source_file": "",
"source_section": ""
}
],
"no_match": false
}
file_url を必ず返させ、画面から元ファイルを直接開けるようにします。AIの要約だけを読んで提案書を書かせないためです。 要約は「開くべきファイルを選ぶため」の情報であり、中身は人が確認します。
システムへ連携する
検索結果はTeamsアプリまたは社内Webアプリに表示します。CRMへの書き戻しはしません。この構成は、営業担当が資料を探すための道具です。
ただし、どの過去提案が何回参照されたかは記録します。よく参照される提案書は、社内の標準テンプレートに昇格させる候補になります。
人が確認する
全件、人が確認します。 AIが提示するのは候補であり、採用の判断は営業担当が行います。
特に次の2点は必ず人が見ます。
- 提示された過去提案が本当に類似案件か … ベクトル検索は「なんとなく似ている」ものを返します。業種が同じでも、課題がまったく違うことがあります
- 流用する内容が現在も有効か … 2年前の提案に書かれた製品仕様、価格、体制は、現在と違う可能性があります
例外に対処する
| 起きること | 対応 |
|---|---|
| 類似案件が1件も見つからない | no_match: true を返し、「該当なし」と表示する。無関係な提案書を並べない |
| 検索上位が会社概要スライドで埋まる | 前処理で共通スライドを除外する。除外リストを運用しながら育てる |
| テキストが抽出できないファイルがある | 取り込み時にファイル名と理由を記録し、一覧で確認できるようにする。無言でスキップしない |
| 顧客名が提案書本文に残っている | 検索結果に他社の社名が表示されることになる。社内利用に限定し、権限設定で担当外の案件を見せない構成にするか、社名をマスキングして取り込む |
| CRMと突合できず業種が不明 | 絞り込み対象から外す。推測で業種を付けない |
| 古い提案書が上位に来る | 作成日でスコアを調整する。または3年以上前を既定で除外し、明示的に指定した場合のみ含める |
| 失注案件の提案が上位に来る | 除外はしない。失注の提案にも使える構成はある。 ただし結果を必ず表示する |
記録を残す
- 検索クエリ(案件条件)
- 返した5件のファイル名とスコア
- 営業担当が実際に開いたファイル
3つ目が重要です。返した5件のうち、実際に開かれたのが何件かが、検索精度の唯一の実測値になります。 1件も開かれない状態が続くなら、検索の作り方を見直します。
04実装レベルの3段階
半自動化を飛ばして本格構成に進まないでください。 この構成でもっとも失敗しやすいのは、3,000件を取り込んだ後に「検索結果が使えない」と分かることです。300件で運用を1か月試し、検索が当たるかを確かめてから広げます。
05工数削減シミュレーション
導入後 60件 × 100分 ÷ 60 = 100 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 過去3年分以上の提案書が数百件あり、案件ごとに提案内容を作り込む受注型ビジネス。提案書のテキストが抽出できること。
- 提案が定型で流用の必要がない事業。提案書が画像主体でテキスト抽出できない場合。過去提案を使う文化がない組織。
07最小構成で試す方法
RAGの基盤を作る前に、検索が本当に必要かを確かめる方法があります。
- 直近で作った提案書20件を1つのフォルダに集める
- 各ファイルから手作業でテキストを抜き、1ファイル1つのテキストファイルにする
- ChatGPT、Claude、Gemini などのファイル添付機能で20件を読み込ませる
- 「業種◯◯、課題◯◯の案件に近い提案書はどれか」と聞く
20件程度なら、この方法で検索の有効性を確かめられます。返ってきた提案が的を射ているかを、営業担当5名に判定してもらってください。 ここで「使える」と言われなければ、3,000件に広げても同じです。
より簡易には、NotebookLM のようにファイルを読み込ませて質問できるツールでも試せます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| PowerPointの図中テキストが抽出できない | 100ファイルで先に抽出率を測る。取れないファイルは一覧化し、重要なものだけ手作業で補う |
| 検索結果が会社概要・表紙で埋まる | 共通スライドの除外リストを作る。運用しながら追加する |
| 提案書1ファイルを1ベクトルにして精度が出ない | 章単位・スライド単位に分割する |
| 業種が同じだけで課題が違う提案が上位に来る | メタデータでの絞り込みを併用する。ベクトル検索だけに頼らない |
| 古い提案が上位に来て、廃止製品を提案してしまう | 作成日でスコアを調整する。3年以上前は既定で除外する |
| 他社の提案内容が担当外の営業に見える | 権限連携を実装する。または取り込み時に社名をマスキングする |
| AIが一般的な提案書の型を返してくる | 「流用元を示せない見出しは提案しない」制約を入れる |
| インデックスが更新されず古いまま | 週次の定期実行を組む。新規追加分のみを差分で取り込む |
| 3,000件入れた後に「使えない」と分かる | 300件で1か月試してから広げる |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 顧客の社名、提案内容、提案金額、体制、受注失注の結果。顧客の営業秘密と、自社の価格戦略の両方を含みます。この20件の中でもっとも扱いに注意が要る構成です。
- 顧客の秘密保持義務 … 提案書には、顧客から開示された情報が含まれます。これを検索基盤に取り込むこと自体が、秘密保持契約に抵触しないかを確認してください。抵触する顧客の資料は、取り込み対象から外します
- 社内での閲覧範囲 … 全営業が全提案書を検索できる状態にしてよいかを決めます。金額情報を含むため、部門をまたいだ閲覧を制限する設計が必要な場合があります。検索基盤の権限連携は後から足すのが難しいので、最初に決めてください
- 外部AIへの入力 … 取り込み時の埋め込み処理と、利用時の生成処理の両方で外部にデータが出ます。入力を学習に使わないことが契約で保証されるサービスを選びます。閉域網での構成が必要な場合は、Azure AI Search のプライベートエンドポイントなど、ネットワーク側の要件も併せて検討します
- 自動実行してよい範囲 … この構成は検索の提示までで、外部への送信を伴いません。ただし、生成された見出し案をそのまま顧客に出す運用にしないでください
誤りが起きた場合のリスクは、廃止された製品仕様や古い価格を、現行の提案として顧客に出してしまうことです。作成日を必ず表示してください。
10まず何から始めるか
1〜2週目:検索が必要かを確かめる
直近の提案書20件で最小構成(§8)を試します。営業5名に「この検索結果は使えるか」を判定してもらいます。ここで否定されたら、この構成は作らないほうがよいです。探すのが遅いのではなく、そもそも過去提案を使わない文化である可能性があります。
3〜4週目:抽出率を測る
100ファイルからテキスト抽出を試し、何割が取れるかを測ります。5割を切るようなら、ファイル形式の整理が先です。
2か月目:300件で運用する
主要な300件をインデックス化し、1部門で1か月使います。返した5件のうち何件が開かれたかを記録します。ここが1件を下回るなら、分割の粒度かメタデータの設計に問題があります。
その後: 開封率が安定してから、3,000件への拡大と権限連携を実装します。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Azure AI Search のベクトル検索・ハイブリッド検索、RAG用途での利用 | Microsoft Learn: Azure AI Search とは | 2026-09-02 |
| Claude APIのStructured Outputs | Anthropic: Structured outputs | 2026-09-02 |
SharePoint からのファイル取得(Microsoft Graph API)、PowerPoint / Word / PDF のテキスト抽出は、いずれも一般的に利用されている方式です。ただし、図形内テキストや画像化されたテキストの抽出可否は、ファイルの作り方に依存します。自社の資料で実測してください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0004)についてのご相談はこちらから。
