Media > AI活用ユースケース > 営業 > 官公庁・自治体の入札公告を毎週巡回して、自社が応札できる案件と締切を洗い出す

官公庁・自治体の入札公告を毎週巡回して、自社が応札できる案件と締切を洗い出す

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

複数の発注機関に散らばった入札公告を定期的に集め、自社の資格・実績・体制に照らして応札できるかを仕分けます。担当者の作業は、サイトを回って探すことから、絞られた案件を見て応札の可否を決めることに変わります。

サマリー
利用ツール
ChatGPT/Claude/Gemini/Google Apps Script/Make/n8n/Power Automate/Python
対象業界
IT・SaaS/商社/建設/製造
対象部門
営業/経営企画
対象業務
分類・仕分け/情報検索
主な課題
人手が足りない/情報が見つからない/期限・対応漏れが起きる
AIで行う処理
エージェント
主な効果
工数削減/検索時間短縮/機会損失防止
導入難易度
★★★★☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
必須
現在工数
50h/月
AI導入後
12.5h/月
想定削減
75%
年間削減
450h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 担当者が、巡回先のサイトを順に開く
  2. 新しい公告が出ていないかを見る
  3. 出ていれば、公告のPDFを開く
  4. 業種・等級・地域・履行期間・予定価格を読む
  5. 自社が応札できるかを判断する
  6. できそうなら、Excelの管理表に転記する
  7. 資料の受領期限と入札日をカレンダーに入れる
  8. 営業に共有する
導入後(After)
  1. 自動毎日、公開されているAPIから調達情報を取得する
  2. 自動APIで取れない機関については、決められたページを巡回して新着を拾う
  3. 自動前回取得分と突き合わせ、新着だけを残す
  4. 自動業種・地域・金額帯で機械的に絞る
  5. 自動残った公告の本文を取得し、資格の等級・履行期間・体制の要件を抜き出す
  6. 自動自社の条件と照らし、応札できる/条件付き/できない に仕分ける
  7. 担当者が「応札できる」「条件付き」だけを見て、検討の可否を決める
  8. 自動検討する案件の期限をカレンダーに入れ、管理表に登録する
各工程の詳しい説明を読む
  1. 担当者が、巡回先のサイトを順に開く
  2. 新しい公告が出ていないかを見る
  3. 出ていれば、公告のPDFを開く
  4. 業種・等級・地域・履行期間・予定価格を読む
  5. 自社が応札できるかを判断する
  6. できそうなら、Excelの管理表に転記する
  7. 資料の受領期限と入札日をカレンダーに入れる
  8. 営業に共有する

問題は4つあります。

(a)サイトの作りが機関ごとに違う。 一覧の形式、公告の掲載場所、更新の頻度がそろっていません。慣れないと、新着かどうかも分かりません。

(b)見落とすと次がない。 公告の掲載期間は短く、気づいたときには受付が終わっています。 同じ案件は次は1年後です。

(c)締切が近い。 公告から入札まで2〜3週間しかないことがあります。1週間気づくのが遅れると、準備が間に合いません。

(d)担当者が休むと止まる。 巡回は属人的な作業で、引き継ぎ資料がありません。

  1. 【自動】 毎日、公開されているAPIから調達情報を取得する
  2. 【自動】 APIで取れない機関については、決められたページを巡回して新着を拾う
  3. 【自動】 前回取得分と突き合わせ、新着だけを残す
  4. 【自動】 業種・地域・金額帯で機械的に絞る
  5. 【自動】 残った公告の本文を取得し、資格の等級・履行期間・体制の要件を抜き出す
  6. 【自動】 自社の条件と照らし、応札できる/条件付き/できない に仕分ける
  7. 【人】 担当者が「応札できる」「条件付き」だけを見て、検討の可否を決める
  8. 【自動】 検討する案件の期限をカレンダーに入れ、管理表に登録する

自動化されるのは「集める」「新着を選ぶ」「絞る」「要件を抜く」「仕分ける」の5つです。残るのは「応札するかを決める」だけになります。

この構成をエージェントと呼ぶのは、6の仕分けまでを止まらずに進めるためです。 ただし、応札の判断そのものは人に残します。

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

構成図
【定期】毎日 早朝
   │
   ▼
n8n(巡回の制御・状態の管理)
   │
   ├──▶ 官公需情報ポータルサイト 検索API(REST / XML)
   │       └─ 中小企業庁が提供する調達情報の取得
   │
   ├──▶ APIのない機関 ── 指定ページの巡回(取得間隔を守る)
   │
   ├──▶ 新着の判定(前回取得分との突合)
   │
   ├──▶ 機械的な絞り込み(業種 / 地域 / 金額帯)
   │
   ├──▶ LLM API ── 公告本文から要件を抽出(資格等級 / 履行期間 / 体制)
   │
   └──▶ LLM API ── 自社条件との照合と仕分け
   │
   ▼
週次の候補一覧(応札可 / 条件付き / 不可 と、その根拠)──【担当者が決める】
   │
   ▼
管理表への登録 + 期限のカレンダー登録 + 営業への通知
役割想定する製品代替候補
ワークフローn8nMake、Power Automate
生成AIClaude API(web search / web fetch)ChatGPT、Gemini
処理PythonGoogle Apps Script

入札情報サービス(有料)を先に検討してください。 発注機関を横断して公告を集め、条件で絞り込む機能を持つサービスが複数あります。自前で組む価値があるのは、対象の機関がサービスの収録範囲から外れている場合、または仕分けの条件を自社の実績・体制に細かく合わせたい場合です。

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

Step1

処理の起点を決める

毎日早朝の定期実行を起点にします。週1回では遅すぎます。公告から入札まで2〜3週間しかない案件があるためです。

一方、担当者に通知するのは週1回にまとめます。 毎日通知すると読まれなくなります。ただし、締切まで10日を切った新着だけは即時に通知します。

Step2

入力データを集める

データ中身取得元
調達情報発注機関、案件名、業種区分、公告日、締切、参加資格公開API
公告の本文仕様書の要件、履行期間、体制の条件、予定価格各機関のサイト(PDF)
自社の入札参加資格機関ごとの等級、登録している業種区分、有効期限経営企画部
自社の実績過去の受注案件、規模、分野営業管理
体制の条件配置できる技術者、保有資格、対応できる地域人事・技術部門
過去の応札記録応札した案件、結果、落札価格営業管理
Step3

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

公開API: 中小企業庁が提供する官公需情報ポータルサイトの検索APIを使います。官公需に関する入札情報を取得できるAPIで、提供形式はREST、レスポンスのデータ形式はXMLです。利用条件と取得できる項目の詳細は、公開されているAPIガイドで確認してください。

APIで取れない機関: 指定したページを巡回します。このとき、次を必ず守ってください。

守ること理由
各サイトの利用規約を先に確認する自動取得を禁じているサイトがある
robots.txt の指示に従う巡回してよい範囲が書かれている
取得の間隔を空ける相手のサーバに負荷をかけない
取得元が分かる形でアクセスする問い合わせを受けられるようにする
早朝など負荷の低い時間に行う業務時間帯を避ける

この点をあいまいにしたまま作らないでください。 公的機関のサイトに過度な負荷をかければ、業務妨害になりかねません。「情報が公開されている」ことと「自動で取ってよい」ことは別です。

生成AI側の検索機能を使う方法もあります。 Claude APIのweb search toolは、回答に引用付きで結果を返し、allowed_domains で検索対象のドメインを限定できます。 検索回数は max_uses で上限を決められます。ただし、網羅性は保証されません。 見落としが致命的なこの業務では、APIと巡回を主にし、検索機能は補助に使ってください。

自社の入札参加資格: 機関ごとの等級と有効期限を表にして持ちます。等級が合わなければ、どんなに良い案件でも応札できません。 ここが最初のふるいになります。

Step4

AIへ渡す前に整形する

  1. 新着の判定 … 案件番号と公告日で、前回取得分と突き合わせます。内容が更新された公告(訂正・期限延長)も新着として扱います
  2. 重複の統合 … 同じ案件が複数の経路で取れることがあります。案件番号で1件にまとめます
  3. 業種区分での絞り込み … 自社が登録している区分と合わないものを外します
  4. 地域での絞り込み … 履行場所が対応できる範囲かを見ます。「全国」と書かれている場合は残します
  5. 金額帯での絞り込み … 予定価格が公表されている場合、下限を下回るものを外します
  6. 締切での分類 … 締切までの日数で、即時通知の対象かを分けます

3から5までで、500件が60件程度になります。 AIに渡すのはここからです。

Step5

AIに処理させる

2段階に分けます。

1段目(抽出): 公告と仕様書のPDFから、要件を抜き出します。

抽出する項目
参加資格の等級「A等級またはB等級」
必要な実績「同種業務を過去3年に2件以上」
体制の条件「◯◯の資格を持つ技術者を2名以上配置」
履行期間「契約締結日から翌年3月31日まで」
履行場所「◯◯県内」
提出物と期限「参加表明書を◯月◯日まで」
総合評価の有無「価格以外の要素を評価する」

2段目(照合): 抽出した要件と、自社の資格・実績・体制を突き合わせ、仕分けます。

LLMに落札の見込みを予想させません。 出させるのは「要件を満たすか」までです。勝てるかどうかは、価格と競合の状況で決まる別の話です。

構造化出力を使い、判定の形式を固定します。制約付きデコードによってスキーマに沿ったJSONの生成が保証されるため、仕分けの値が想定外の文字列で返ることを防げます。

Step6

指示内容を固定する

あなたは、入札公告を読んで応札の可否を仕分ける担当者です。

【厳守事項】
- 公告と仕様書に書かれていないことを補わないでください。
  読み取れない要件は unreadable に列挙してください。
- 落札の見込みや、勝てるかどうかを書かないでください。
  要件を満たすかどうかだけを判定してください。
- 予定価格や入札価格を推測しないでください。
- 判定した項目には、公告本文からの引用を必ず添えてください。
- 要件を満たさないと判定する場合も、引用を添えてください。
- 「おそらく問題ない」という表現を使わないでください。
  満たす / 満たさない / 読み取れない の3つで答えてください。

【自社の条件】
入札参加資格: {our_qualifications}
過去の実績: {our_track_record}
配置できる体制: {our_capacity}
対応できる地域: {our_regions}

【公告・仕様書】
{tender_document}

「落札の見込みを書かない」の1行が重要です。 AIが「受注の可能性が高い」と書くと、担当者がそれを前提に動きます。価格の判断は、この構成の外にあります。

Step7

出力形式を固定する

{
  "tender_id": "",
  "agency": "",
  "title": "",
  "publish_date": "",
  "deadlines": [
    { "type": "participation | question | bid | opening", "date": "" }
  ],
  "requirements": [
    {
      "type": "grade | experience | staffing | region | period | other",
      "text": "",
      "quote": "",
      "our_status": "met | not_met | unreadable",
      "reason": ""
    }
  ],
  "verdict": "eligible | conditional | not_eligible",
  "blocking_requirement": "",
  "unreadable": [],
  "source_url": ""
}

verdictconditional になるのは、「体制を確保できれば満たせる」「協力会社と組めば満たせる」といった場合です。ここを not_eligible に寄せると、取れる案件を落とします。

Step8

システムへ連携する

つなぎ先何をするか
管理表検討する案件を登録する。進捗を追う
カレンダー参加表明・質問・入札の期限を登録する
チャット/メール週次の候補一覧を通知する。締切が近い案件は即時に通知する
営業管理応札の結果を記録し、次回の判定の材料にする

期限のカレンダー登録を省かないでください。 この業務でいちばん痛い失敗は、見つけたのに期限を過ぎることです。

Step9

人が確認する

全件、人が確認します。応札の意思表示を自動で行いません。

自動化するのは、候補を絞るところまでです。参加表明書の提出、質問の提出、入札書の提出は、すべて人が行います。

確認を速くするための設計が重要です。

  • 候補一覧を 締切が近い順に並べる
  • verdict ごとに分け、conditional の理由を見せる
  • 要件ごとの引用を、公告の該当ページへリンクする
  • unreadable が多い案件は、人が原本を読む列に出す
  • 前週に「見送り」とした案件を再掲しない
Step10

例外に対処する

起きること対応
APIが応答しない巡回側に切り替える。取得できなかった機関を通知する
サイトの構造が変わって拾えない取得件数が0になったら通知する。黙って0件にしない
公告が訂正・期限延長された新着として扱い、再判定する
仕様書がスキャン画像で読めないunreadable として人が読む列に出す
予定価格が非公表金額帯での絞り込みを適用しない
参加資格の等級が読み取れないunreadable として人へ回す。推測で判定しない
締切まで3日を切っている即時通知し、一覧の先頭に出す
同じ案件が複数の経路で取れた案件番号で1件にまとめる
対象機関が増えた巡回先の一覧を設定として持ち、コードを直さずに追加できるようにする
巡回が規約に触れる可能性がある取得を止め、確認が済むまで再開しない
Step11

記録を残す

  • 取得した公告の原本と、取得日時・取得元
  • 機械的な絞り込みで外した件数(多すぎないかを見る
  • AIの抽出結果と、引用箇所
  • 仕分けの結果と、担当者の判断
  • 見送った案件と、その理由
  • 応札した案件の結果(落札・失注・落札価格)

5番目を必ず残してください。 「なぜこの案件を見送ったか」が残っていないと、あとで検証できません。

6番目は、絞り込みの条件を直す材料になります。 「自動で not_eligible にした案件を、他社が落札していた」と分かれば、条件が厳しすぎます。

04実装レベルの3段階

最小構成:公告のPDFを生成AIに渡し、要件の抽出と仕分けをさせる / 読解と仕分け
半自動化:公開APIから取得 → 機械的な絞り込み → 抽出 → 仕分け → 週次通知 / 収集と選別
本格構成:上記+APIのない機関の巡回+期限のカレンダー登録+結果の記録と条件の見直し / 判断と提出以外のすべて

半自動化の時点で、6分が2.5分程度になります。 APIで取れる範囲だけでも、収集と一次の絞り込みが消えるためです。本格構成にすると1.5分程度になりますが、巡回の実装と維持が重くなります。 ★4としているのは、この維持の負担が理由です。 サイトの構造は予告なく変わります。作って終わりにならない構成であることを、最初に理解しておいてください。

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

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

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

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

AI活用について相談する

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

向いている
  1. 官公庁・自治体向けの受注が売上の1割以上あり、入札参加資格をすでに持っている企業。対象の発注機関が広く(複数省庁・複数自治体)、公告を人が見て回っている場合。年間の応札が20件以上ある場合。
向いていない
  1. 発注機関が1〜2か所に限られ、担当者がその公告だけを見ていれば足りる場合。入札参加資格をまだ取得していない場合(そちらが先)。随意契約や特命での受注が中心の場合。

07最小構成で試す方法

  1. 過去3か月に応札した案件を10件選ぶ
  2. あわせて、見送った案件を10件選ぶ
  3. その公告と仕様書を生成AIに渡し、要件の抽出と仕分けをさせる
  4. 担当者が、当時の判断と比べる
  5. 応札した10件が eligible または conditional に入るか、見送った10件が not_eligible に入るかを見る

5の両方向を見るのが大事です。 応札できた案件を拾えるだけでなく、見送るべき案件を落とせるかも測ってください。

判断の目安は次のとおりです。

判断が一致した割合判断
8割以上自動化する価値がある
5〜8割自社の条件(資格・実績・体制)の書き方を具体化する
5割未満判定の材料が足りない。自社の条件を先に整理する

この検証はAPIも巡回も使わずにできます。 公告のPDFを手で集めるだけです。巡回の実装より先に、ここをやってください。

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

問題対策
巡回が規約に触れていないか分からない各サイトの利用規約と robots.txt を先に確認する。不明なら取得しない
サイト構造が変わって0件になる取得件数を監視し、0件なら通知する。黙って0件にしない
同じ案件が重複して出る案件番号で1件にまとめる
訂正・期限延長を見落とす内容が変わった公告も新着として扱う
仕分けが厳しすぎて候補が出ないconditional を使う。協力会社と組めば満たせる案件を落とさない
AIが落札見込みを書く出力スキーマから該当の欄を外す。指示で禁止する
期限がカレンダーに入らない登録まで自動化する。この構成でいちばん痛い失敗は期限切れ
通知が多すぎて読まれない週次にまとめる。締切が近いものだけ即時にする
見送った案件が翌週も出てくる見送りの記録を持ち、再掲しない
巡回の負荷で相手に迷惑をかける取得の間隔を空け、早朝に行う。同時実行数を絞る

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

この構成で扱うデータ: 公開されている入札公告、自社の入札参加資格と実績、応札の検討状況。公告そのものは公開情報ですが、自社がどの案件を検討しているかは機密です。

  1. 自動取得の可否これがこの構成で最大の論点です。 各サイトの利用規約と robots.txt を確認し、禁じられている場合は取得しないでください。公開されていることと、自動で取ってよいことは別です
  2. 相手のサーバへの負荷 … 取得の間隔を空け、同時実行数を絞り、業務時間帯を避けてください。公的機関のサイトに過度な負荷をかけないでください
  3. 自社の検討状況 … どの案件を検討しているかは、競合に知られたくない情報です。管理表のアクセス範囲を限定してください
  4. 入札参加資格の情報 … 等級や実績は、外部に出す必要のない情報です。外部サービスへ渡す範囲を確認してください
  5. 落札見込みを扱わない … 価格の検討に、この構成の出力を使わないでください。入札価格の決定は、別の手続きと権限で行われるべきものです
  6. 公正な競争 … 他社の応札状況を推測する用途に広げないでください。入札の公正性に関わります
  7. 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます
  8. 自動実行してよい範囲 … 収集、絞り込み、要件の抽出、仕分け、期限の登録までです。参加表明、質問の提出、入札書の提出は、必ず人が行います

誤りが起きた場合のリスクは、応札できる案件を自動で落としてしまうことと、取得の仕方が問題になることの2つです。前者に対しては見送りの記録を残して検証し、後者に対しては規約の確認を運用の前提としてください。

10まず何から始めるか

1週目:自社の条件を書き出す

入札参加資格(機関ごとの等級と有効期限)、過去3年の実績、配置できる体制、対応できる地域を表にします。これがないと判定できません。

あわせて、過去1年の応札と見送りを一覧にしてください。 検証の材料になります。

2週目:20件で試す

応札10件・見送り10件の公告を手で集め、要件の抽出と仕分けを試します。両方向の一致率を見てください。

3週目:巡回してよい範囲を確認する

公開APIで取れる範囲を確かめ、APIで取れない機関については、利用規約と robots.txt を1か所ずつ確認します。 ここは時間をかけてください。不明なものは対象から外します。

4週目:APIの範囲だけで組む

公開APIから取得し、機械的な絞り込みと仕分けまでを作ります。巡回はまだ作りません。 これだけで、収集の手間の大半が消える場合があります。

2か月目:期限の管理をつなぐ

カレンダー登録と管理表への登録を作ります。この構成の値打ちの半分は、期限を落とさないことにあります。

3か月目以降: 規約の確認が済んだ機関から、巡回を追加します。あわせて、取得件数の監視を必ず入れてください。 サイトの構造変更に気づけないと、「静かに0件」になります。

半年後には、見送った案件の落札結果を確かめてください。 自動で落とした案件を他社が取っていたなら、絞り込みの条件が厳しすぎます。


11関連ユースケース

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

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

技術仕様確認日:2026-09-21/最終更新:2026-09-21
確認した内容情報源確認日
官公需情報ポータルサイト検索APIが中小企業庁から提供されており、官公需に関する入札情報を自動的に取得できること。API提供形式がREST、レスポンスのデータ形式がXMLであること。利用条件の詳細は公開されているAPIガイドで確認する必要があることe-Gov APIカタログ:官公需情報ポータルサイト検索API2026-09-21
Claude APIのweb search toolが、検索結果に基づく回答に引用を返すこと。max_uses で1リクエストあたりの検索回数を制限できること。allowed_domains または blocked_domains で対象ドメインを限定できる(両方の同時指定は400エラー)こと。料金が検索1,000回あたり10ドルで、トークン費用が別にかかることClaude Docs: Web search tool2026-09-21
Claude APIの構造化出力が、制約付きデコードによりスキーマに沿ったJSONの生成をモデル側で保証すること。列挙・定数・参照は使えるが、再帰スキーマや数値の範囲指定は使えないことClaude Docs: Structured outputs2026-09-21

公開されている情報であっても、自動で取得してよいとは限りません。 巡回の対象とする各サイトについて、利用規約と robots.txt を必ず確認し、自動取得が禁じられている場合は対象から外してください。取得の間隔を空け、同時実行数を絞り、相手のサーバに過度な負荷をかけないでください。 官公需情報ポータルサイト検索APIの取得できる項目、リクエストのパラメータ、件数の上限、利用条件は、同サイトが公開しているAPIガイドで確認してください(本記事ではAPIガイドの内容そのものは確認していません)。

この構成が出す仕分けは、公告に書かれた要件と自社の条件を突き合わせた結果であり、応札の可否を保証するものではありません。 参加資格の判断は最終的に発注機関が行います。また、この構成を落札見込みの予想や、他社の応札状況の推測に使わないでください。入札の公正性に関わります。 参加表明、質問の提出、入札書の提出は、必ず人が行ってください。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。巡回対象のサイト構造は予告なく変わるため、運用開始後も継続的な保守が必要です。

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

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

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