Media > AI活用ユースケース > 総務 > 市役所が地域のイベントの後援・共催の申請をフォームで受け、Apps Script と AI で要綱の基準に照らした書類の不足と確認点を拾う

市役所が地域のイベントの後援・共催の申請をフォームで受け、Apps Script と AI で要綱の基準に照らした書類の不足と確認点を拾う

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

地域の団体から届くイベントの後援・共催の申請を Google フォームで受け、Apps Script が添付の書類とそろえて AI に渡します。AI は要綱の基準に照らした不足・食い違い・確認点を根拠の文つきで返し、職員はその一覧から確かめます。

サマリー
生成AI
ChatGPT/Claude
連携・自動化
Google Apps Script/Make/Power Automate
対象業界
その他/自治体
対象部門
総務
対象業務
内容確認・チェック/比較検討
主な課題
判断に時間がかかる/属人化している/確認ミスが多い
AIで行う処理
判定
主な効果
判断支援/品質標準化/工数削減
導入難易度
★★☆☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
条件付き
現在工数
60h/月
AI導入後
20h/月
想定削減
67%
年間削減
480h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. フォームの回答を受付の一覧で見て、受付の番号を振る
  2. 申請者から別にメールで届いた事業計画書・収支予算書・チラシの案を、受信箱で探して開く
  3. 申請書の回答と添付の書類を並べ、事業名・日時・場所・入場料・主催者が合っているかを見る
  4. 行事の日付から、1か月前の期限に間に合っているかを数える
  5. 事業の内容・物品の販売・協賛の企業の扱いを読み、営利・政治・宗教の除外に触れないかを考える
  6. 不足や疑問があれば、申請者へ問い合わせのメールを書く
  7. 書類がそろったものを、所管の課へ回付する
導入後(After)
  1. 自動フォームの送信をきっかけに Apps Script が動き、受付の番号を振って申請者へ受付のメールを送る
  2. 【人/申請者】 申請者が、受付のメールに返信する形で、事業計画書・収支予算書・チラシの案の PDF を送る
  3. 自動1時間ごとの時間主導型のトリガーで、受付の番号の付いた返信を Gmail で探し、添付の PDF を取り出す
  4. 自動行事の日付から期限に間に合っているか、要る書類がそろっているかを、スクリプトの規則で見る
  5. 自動書類がそろった申請について、Claude API に申請書の回答と PDF を渡し、食い違い・除外の基準に触れる記載・確認点を返させる
  6. 自動受付の一覧の横の列に結果を書き、申請者への問い合わせの文案を Gmail の下書きにする
  7. 人総務課の職員が、AI の指摘を根拠の文と PDF の該当箇所で確かめる
  8. 人問い合わせが要るものは下書きを直して送り、そろったものは所管の課へ回付する
各工程の詳しい説明を読む
  1. フォームの回答を受付の一覧で見て、受付の番号を振る
  2. 申請者から別にメールで届いた事業計画書・収支予算書・チラシの案を、受信箱で探して開く
  3. 申請書の回答と添付の書類を並べ、事業名・日時・場所・入場料・主催者が合っているかを見る
  4. 行事の日付から、1か月前の期限に間に合っているかを数える
  5. 事業の内容・物品の販売・協賛の企業の扱いを読み、営利・政治・宗教の除外に触れないかを考える
  6. 不足や疑問があれば、申請者へ問い合わせのメールを書く
  7. 書類がそろったものを、所管の課へ回付する

(a)確認の観点が人によって違う。 ベテランの職員は、チラシの協賛の企業の欄、物品の販売の記載、講演の講師の肩書きまで見ます。異動してきたばかりの職員は、申請書の欄が埋まっているかを見て終わります。 同じ申請が、受け付ける人によって所管の課への回り方が変わります。

(b)添付が別に届くので、突き合わせが重い。 フォームには書類の欄を置いていないため、事業計画書とチラシは申請者がメールで送ります。どのメールがどの申請の添付か、件名だけでは分からないことがあります。

(c)不足が分かるのが遅い。 書類の不足は、所管の課が審査に入ってから見つかることもあります。その時点で行事まで3週間を切っていると、申請者は印刷したチラシの差し替えに追われます。

(d)除外の基準の読み方が難しい。 「専ら営利」かどうかは、物品の販売があるだけでは決まりません。判断がつかない申請は、職員が所管の課と相談し、そのぶん回付が遅れます。

  1. 【自動】 フォームの送信をきっかけに Apps Script が動き、受付の番号を振って申請者へ受付のメールを送る
  2. 【人/申請者】 申請者が、受付のメールに返信する形で、事業計画書・収支予算書・チラシの案の PDF を送る
  3. 【自動】 1時間ごとの時間主導型のトリガーで、受付の番号の付いた返信を Gmail で探し、添付の PDF を取り出す
  4. 【自動】 行事の日付から期限に間に合っているか、要る書類がそろっているかを、スクリプトの規則で見る
  5. 【自動】 書類がそろった申請について、Claude API に申請書の回答と PDF を渡し、食い違い・除外の基準に触れる記載・確認点を返させる
  6. 【自動】 受付の一覧の横の列に結果を書き、申請者への問い合わせの文案を Gmail の下書きにする
  7. 【人】 総務課の職員が、AI の指摘を根拠の文と PDF の該当箇所で確かめる
  8. 【人】 問い合わせが要るものは下書きを直して送り、そろったものは所管の課へ回付する

7番目が、この設計の分かれ目です。 AI の指摘は、確かめるべき場所の目印です。「営利の目的と読める記載」と出ても、それで不承認にはしません。 職員が書類を読み、所管の課と協議して、市が判断します。

4番目を AI にさせないのも、意図してのことです。 期限の計算と、有料の行事に収支予算書が付いているかは、日付と回答の値で機械的に決まります。 ここを AI に任せると、ときどき数え違えます。

02今回想定するシステム構成

構成図
申請者 ── Google フォーム(申請書の項目+確認の質問)
   ▼ 回答がスプレッドシートに書き込まれる
【トリガー①】スプレッドシートのフォーム送信(インストール型)
Google Apps Script
   ├── 受付の番号を振り、受付の一覧の行に書く
   └── 申請者へ受付のメール(件名に受付の番号、添付の送り方を案内)
申請者 ── 受付のメールに返信して PDF を添付
   ▼
【トリガー②】時間主導型(1時間ごと)
Google Apps Script
   ├── Gmail を受付の番号で探し、添付の PDF を取り出す
   ├── 規則で見る:期限・必要な書類・添付の形式
   ├── Claude API(UrlFetchApp、PDF+構造化出力)
   │      ── 食い違い・除外の基準に触れる記載・確認点・根拠の文
   ├── 受付の一覧の横の列 ── 結果と状態を書く
   └── GmailApp ── 申請者への問い合わせの下書き(送らない)
   ▼
【総務課の職員が確かめて送る・回付する】
役割想定する製品代替候補
実行環境Google Apps ScriptMake、Power Automate
生成AIClaude API(PDF の入力、構造化出力)OpenAI API
受付Google フォームMicrosoft Forms
保管Google スプレッドシート(受付の一覧、要綱の基準の表)-
メールGmail(申請の受付用のアカウント)-

新しく足すのは、Apps Script と、受付の一覧の横の列と、要綱の基準の表です。 フォームと受付の一覧はいまのものを使います。Apps Script は、申請の受付用の Gmail のアカウントで作ります。 公式のページでは、インストール型のトリガーは常に作った人のアカウントで動きます。職員の個人のアカウントで作ると、その職員が異動したときに止まります。

きっかけは2つです。 公式のページでは、インストール型のトリガーには、フォームの送信のトリガー(Google フォームの側とスプレッドシートの側の2種類)と、時間主導型のトリガーがあります。時間主導型は1分ごとから月に1回まで選べ、開始の時刻は少しずれることがあります。 添付は申請者が後から送るので、届いたかを1時間ごとに見に行く形にします。

PDF は Claude API にそのまま渡します。 公式のページでは、PDF は document の内容のブロックに base64 で入れて送れます。1回のリクエストの大きさは32MBまで、ページは600まで(文脈の窓が100万トークン未満のリクエストは100まで)で、パスワードや暗号化のかかった PDF は扱えません。 事業計画書とチラシの案で数ページなので、上限には遠く届きません。

結果は構造化出力で受け取ります。 公式のページでは、output_config.format に type: "json_schema" とスキーマを渡すと、その形の JSON が返ります。オブジェクトには additionalProperties: false が要り、数値の minimum・maximum などの制約は使えません。

03どうやって実装するのか

Step1

処理の起点を決める

フォームの送信(トリガー①)と、1時間ごとの見回り(トリガー②)の2本です。 トリガー①は受付だけを行い、AI は呼びません。添付が届く前に AI に読ませても、確かめる材料が足りないからです。

トリガー①は、スプレッドシートの側のフォーム送信のトリガーです。 公式のページでは、そのイベントには質問の名前と値の組(namedValues)と、書き込まれた範囲(range)が入ります。範囲から行の位置が分かるので、受付の番号と結果を同じ行の横の列に書けます。

トリガー②は、1時間ごとの時間主導型です。 受付の一覧で状態が「添付待ち」の行を拾い、その受付の番号で Gmail を探します。添付がそろった行だけを AI に回し、そろわない行は次の回にもう一度見ます。 受付から7日たっても添付が届かない行は、「催促」の状態にします(例外処理)。

Step2

入力データを集める

データ中身取得元
申請書の回答団体名、代表者、連絡先、事業名、目的、内容、実施の日時と場所、入場料等(無料/有料)、他の後援の予定、後援か共催かフォームの回答
確認の質問の回答物品の販売の有無と内容、協賛の企業の有無、政党・候補者の関与、宗教の団体の関与、募金の有無、参加の見込みの人数フォームの回答
添付の書類事業計画書、収支予算書(有料の場合)、チラシ・ポスターの案受付のメールへの返信の添付(PDF)
要綱の基準の表承認の基準、除外の基準、要る書類、期限、AI に見させる観点スプレッドシートの別のシート
過去の申請同じ団体の直近の申請の事業名と結果受付の一覧

確認の質問をフォームに置くのが、この構成の土台です。 「物品の販売はありますか」「政党や候補者が関わりますか」と、除外の基準に関わることを申請者に直接答えてもらいます。 AI が書類から読むのは、その答えと書類の記載が合っているかです。答えが「無い」のに、チラシに「〇〇党〇〇支部協賛」とあれば、それが確認点になります。

要綱の基準の表は、条文をそのまま写した列と、観点を書いた列に分けます。 「専ら営利を目的とする事業」の条文の隣に、「入場料が実費を大きく超えていないか」「主催者の商品の販売が事業の中心になっていないか」のように、総務課が実際に見ている観点を書きます。この観点の列は、ベテランの職員の見方を言葉にしたものです。

Step3

データの取得方法を決める

取るものどこからどの操作で
申請書の回答受付の一覧の行フォーム送信のイベントの namedValues と range
受付のメールへの返信申請の受付用の Gmail受付の番号を件名に含むスレッドを検索する
添付の PDF返信のメッセージgetAttachments() で添付を取り出す
要綱の基準の表別のシートシートの値を読む
AI の結果Claude APIUrlFetchApp で Messages API を呼ぶ

添付は getAttachments() で取り出します。 公式のページでは、メッセージのすべての添付を GmailAttachment の配列で返し、オプションでインラインの画像を含めるか、通常の添付を含めるかを指定できます。署名の画像が添付として拾われないよう、インラインの画像は含めない指定にします。

受付の番号は、件名の先頭に角かっこで入れます。 「【後援受付 K-2026-0412】」のように決めておけば、返信の件名にもそのまま残ります。申請者が新しいメールで送ってきた場合は件名に番号が無いので、送り主のアドレスと申請書の連絡先で照らし、合えば職員に確かめさせます。

PDF は base64 にして Claude API に渡します。 添付の中身をバイトで取り出し、Utilities の base64Encode で文字列にし、document のブロックの data に入れます。1回のリクエストに、申請書の回答と、その申請の PDF をすべて入れます。 書類ごとに分けて呼ぶと、事業計画書とチラシの案の食い違いを AI が見比べられません。

API のキーは、スクリプトのプロパティに置き、コードに書きません。 公式のページでは、スクリプトのプロパティはスクリプトのすべての利用者から使える、アプリ全体の設定の保存場所です。スクリプトを編集できる人を総務課の担当に限り、キーが課の外に見えないようにします。

Step4

AIへ渡す前に整形する

  1. 期限の確認 … 行事の初日と受付の日の差を数え、1か月前を切っていれば「期限」の印を付けます
  2. 要る書類の確認 … 入場料等が「有料」なのに収支予算書が無ければ「不足」とします
  3. 添付の形式の確認 … PDF 以外(画像・Word)は職員に PDF への変換を頼む印を付け、AI に渡しません
  4. パスワード付きの PDF の確認 … 読めない PDF は、申請者に外して送り直してもらう印を付けます
  5. 大きさの確認 … 添付の合計が大きすぎるものは、ページ数の多い書類を分けて送ってもらいます
  6. 同じ団体の直近の申請 … 受付の一覧で同じ団体の申請を探し、事業名と結果を AI に渡します

1番目と2番目は、AI に渡す前にスクリプトで決めます。 期限は日付の引き算、収支予算書の要否は回答の値で決まり、ここに判断の余地はありません。 結果は AI の指摘とは別の列に書き、職員がひと目で見分けられるようにします。

4番目は、Claude API の側の制約でもあります。 公式のページでは、パスワードや暗号化のかかった PDF は扱えないとされています。エラーになってから気づくより、前で止めます。

Step5

AIに処理させる

させること返す項目決め方
申請書と添付の食い違いmismatches事業名・日時・場所・入場料等・主催者・後援か共催か の6項目を、申請書と各書類で比べる
除外の基準に触れうる記載exclusion_flags営利・政治・宗教の観点ごとに、触れうる記載があれば根拠の文を写す
確認の質問の答えと書類の食い違いanswer_conflicts「物品の販売なし」なのにチラシに販売の記載がある、など
名義の表示の先走りpremature_logoチラシの案に、承認の前から市の名前や章が入っているか
申請者への問い合わせquestions上の指摘のうち、申請者に尋ねるべきものを1文ずつ
書類の要約summary職員が回付の前に読む3行ほどの要約

exclusion_flags は、触れうる記載を拾うだけです。 「専ら営利」かどうかは、事業全体の中での物品の販売の重さで決まり、一文だけでは決まりません。 AI には、記載の場所と原文を返させ、「営利である」とは書かせません。

premature_logo は、地味ですが手戻りの多い観点です。 申請者は、承認を見込んでチラシに「後援:〇〇市」と刷ってしまうことがあります。承認の前の案なら直せますが、印刷の後だと刷り直しになります。 案の段階で拾い、問い合わせの文に「承認の通知の前の印刷はお控えください」と添えます。

させないこと理由
承認・不承認の結論市が要綱に照らして決める
暴力団の関与の判断書類から読むものではない。市の手続きで確かめる
政治的・宗教的な活動かの断定記載の場所を返すだけ。所管の課と協議して決める
期限の計算と書類の要否スクリプトの規則で決める
団体の評判の推測団体名から推し量らない
事業の安全の判断会場の収容や警備は、所管の課と会場の管理者が見る
Step6

指示内容を固定する

あなたは市役所の総務課で、後援・共催の申請の書類を確かめる係です。
申請書の回答と、添付の PDF に書かれていることだけを使ってください。
承認・不承認を判断しないでください。

【1. 食い違い(mismatches)】
事業名・実施の日時・実施の場所・入場料等・主催者・後援か共催か の6項目を、
申請書の回答と各書類で比べ、違いがあれば項目、申請書の値、書類の値、
書類の名前とページを返してください。表記の揺れ(全角と半角、曜日の有無)は
違いとして扱わないでください。

【2. 除外の基準に触れうる記載(exclusion_flags)】
要綱の基準の表(ここに貼る)の観点ごとに、触れうる記載があれば、
観点の番号、書類の名前とページ、原文をそのまま quote に写してください。
「営利である」「政治活動である」と結論を書かないでください。
触れうる記載が無ければ、空の配列にしてください。

【3. 確認の質問の答えとの食い違い(answer_conflicts)】
確認の質問への申請者の答えと、書類の記載が食い違うものを返してください。

【4. 名義の表示(premature_logo)】
チラシ・ポスターの案に、この市の名前や章が後援・共催として入っていれば true。

【厳守事項】
- 書類に書かれていないことを推測で補わないでください。
- 団体名や代表者の名前から、団体の性格を推し量らないでください。
- quote には、書類の文をそのまま写してください。要約しないでください。
- 読めないページがあれば unreadable_pages に書き、推測で埋めないでください。

【申請書の回答】{answers}
【確認の質問の回答】{checks}
【同じ団体の直近の申請】{history}

「結論を書かない」を2か所で念押ししています。 生成AI は、触れうる記載を見つけると「この事業は営利目的に当たる可能性が高い」とまとめたがります。その一文が受付の一覧に残ると、職員が読み、所管の課に伝わり、いつの間にか結論として扱われます。 原文の場所だけを返させます。

表記の揺れを違いとして扱わない指示も要ります。 「10月12日(日)」と「10/12」が別の値として出ると、食い違いの一覧が揺れで埋まり、本当の食い違いが見えなくなります。

Step7

出力形式を固定する

次のスキーマの JSON で受け取ります。 スキーマはオブジェクトごとに additionalProperties: false にします。

{
  "application_id": "K-2026-0412",
  "mismatches": [
    { "field": "入場料等", "form_value": "無料",
      "doc_value": "参加費 大人1,000円", "doc": "チラシの案", "page": 1 }
  ],
  "exclusion_flags": [
    { "criterion": "営利-2", "doc": "事業計画書", "page": 2,
      "quote": "会場内で主催者の健康食品の販売ブースを設ける" }
  ],
  "answer_conflicts": [
    { "question": "物品の販売の有無", "answer": "なし",
      "doc": "事業計画書", "quote": "会場内で主催者の健康食品の販売ブースを設ける" }
  ],
  "premature_logo": true,
  "unreadable_pages": [],
  "questions": ["チラシの案の参加費と、申請書の入場料等(無料)が異なります。どちらが正しいでしょうか。"],
  "summary": ""
}

1つ目の理由は、指摘ごとに書類とページと原文が付くことです。 職員は PDF を頭から読まずに、指摘のページを開いて原文を確かめるだけで済みます。 これが30分を10分にする中身です。

2つ目は、exclusion_flags の criterion で要綱の観点に戻れることです。 観点の番号は要綱の基準の表の番号なので、どの条文に関わる指摘かが職員と所管の課で共通になります。

3つ目は、questions をそのまま問い合わせの下書きに使えることです。 スクリプトは、questions を並べ、決まった前置きと結びを付けて下書きにします。

Step8

システムへ連携する

つなぎ先方式内容
受付の一覧スプレッドシートの読み書き受付の番号、状態、規則の結果、AI の結果を横の列に書く
申請の受付用の GmailGmailApp受付のメールの送信、返信の検索、添付の取り出し、問い合わせの下書き
Claude APIUrlFetchApp申請書の回答と PDF を渡し、構造化出力で受け取る
文書管理のシステム職員の手作業回付と決裁は、いまの手順のまま

問い合わせは下書きにとどめ、送りません。 GmailApp の下書きは、送信をしない操作です。申請者に届く文は、職員が指摘を確かめた後に、職員が送ります。

文書管理のシステムとはつなぎません。 回付と決裁は、市の文書の手続きそのものです。この構成は、回付の前の確認までを受け持ちます。

呼び出しの回数は、上限に遠く届きません。 公式のページでは、Google Workspace のアカウントの URL Fetch の呼び出しは1日10万回まで、1回の実行は6分までです。月120件なら1日に数件で、1時間ごとの見回りの1回で処理する件数を数件に絞れば、6分にも収まります。

Step9

人が確認する

  1. 規則の結果を先に見る … 「期限」「不足」の印のあるものは、AI の指摘より先に申請者へ連絡します
  2. 食い違いを原文で確かめる … mismatches のページを開き、どちらの値が正しいかを申請者に尋ねるか決めます
  3. 除外の基準に触れうる記載を読む … exclusion_flags の原文を読み、事業全体の中での重さを見て、所管の課と協議するかを決めます
  4. 問い合わせの下書きを直して送る … 尋ねる必要のない指摘は消します
  5. 回付する … そろったものを、AI の要約と職員の所見を添えて所管の課へ回します
  6. 指摘を退けたら記録する … 退けた指摘と理由を、受付の一覧に書きます

3番目を AI の指摘だけで済ませないでください。 町内会の祭りの「模擬店の販売」と、企業の「自社の商品の販売ブース」は、どちらも物品の販売です。同じ指摘が出ても、事業の中での位置づけがまるで違います。 そこを読むのが職員の仕事です。

目標は、120件をならして1件10分です。 指摘の無い申請は要約を読んで回付するだけで数分、除外の基準に触れうる記載のある申請は所管の課との相談が入って長くなります。

Step10

例外に対処する

起きること対応
受付から7日たっても添付が届かない状態を「催促」にし、職員が申請者に連絡する
件名に受付の番号の無いメールで届く送り主と申請書の連絡先で照らし、職員が確かめて紐づける
PDF にパスワードがかかっている申請者に外して送り直してもらう
PDF 以外の形式で届く職員が申請者に PDF での送り直しを頼む
読めないページがあるunreadable_pages を見て、職員が原本で読む
期限の1か月前を切っている規則の印。AI の結果を待たずに職員が申請者と所管の課に連絡する
申請の内容の変更の連絡が届く変更の届出として受付の一覧に記録し、もう一度 AI に回す
Claude API がエラーを返す状態を「添付あり・未確認」のままにし、次の見回りで再試行する
構造化出力が返らない職員の手作業の確認に回す

期限の行は、AI の処理の外で動かします。 行事まで1か月を切った申請は、書類の確認より先に、受け付けるかどうかの連絡が要ります。 AI の結果を待つ1時間が、申請者にとってはチラシの印刷の締切に響きます。

Step11

記録を残す

  • フォームの回答の全文と、受け付けた日時、受付の番号
  • 添付が届いたメールのメッセージの ID と受信の日時、添付のファイル名
  • 規則の結果(期限、要る書類、形式)
  • AI に渡した要綱の基準の表の版と、AI の結果の JSON の全文
  • 職員が退けた指摘と理由、問い合わせを送った日時
  • 回付の日と、承認・不承認の結果(文書管理のシステムの番号)

要綱の基準の表の版を残すのは、要綱が改正されるからです。 浜田市の要綱は令和8年4月1日施行と附則にあり、要綱が変わると同じ書類でも指摘が変わります。 どの版の観点で見たかを残しておかないと、後から確認の経過を説明できません。

04実装レベルの3段階

最小構成:申請書と PDF を生成AIの画面に入れ、指摘を返させる / 1件ごとの書類の見比べ
半自動化:上記+Apps Script で受付・添付の取り出し・期限の確認・AI の呼び出し・下書きまで行う / 書類の突き合わせと指摘の一覧、問い合わせの下書き
本格構成:上記+電子申請のシステムで書類も一緒に受け、所管の課への回付の起票まで行う / 受付から回付の手前まで

半自動化で、1件30分が10分になります。 本記事の想定はこの段階です。添付を探して並べる時間と、書類を頭から読む時間が消え、残るのは指摘の確認と判断です。 本格構成は、市の電子申請の仕組みとの相性で決まります。 書類の添付まで1つのフォームで受けられれば、Gmail での紐づけの段が要らなくなります。まず半自動化で、指摘の質と基準の表を固めてください。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
4 名
月間件数
120 件
1件あたり現在時間
30 分
1件あたり導入後時間
10 分
現在  120件 × 30分 ÷ 60 = 60 時間/月
導入後 120件 × 10分 ÷ 60 = 20 時間/月
月間削減時間
40h
削減率
67%
年間削減時間
480h
年間金額換算(時間単価3,000円)
144万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 市区町村の総務課や市民協働の担当課で、地域の団体・実行委員会・企業から届く後援・共催の名義の使用の申請を、毎月百件前後受け付けている場合。職員が申請書と事業計画書・収支予算書・チラシの案を1件ずつ読み、要綱の承認の基準に当てはまるか、書類がそろっているかを確かめていて、確認の観点が担当者ごとに違う場合。申請を Google フォームで受けており、Google Workspace を使っている場合。
向いていない
  1. 後援・共催の申請が年に数十件で、担当者が1人で全件を見て足りている場合。申請を紙と窓口だけで受けていて、電子で受ける見込みがない場合。名義の使用の可否を、要綱ではなく個別の協議で決めている場合。なお、後援・共催の承認・不承認の決定、暴力団の関与の確認、事業の安全の判断は、この構成では代替できません。

07最小構成で試す方法

  1. 先月の申請から20件を選ぶ(うち数件は、後から書類の不足や食い違いが見つかったものを入れる)
  2. 要綱の除外の基準と、ベテランの職員が見ている観点を、表に書き出す
  3. 1件ずつ、申請書の回答と添付の PDF を、手元の生成AIの画面に入れる
  4. 第7章の指示の要点(6項目の食い違い、触れうる記載の原文、結論を書かない)を添えて、指摘を返させる
  5. 当時の職員の確認の記録と並べる

2番目に時間をかけてください。 「専ら営利」の観点を書き出そうとすると、ベテランの職員が何を見ていたかが初めて言葉になります。 その表は、AI を使わない場合でも新しい職員の手引きになります。

出てきた内容判断
当時見つかった食い違いを AI も拾ったApps Script の構築に進む
表記の揺れが食い違いとして並ぶ指示の書き方で直る。構成は有効
職員の間で観点がそろっていなかった基準の表の詰めが先。 AI の問題ではない

画面に PDF を入れるときは、個人の情報の扱いを確かめてください。 申請書には代表者の氏名と連絡先が入ります。試すのは、市が利用を認めた環境に限ります。

08実装時につまずきやすいポイント

問題対策
AI が「営利に当たる」と結論を書く指示で2か所禁じ、原文と場所だけを返させる
表記の揺れが食い違いに並ぶ揺れを違いとして扱わない指示を書く
添付がどの申請のものか分からない件名に受付の番号を入れ、返信で送ってもらう
署名の画像が添付として拾われるgetAttachments() でインラインの画像を含めない
トリガーが職員の異動で止まる申請の受付用のアカウントで作る
パスワード付きの PDF でエラーになる前処理で止め、送り直してもらう
期限の数え違いAI に数えさせず、スクリプトで日付を引く
構造化出力で 400 が返る数値の minimum・maximum を外す。オブジェクトは additionalProperties: false
職員の間で観点がそろわない基準の表の観点の列を、ベテランの見方から書き出す

上の1行が、この構成でいちばん避けたい失敗です。 AI の結論めいた一文が一覧に残ると、市の判断より先に、書類の確認の段で結論ができてしまいます。 結論を書かせない設計と、退けた指摘の記録で防ぎます。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 申請する団体の名前、代表者の氏名と連絡先、事業の内容、そして協賛の企業や講師の名前です。

  1. 外部の AI へ渡す範囲を決める … 書類の確認に要るのは、事業の内容と書類です。代表者の電話番号や住所は、AI に渡す回答から外します
  2. 市の利用の決まりに従う … 生成AIの API の利用は、市の情報セキュリティの決まりで認められた範囲で行います。データの扱いは、利用する API の提供元の条件を確かめます
  3. AI の指摘を判断として扱わない … 指摘は確かめる場所の目印です。承認・不承認は、要綱に照らして市が決めます
  4. 政治・宗教の観点は慎重に扱う … 触れうる記載を拾うことは、申請者の思想や信条を評価することではありません。一覧の指摘の文言は、原文と場所に限ります
  5. 暴力団の関与は書類から判断しない … 要綱の除外の基準にありますが、AI の指摘の対象にしません。 市の手続きで確かめます
  6. 一覧を見られる人を限る … 受付の一覧は、総務課と所管の課の担当者に限ります

誤りが起きた場合のリスクは、食い違いを見落として承認することと、触れうる記載の指摘が結論として扱われることの2つです。 前者は職員の原文の確認で、後者は結論を書かせない設計で防ぎます。

10まず何から始めるか

1週目:基準の表をつくる

要綱の承認の基準と除外の基準を表に写し、ベテランの職員が見ている観点を、条文ごとに書き出します。 あわせて、フォームに確認の質問(物品の販売、協賛の企業、政党・候補者、宗教の団体、募金)を足します。

2週目:20件で試す

先月の申請から20件を選び、市が利用を認めた生成AIの画面で指摘を返させます。当時見つかった食い違いを拾えているか、結論めいた文が出ていないかを最優先で見ます。

3週目:受付と添付の紐づけをつくる

申請の受付用のアカウントで Apps Script を作り、受付の番号を振って受付のメールを送るところと、返信の添付を取り出すところまでを組みます。この時点では AI を呼ばず、規則の結果(期限・不足)だけを一覧に書きます。

4週目:AI の指摘を並べて見る

Claude API の呼び出しを足し、1週間分の申請について職員が指摘を読みます。原文の写しが正確か、表記の揺れが並んでいないかを見ます。

2か月目: 問い合わせの下書きを足し、退けた指摘を数えます。3か月目以降: 退けた指摘の多い観点を基準の表で直します。どの職員が受けても、同じ申請に同じ確認点が並ぶようになった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-15/最終更新:2026-10-15
確認した内容情報源確認日
専ら営利を目的とする事業、政治的活動又は宗教的活動と認められる事業、暴力団などが関与する事業を後援しないこと。申請書に事業計画書と収支予算書(入場料・参加料等を徴収する場合)を添え、事業の開始の1月前までに出すこと。令和8年4月1日施行であること浜田市後援名義の使用承認に関する取扱要綱(PDF)2026-10-15
政治活動及び宗教活動を主たる目的とするとき、営利を目的とするときなどに後援等を許可しないこと。申請書を開催日の1箇月前までに総務課を経て提出し、変更は開催日の15日前までに届け出ること下野市後援等名義の使用許可に関する取扱要綱(PDF)2026-10-15
インストール型のトリガーにフォーム送信(フォームの側とスプレッドシートの側)と時間主導型があり、時間主導型は1分ごとから月1回まで選べ、開始の時刻が少しずれうること。作った人のアカウントで動くことApps Script: Installable Triggers2026-10-15
スプレッドシートの側のフォーム送信のイベントに namedValues と range が入ることApps Script: Event Objects2026-10-15
createDraft が下書きを作る操作で、オプションに name・replyTo などがあること。Gmail を検索する search があることApps Script: GmailApp2026-10-15
getAttachments() がメッセージの添付を返し、インラインの画像と通常の添付を含めるかを指定できることApps Script: GmailMessage2026-10-15
base64Encode がバイトの配列から base64 の文字列を作ることApps Script: Utilities2026-10-15
スクリプトのプロパティが、スクリプトのすべての利用者から使えるアプリ全体の設定の保存場所であることApps Script: Properties Service2026-10-15
Google Workspace のアカウントで URL Fetch が1日10万回まで、1回の実行が6分までであることApps Script: Quotas2026-10-15
PDF を document のブロックに base64 で渡せること。リクエストが32MBまで、ページが600まで(100万トークン未満の文脈の窓では100まで)、パスワードや暗号化のある PDF は扱えないことClaude: PDF support2026-10-15
構造化出力で output_config.format に type: "json_schema" を渡すこと。オブジェクトの additionalProperties を false にし、数値の minimum・maximum が使えないことClaude: Structured outputs2026-10-15

後援・共催の承認・不承認と、除外の基準に当たるかの判断は、各自治体の要綱に照らして市が行ってください。 本記事は上記のページで確認できた範囲だけを扱っており、要綱の中身は自治体ごとに違います。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-1660)についてのご相談はこちらから。

AI活用について相談する
目次