業界紙・専門誌の記事を毎月集めて要約し、自社の事業・顧客・競合に関わる動きを経営会議の資料向けの一覧にする
購読している業界紙・専門誌から切り出した記事を Gemini API に読ませ、記事ごとに要点を3行にまとめます。自社の顧客・競合・仕入先の一覧と照らして関係先と動きの種類を付け、経営会議に出す一覧の候補にします。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 商社/物流/製造
- 対象部門
- 経営企画
- 対象業務
- 情報検索/要約
- 主な課題
- 人手が足りない/属人化している/情報が見つからない
- AIで行う処理
- 要約
- 主な効果
- 判断支援/工数削減/検索時間短縮
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 3名がそれぞれ担当の紙誌の電子版を読み、関係しそうな記事を見つける
- 記事をPDFに保存するか、見出しと日付をメモして共有フォルダに置く
- 営業部門から転送されてきた記事のリンクも、同じフォルダのメモに足す
- 月末に、たまった記事を1本ずつ読み直し、自社に関係するかを判断する
- 関係するものは、要点を2〜3行に書き、紙誌名・日付・関係する会社を一覧に写す
- 同じ話題が複数の紙誌に出ていれば、1行にまとめる
- ベテランの担当者が一覧を見直し、経営会議に上げるものを選んで並べ替える
- 人3名が電子版を読み、関係しそうな記事をPDFに保存して、受付フォルダに入れる
- 人無料で公開されているWebの記事は、URLを受付シートに1行ずつ貼る
- 自動毎朝、スクリプトが受付フォルダと受付シートの新しい分を拾う
- 自動Gemini API が記事を読み、要点3行・関係先・動きの種類・数字と原文の引用を返す
- 自動スクリプトが関係先を一覧と照らし、数字が引用の中にあるかを確かめる
- 自動結果を月ごとの記事一覧のシートに1行ずつ足す
- 自動月末に、同じ会社・同じ動きの記事をまとめた「話題の一覧」の案を作る
- 人担当者が話題の一覧を見て、要約と関係先を原文と照らして直す
- 人ベテランの担当者が、経営会議に上げる話題を選び、並べ替えて資料にする
各工程の詳しい説明を読む
- 3名がそれぞれ担当の紙誌の電子版を読み、関係しそうな記事を見つける
- 記事をPDFに保存するか、見出しと日付をメモして共有フォルダに置く
- 営業部門から転送されてきた記事のリンクも、同じフォルダのメモに足す
- 月末に、たまった記事を1本ずつ読み直し、自社に関係するかを判断する
- 関係するものは、要点を2〜3行に書き、紙誌名・日付・関係する会社を一覧に写す
- 同じ話題が複数の紙誌に出ていれば、1行にまとめる
- ベテランの担当者が一覧を見直し、経営会議に上げるものを選んで並べ替える
(a)関係する記事が埋もれる。 4番目で読み直すとき、300本を同じ集中力で読むことはできません。後半になるほど見出しだけで判断するようになり、本文の最後の段落に顧客の名前が出ていた記事を落とします。
(b)関係先の判断が人の記憶に頼っている。 「A社の子会社のB社」「旧社名のC化成」のように、記事の表記と自社の一覧の表記が一致しないことが多く、気づけるのはベテランの担当者だけです。
(c)数字の写し間違いが会議で見つかる。 要点を書くときに「生産能力を年3万トン増強」を「3万トンに増強」と書いてしまうような誤りは、経営会議で役員に指摘されて初めて分かります。 原文に戻って確かめる時間が、月末には残っていません。
(d)同じ話題の記事がばらばらに並ぶ。 日刊紙と専門誌が同じ値上げを別の日に報じると、6番目でまとめ損ねて一覧に2行出ます。 読む側は「別の値上げか」と迷います。
- 【人】 3名が電子版を読み、関係しそうな記事をPDFに保存して、受付フォルダに入れる
- 【人】 無料で公開されているWebの記事は、URLを受付シートに1行ずつ貼る
- 【自動】 毎朝、スクリプトが受付フォルダと受付シートの新しい分を拾う
- 【自動】 Gemini API が記事を読み、要点3行・関係先・動きの種類・数字と原文の引用を返す
- 【自動】 スクリプトが関係先を一覧と照らし、数字が引用の中にあるかを確かめる
- 【自動】 結果を月ごとの記事一覧のシートに1行ずつ足す
- 【自動】 月末に、同じ会社・同じ動きの記事をまとめた「話題の一覧」の案を作る
- 【人】 担当者が話題の一覧を見て、要約と関係先を原文と照らして直す
- 【人】 ベテランの担当者が、経営会議に上げる話題を選び、並べ替えて資料にする
8番目が、この設計でいちばん時間を使うところです。 担当者が見るのは300本の原文ではなく、要約と引用が並んだ一覧です。 引用を読んで違和感があるものだけ原文を開きます。
1番目は残します。 電子版を読んで記事を選ぶのは人の仕事のままです。購読している紙誌の多くは有料で、AIが自分で取りに行くことはできません(第6章)。選ぶ手間は残りますが、選んだ後の読み直しと転記が減ります。
02今回想定するシステム構成
業界紙・専門誌の電子版(有料購読) 無料で公開されているWeb記事
│ 人が記事を選んでPDFに保存 │ 人がURLを受付シートに貼る
▼ ▼
受付フォルダ(Google ドライブ) 受付シート(スプレッドシート)
└──────────────┬─────────────────┘
▼【トリガー】毎朝の時間主導型トリガー
Google Apps Script ── 新しいPDFとURLを拾う
▼
Gemini API(Interactions)
│ PDFは document として渡す/URLは url_context で読ませる
│ 要点3行・関係先・動きの種類・数字・原文の引用をJSONで返す
▼
Google Apps Script ── 関係先を一覧と照合、数字が引用にあるかを確認
▼
月ごとの記事一覧(スプレッドシート)
▼【月末】
Gemini API ── 同じ話題の記事をまとめた「話題の一覧」の案
▼
【人が要約・関係先・数字を確認】→ 経営会議の資料(ドキュメント)| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(PDFと記事の読み取り、要約、関係先と動きの種類の付与) | Claude API、OpenAI API |
| 連携 | Google Apps Script(受付フォルダと受付シートの確認、照合、一覧への書き込み) | Python |
| 保管 | Google ドライブとスプレッドシート(記事のPDF、記事一覧、照合用の一覧) | - |
新しく足すのは、Gemini API の有料の枠と、Apps Script のスクリプト1本です。 記事一覧と経営会議の資料の様式は、いまのものを使います。
Gemini API を選ぶ理由は、PDFをそのまま渡せることです。 公式のページでは、PDFは50MBまたは1,000ページまで扱え、1ページは258トークンとして数えられます。PDFは図や表を含めて読める唯一の形式で、HTMLやテキストなどPDF以外の形式は、ただのテキストとして取り出されるとされています。業界紙の記事には価格の推移の表や工場の能力の一覧が付くことが多いので、記事はPDFで渡します。
Webの記事には、URL context というツールを使えます。 1回のリクエストでURLを20件まで渡せ、1件あたりの上限は34MBです。ただし公式のページは、有料の記事(paywalled content)は対象外と書いています。購読している紙誌の電子版のURLを貼っても読めないので、有料の記事は人がPDFにして渡す、無料の記事だけURLで渡す、と分けます。
Apps Script は、Gemini API を呼んで結果を書き込む「つなぎ」の役です。 ドライブのフォルダにファイルが入ったことをきっかけに動くトリガーは公式のページの一覧に無いので、毎朝の時間主導型トリガーで新しい分を拾う形にします。
03どうやって実装するのか
処理の起点を決める
毎朝1回、Apps Script の時間主導型トリガーで動かします。 公式のページでは、時間主導型トリガーは1分ごとから月に1回まで設定でき、指定した時刻から少しずらして動くことがある(9時と指定すると9時から10時のあいだ)とされています。記事の要約は急ぐ処理ではないので、このずれは問題になりません。
月末にもう1回、別のトリガーで「話題の一覧」の案を作ります。 経営会議の資料の締めの3営業日前に動かし、担当者が確かめる時間を残します。
記事を1本ずつ即座に処理しないのは、意図してのことです。 毎朝まとめて処理すれば、前日に3名が入れた記事を1回で読ませられ、同じ日に同じ記事が2回入ったときも、その場で気づけます。 処理が終わったPDFは処理済みのフォルダへ移し、受付シートのURLには処理日を書き込みます。受付フォルダに残っている数が、そのまま未処理の数になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 記事のPDF | 電子版から保存した記事。紙誌名・発行日・面を、ファイル名の決まりで持たせる | 受付フォルダ |
| Webの記事のURL | 無料で公開されている記事のURL、貼った人、貼った日 | 受付シート |
| 照合用の一覧 | 顧客・競合・仕入先・自社の事業の名前。正式名、略称、グループ会社、旧社名 | 営業管理のスプレッドシートから写した一覧 |
| 動きの種類の一覧 | 値上げ・値下げ、需給、設備投資、参入・撤退、提携・買収、規制・制度、事故・品質 | 経営企画が決めて持つ一覧 |
| 前月までの話題 | 先月までに経営会議に出した話題の一覧 | 記事一覧のシート |
質を決めるのは、照合用の一覧の「別名」の列です。 記事は「三井化学」とも「同社」とも書き、子会社の名前だけで出ることもあります。別名が無ければ、関係先は正式名で書かれた記事にしか付きません。 最初の準備は、主要な顧客と競合の上位50社について、略称・グループ会社・旧社名を足すことです。
前月までの話題は、続報を見分けるために渡します。 先月「値上げを検討」と出た話の続きで「値上げを発表」と出れば、新しい話題ではなく続報として扱えます。
データの取得方法を決める
| 取るもの | どこから | どう取るか |
|---|---|---|
| 新しいPDF | 受付フォルダ | Apps Script でフォルダの中身を見て、処理済みでないものを拾う |
| 新しいURL | 受付シート | 処理日の列が空の行を拾う |
| 照合用の一覧 | 照合用のシート | 毎回シートを読み、その日の版をプロンプトに入れる |
| 記事の本文 | PDFそのもの/URLの先 | PDFは document として渡す。URLは url_context のツールに読ませる |
PDFは、Gemini API の Interactions(/v1beta/interactions)に document として渡します。 公式のページでは、小さな文書はリクエストに直接入れ、大きなものや何度も使うものは Files API で上げる形が勧められています。Files API で上げたファイルは48時間保存され、利用は無料です。記事1本のPDFは数ページなので、基本は直接入れる形で足ります。
Webの記事は、URL context に読ませた後、取得の結果を必ず見ます。 公式のページでは、url_context_result のステップに、取得を試みたURLごとの状態が返るとされています。取れなかったURLを、取れたものとして要約させないために、状態が取得成功でないものは要約を捨て、受付シートに「取得できず」と書き戻します。
ファイル名の決まりは「紙誌コード_発行日_面_連番.pdf」にします。 紙誌名と日付をAIに読ませると、紙面の欄外の日付と記事中の日付を取り違えることがあります。出典の情報はファイル名から機械的に取り、AIには本文だけを任せます。
AIへ渡す前に整形する
- ファイル名の確認 … 決まりに合わないPDFは処理せず、受付シートに「ファイル名の確認」と書いて残します
- 重複の確認 … 同じ紙誌・同じ発行日・同じ面のPDFがすでに処理済みなら、二重に送りません
- ページ数の確認 … 記事1本で10ページを超えるものは、特集号を丸ごと保存した可能性が高いので人に戻します
- 大きさの確認 … 公式のページの上限は50MBですが、記事1本で数MBを超えるものは画像の解像度が高すぎることが多いので、保存し直してもらいます
- 照合用の一覧の整形 … 正式名・別名・区分(顧客/競合/仕入先/自社の事業)を1行ずつの表にし、プロンプトに入れられる形にします
- URLの確認 … 受付シートのURLのうち、購読している紙誌のドメインのものは有料の記事の可能性が高いので、URLで渡さず「PDFで保存してください」と書き戻します
6番目を入れておかないと、空振りが毎朝続きます。 有料の記事のURLを貼っても、URL context では読めません。貼った人に、PDFで入れ直してもらうのが早道です。
AIに処理させる
させるのは、記事1本ごとに次の6つを返すことだけです。
| 項目 | 中身 | 決まりごと |
|---|---|---|
| 要点 | 記事の事実を3行で | 記事に書かれていないことを足さない。評価の言葉を入れない |
| 関係先 | 照合用の一覧に載っている名前のうち、記事に出てくるもの | 一覧にあるものだけ。 推して当てはめない |
| 一覧外の会社 | 記事に出てくるが一覧にない会社名 | 原文の表記のまま書く |
| 動きの種類 | 決めた7種類から1つまたは2つ | 当てはまらなければ「その他」 |
| 数字 | 価格・数量・能力・金額・時期 | 原文の文字列をそのまま。単位も写す |
| 引用 | 要点と数字の根拠にした原文の一文 | 書き換えない |
月末の2回目の呼び出しでは、記事一覧から「話題の一覧」の案を作らせます。 同じ関係先・同じ動きの種類で、発行日の近い記事を1つの話題にまとめ、どの記事をまとめたかの番号を必ず付けさせます。 前月までの話題と同じ流れなら「続報」と付けます。
| させないこと | 理由 |
|---|---|
| 自社への影響の評価(脅威・機会・重要度の断定) | 経営会議に何を上げるかは経営企画と経営陣が決める |
| 一覧にない会社を一覧の会社に当てはめる | 事実と違う名前が経営会議で独り歩きする |
| 数字の換算・合計・前年比の計算 | 原文に無い数字が生まれる。計算が要るなら人がする |
| 記事に無い背景の補足 | もっともらしい解説ほど誤りに気づけない |
| 記事の全文や長い引用の書き出し | 購読契約の範囲を超えるおそれがある。引用は根拠の一文まで |
2行目と3行目がいちばん起きやすい失敗です。 「大手樹脂メーカーが値上げ」という記事に、一覧の中の樹脂メーカーを当てはめる。「年3万トン増強」を「月2,500トン」に直す。どちらも親切のつもりで起き、どちらも原文から離れます。 指示で禁じたうえで、数字は第7章の「システム連携」の照合で機械的に確かめます。
指示内容を固定する
あなたは化学品の専門商社の経営企画部で、業界紙・専門誌の記事を読み、
経営会議の資料の候補を作る担当です。
渡された記事の本文だけを根拠にしてください。記事に無いことは書かないでください。
【返す項目】
1. summary ... 記事の事実を3行で。各行60字以内。評価の言葉(大きな影響、注目など)を使わない
2. related ... 照合用の一覧に載っている名前のうち、記事に出てくるもの
- 一覧の「正式名」で書き、記事中の表記を matched_text に写す
- 一覧の別名と一致した場合も、正式名で書く
3. unlisted ... 記事に出てくる会社名で、一覧に無いもの。原文の表記のまま
4. move_type ... 次の中から1つまたは2つ
値上げ・値下げ/需給/設備投資/参入・撤退/提携・買収/規制・制度/事故・品質/その他
5. figures ... 価格・数量・能力・金額・時期を、原文の文字列のまま。単位も写す
6. quotes ... summary と figures の根拠にした原文の一文。書き換えない。1つ120字以内
【厳守事項】
- 記事に「大手メーカー」「同業他社」などとしか書かれていないとき、
一覧の会社を当てはめないでください。related に入れず、unlisted にも入れないでください。
- 記事に明記がない項目は「不明」とし、推測で埋めないでください。
- 数字を換算・合計・計算しないでください。年の数字を月に直さない、
前年比を自分で出さない。原文に書かれた文字列だけを figures に入れてください。
- 自社への影響、重要度、経営会議に上げるべきかは書かないでください。
- 記事の全文を写さないでください。quotes は根拠の一文だけです。
- 記事が読めない、または記事でない(広告、目次、求人)と判断したときは、
document_status にその旨を書き、他の項目は空にしてください。
【照合用の一覧(正式名|別名|区分)】{watchlist}
【前月までの話題】{previous_topics}
【記事】(添付のPDF、またはURLの先)
「一覧の会社を当てはめないでください」を、例を挙げて書くのが要です。 何も言わなければ、業界の知識から「大手樹脂メーカー」を特定の会社に当ててきます。当たっていることもありますが、記事に書かれていない以上、経営会議の資料には載せられません。
「年の数字を月に直さない」も具体的に書きます。 計算を禁じるだけでは、単位をそろえる親切を計算とは思わずにやります。原文の文字列のまま写させ、照合で確かめられる形を保ちます。
出力形式を固定する
構造化出力で、次の形のJSONを受け取ります。 公式のページでは、Interactions の response_format に mime_type として application/json を、schema にJSONスキーマを指定し、enum や required などに対応するとされています。
{
"article_id": "NK_20261002_07_01",
"document_status": "ok | unreadable | not_article",
"summary": ["", "", ""],
"related": [
{ "name": "", "category": "customer | competitor | supplier | own_business",
"matched_text": "" }
],
"unlisted": [""],
"move_type": ["値上げ・値下げ"],
"figures": [ { "text": "", "kind": "price | volume | capacity | amount | date" } ],
"quotes": [""]
}
1つ目の理由は、照合をスクリプトでできることです。 related の name が照合用の一覧の正式名にあるか、matched_text が quotes か記事の中にあるかを、Apps Script で確かめられます。一覧に無い名前が related に入っていたら、その行は人の確認に回します。
2つ目は、数字を引用と照らせることです。 figures の text が quotes のどれかにそのまま含まれているかを文字列で見ます。含まれていなければ、AIが言い換えたか計算したということです。
3つ目は、document_status で空振りを分けられることです。 広告や目次のページを保存してしまった場合に、要約らしきものを作らせずに止められます。
| 照合の結果 | 一覧での扱い |
|---|---|
related がすべて一覧にあり、figures がすべて quotes の中にある | 「確認」列を空のまま並べる |
related に一覧に無い名前がある | 「関係先を確認」と付ける |
figures に quotes の中に無い数字がある | 「数字を確認」と付ける |
document_status が ok でない | 一覧に載せず、受付シートに戻す |
公式のページは、構文として正しいJSONでも値はアプリ側で確かめるよう書いています。上の照合は、そのための仕組みです。なお、構造化出力と URL context などの組み込みツールを同時に使えるのは Gemini 3 系のモデルだけで、プレビューとされています。Webの記事の処理で組み合わせが使えない場合は、URL context で読ませる呼び出しと、JSONに整える呼び出しを2回に分けます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォルダ | Apps Script のドライブ操作 | 新しいPDFを拾い、処理済みのフォルダへ移す |
| 受付シート | Apps Script のスプレッドシート操作 | 新しいURLを拾い、処理日と結果を書き戻す |
| Gemini API | Apps Script から HTTP で呼ぶ | 記事ごとのJSON、月末の話題の一覧の案 |
| 記事一覧のシート | Apps Script のスプレッドシート操作 | 1記事1行で、要点・関係先・数字・引用・確認の印を書く |
| 経営会議の資料 | 人がドキュメントに写す | 選んだ話題だけを資料の様式に入れる |
経営会議の資料へは、自動では書き込みません。 一覧の候補から何を選ぶかは人の判断で、選ばれなかった記事が資料に混ざる経路を作らないためです。
記事一覧のシートには、元のPDFへのリンクを必ず入れます。 確認する人が引用に違和感を持ったら、1クリックで原文を開けるようにします。
人が確認する
- 「確認」の印が付いた行を先に見る … 「関係先を確認」と「数字を確認」の行です。原文を開いて、AIの書いたことが記事にあるかを確かめます
- 話題の一覧の案を見る … 同じ話題にまとめられた記事が本当に同じ話か、続報の付け方が正しいかを見ます
- 印の無い行は、要点と引用を流し読む … 原文は開きません。引用と要点が食い違って見えたものだけ開きます
- 経営会議に上げる話題を選ぶ … ベテランの担当者が選び、並べ、資料に写します
- 直したところを記録する … 関係先を足した・消した、数字を直した、を一覧の列に残します
1番目を省かないでください。 印が付くのは、AIが一覧に無い名前を当てはめたか、数字を言い換えた可能性がある行です。経営会議で誤りが見つかるのは、たいていここです。
目標は、300本をならして1本2分です。 印の付く行が2割前後という想定で、それより多い月は、照合用の一覧の別名が足りていないか、プロンプトの禁止が効いていないかのどちらかです。
例外に対処する
| 起きること | 対応 |
|---|---|
| PDFが画像だけで文字が読めない | document_status が unreadable。電子版から保存し直してもらう |
| 広告・目次・求人のページが混ざる | not_article で一覧に載せず、受付シートに戻す |
| 有料の記事のURLが貼られる | 前処理で止め、「PDFで保存してください」と書き戻す |
| URL context で取得できない | url_context_result の状態を見て要約を捨て、「取得できず」と書き戻す |
| 1本のPDFに複数の記事が入る | 記事ごとに分けたJSONを返させ、article_id に枝番を付ける。分けられなければ人へ |
| 照合用の一覧に無い会社ばかり出る | unlisted を月末に数え、多い会社を一覧に足すかを決める |
| 同じ記事が2人から入る | ファイル名の紙誌・発行日・面で重複を見て、2本目は処理しない |
| Gemini API がエラーを返す | PDFを受付フォルダに残し、翌朝もう一度。処理済みへ移すのは成功時だけ |
| JSONの形が崩れる | 1回だけ呼び直し、それでも崩れたら人の確認の列に回す |
上から3行目までが、最初の1か月の大半を占めます。 どれもAIの問題ではなく、記事の保存のしかたの問題です。 3名で保存の決まりをそろえるほうが、プロンプトを直すより効きます。
記録を残す
- 記事のPDFと、受付シートに貼られたURL(貼った人、貼った日)
- Gemini API が返したJSONの全文と、呼び出した日時
- そのとき使った照合用の一覧の版(シートのコピーを月ごとに残す)
- 照合の結果(「関係先を確認」「数字を確認」の印)
- 人が直した記録 … 関係先を足した・消した、数字を直した
- 経営会議に上げた話題と、まとめた記事の番号
3つ目で照合用の一覧の版を残すのは、一覧が月ごとに変わるためです。 別名を足すと、先月は付かなかった関係先が付くようになります。どの版で照合したかが分からないと、関係先の付き方が変わった理由を説明できません。
5つ目の記録は、照合用の一覧を育てる材料になります。 人が関係先を足した記事の表記を見れば、一覧に足すべき別名が分かります。
04実装レベルの3段階
本記事の想定は半自動化です。 1本6分が2分になるのはこの段階で、読み直しと転記がなくなり、確認だけが残るからです。 本格構成で増えるのは、話題のまとめと資料の下書きです。 ただし経営会議に何を上げるかを選ぶ作業は、本格構成でも人に残ります。下書きまで出すと、選ぶ前の候補がそのまま資料に見えてしまうので、資料の様式の下書きは「候補」と明記した別のドキュメントに出します。 段階を飛ばさないでください。 半自動化を2〜3か月回すと、人が関係先を足した記録から、照合用の一覧に足すべき別名がそろいます。 一覧が育ってから話題のまとめに進むほうが、まとめの誤りが減ります。
05工数削減シミュレーション
導入後 300件 × 2分 ÷ 60 = 10 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 化学品・鉄鋼・食品原料・機械部品などを扱う専門商社や、その取引先のメーカー・物流会社で、業界紙と専門誌を10紙誌前後購読し、毎月の経営会議に「業界の動き」の資料を出している場合。記事を読んで要点をまとめる作業が経営企画の特定の担当者に偏り、休むと資料が出ない場合。主要顧客・競合・仕入先の一覧がすでにあり、記事に出てくる会社と突き合わせたい場合。Google Workspace を使っていて、Gemini API の有料の枠を契約できる場合。
- 購読している業界紙が1〜2紙で、毎月の関係記事が数十本にとどまる場合。購読契約で、記事を社内で複製すること、または外部のAIサービスに入力することが認められていない場合(契約の範囲を広げるまでは使えません)。経営会議の資料に記事の全文や紙面の画像そのものを載せたい場合(この構成は要約と出典の一覧までです)。なお、記事の動きが自社にとって脅威か機会か、何を経営会議の議題にするかの判断は経営企画と経営陣が行います。この構成は記事を読んで並べるもので、判断は代替しません。
07最小構成で試す方法
- 先月の経営会議の資料に載せた記事から20本、載せなかった記事から10本を選ぶ
- 30本をPDFにし、照合用の一覧(上位30社の正式名と別名)をテキストで用意する
- Google AI Studio ではなく、有料の枠を設定したプロジェクトの Gemini API に、1本ずつPDFと一覧を渡す(第13章)
- 第7章のプロンプトで、要点・関係先・数字・引用を返させる
- 返ってきたものを、先月の資料と原文に突き合わせる
30本のうち10本を「載せなかった記事」にするのは、関係先の付けすぎを見るためです。 載せた記事だけで試すと、関係先が付いて当然の記事ばかりになり、無関係の記事に関係先を当てはめる失敗が見えません。
| 出てきた内容 | 判断 |
|---|---|
| 関係先と数字が先月の資料と合う | Apps Script でのつなぎに進む |
| 一覧に無い会社を一覧の会社に当てはめた | プロンプトの禁止の書き方で直る。構成は有効 |
| 別名が足りず、関係先が付かない記事が多い | 一覧の整備が先。 AIの問題ではない |
| 数字を言い換えた・計算した | 「年を月に直さない」を明記し直す。照合で拾えるかも確かめる |
3行目が出ることは珍しくありません。 ベテランの担当者が頭の中で持っていた別名の一覧を、表に書き出すきっかけになります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 有料の記事のURLを貼っても要約が出ない | URL context は有料の記事を対象外としている。PDFで保存して渡す |
| 取れなかったURLの要約らしきものが出る | url_context_result の状態を見て、取得成功でないものは捨てる |
| 「大手メーカー」に一覧の会社を当てはめる | 禁止を例つきで書き、related が一覧にあるかを照合する |
| 数字を月に直す・合計する | 原文の文字列のまま写させ、quotes の中にあるかを照合する |
| 別名が足りず関係先が付かない | 上位50社から略称・グループ会社・旧社名を足す |
| 紙面の日付と記事中の日付を取り違える | 出典の情報はファイル名から取る。 AIに読ませない |
| 広告や目次のページを要約する | document_status で止める |
| 同じ話題が一覧に何行も出る | 月末の話題のまとめで1つにし、まとめた記事の番号を付ける |
| 構造化出力と URL context を同時に使えない | 組み合わせは Gemini 3 系のプレビュー。2回の呼び出しに分ける |
| 無料の枠のまま使い始める | 無料の枠では入力が製品の改善に使われ、人が読むことがある。有料の枠に切り替える |
| 要約に評価の言葉が混ざる | 「注目」「大きな影響」を禁じる。評価は経営会議でする |
| 経営会議の資料に要約が自動で入る | 資料へは人が写す。 候補と資料を分ける |
上の4行が、この構成の失敗のほとんどです。 どれも「書かれていないことが、書かれたように見える」失敗で、照合で機械的に拾えるかどうかが運用に乗るかを決めます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 購読している業界紙・専門誌の記事、顧客・競合・仕入先の名前の一覧、そしてどの記事を経営会議に上げたかという自社の関心の記録です。個人の情報は原則として含みませんが、記事に人事異動や経営者の発言が出ることはあります。
- 購読契約の利用条件を、使う前に確かめる … 記事を社内で複製すること、PDFで保存して共有すること、外部のAIサービスに入力することが、法人の購読契約で認められているかを法務と確かめます。認められていない紙誌は、この構成から外すか、発行元に許諾の範囲を相談します
- 経営会議の資料には要約と出典だけを載せる … 記事の全文や紙面の画像を資料に貼らず、要点・関係先・出典(紙誌名・発行日・面)にとどめます。プロンプトでも全文の書き出しを禁じています
- Gemini API は有料の枠で使う … 公式の規約では、無料の枠では入力と出力が製品の改善に使われ、人が読むことがあり、機密や個人の情報を入れないようにとされています。有料の枠では、プロンプトと応答を製品の改善に使わず、違反の検知のために限られた期間記録されるとされています
- 照合用の一覧を広く共有しない … 顧客と競合の名前、グループの関係がまとまった一覧です。シートの編集と閲覧を経営企画に限り、Apps Script もその権限の範囲で動かします
- AIの要約を事実として扱わない … 経営会議の資料に載るのは、人が原文と照らした要約だけです。「AIがまとめた」ことを理由に確認を省かない決まりにします
- 選ばれなかった記事も記録に残す … 何を上げなかったかも、後から振り返る材料になります。ただし自社の関心が分かる記録なので、保存先の権限は1番目と同じに限ります
誤りが起きた場合のリスクは、事実と違う会社名や数字が経営会議で使われることと、関係する記事を落とすことの2つです。 前者は照合の印で、後者は照合用の一覧の別名で防ぎます。どちらも、AIに推させないための仕組みです。
10まず何から始めるか
1週目:購読契約を確かめ、照合用の一覧を作る
購読している10紙誌の契約について、社内での複製と外部のAIサービスへの入力が認められているかを法務と確かめます。あわせて、営業管理のスプレッドシートから主要な顧客・競合・仕入先の上位50社を写し、略称・グループ会社・旧社名の列を足します。 別名はベテランの担当者に聞き取ります。
2週目:30本で試す
先月の資料に載せた20本と載せなかった10本を、有料の枠の Gemini API に渡します。一覧に無い会社を当てはめていないか、数字を言い換えていないかを最優先で見ます。
3週目:保存の決まりをそろえる
3名でファイル名の決まり(紙誌コード_発行日_面_連番)と、有料の記事はPDFで入れることを決めます。受付フォルダと受付シートを作り、1週間は人が手で入れてみます。
4週目:Apps Script でつなぐ
毎朝のトリガーで受付フォルダと受付シートを拾い、Gemini API を呼び、照合して記事一覧に書くところまで作ります。この時点では月末の話題のまとめは作らず、1記事1行の一覧だけを見ます。
2か月目: 月末の話題のまとめを足し、経営会議の資料の準備をこの一覧から始めます。「関係先を確認」「数字を確認」の印の数を毎週数えます。3か月目以降: 人が関係先を足した記録から別名を一覧に足し、1本6分が何分になったかを実測します。ベテランの担当者が休んだ月にも同じ質の一覧が出た時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
PDFが50MBまたは1,000ページまで扱えること。1ページが258トークンとして数えられること。PDFだけが図や表を含めて読め、HTMLやテキストなどPDF以外の形式はただのテキストとして取り出されること。大きなファイルや繰り返し使うものは Files API が勧められ、48時間保存され無料であること。Gemini 3 系のモデルではPDFに埋め込まれた文字のトークンが課金されないこと。例が Interactions(/v1beta/interactions)で書かれていること | Google AI for Developers: Document understanding | 2026-10-13 |
URL context が1回のリクエストでURLを20件まで、1件34MBまで扱えること。有料の記事(paywalled content)や Google Workspace のファイルが対象外であること。url_context_result のステップに取得を試みたURLごとの状態が返ること | Google AI for Developers: URL context | 2026-10-13 |
構造化出力が response_format(mime_type に application/json、schema にJSONスキーマ)で指定されること。enum・required などに対応すること。構文として正しいJSONでも値はアプリ側で確かめるべきこと。組み込みツールとの組み合わせが Gemini 3 系のモデルだけのプレビューであること | Google AI for Developers: Structured output | 2026-10-13 |
| 無料の枠では入力と出力が製品の改善に使われ人が読むことがあり、機密や個人の情報を入れないよう書かれていること。有料の枠ではプロンプトと応答を製品の改善に使わず、違反の検知のために限られた期間記録されること | Google AI for Developers: Gemini API Additional Terms of Service | 2026-10-13 |
| 時間主導型トリガーが1分ごとから月に1回まで設定でき、時刻が少しずれて動くことがあること。インストール型トリガーの種類にドライブのファイル作成をきっかけとするものが無いこと | Google for Developers: Installable triggers(Apps Script) | 2026-10-13 |
記事を社内で複製し、外部のAIサービスに入力してよいかは、各紙誌の購読契約と自社の法務の確認で決めてください。 本記事は公開されている製品の仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1386)についてのご相談はこちらから。
