官公庁・自治体の入札公告を毎週巡回して、自社が応札できる案件と締切を洗い出す
複数の発注機関に散らばった入札公告を定期的に集め、自社の資格・実績・体制に照らして応札できるかを仕分けます。担当者の作業は、サイトを回って探すことから、絞られた案件を見て応札の可否を決めることに変わります。
- 利用ツール
- ChatGPT/Claude/Gemini/Google Apps Script/Make/n8n/Power Automate/Python
- 対象業界
- IT・SaaS/商社/建設/製造
- 対象部門
- 営業/経営企画
- 対象業務
- 分類・仕分け/情報検索
- 主な課題
- 人手が足りない/情報が見つからない/期限・対応漏れが起きる
- AIで行う処理
- エージェント
- 主な効果
- 工数削減/検索時間短縮/機会損失防止
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 担当者が、巡回先のサイトを順に開く
- 新しい公告が出ていないかを見る
- 出ていれば、公告のPDFを開く
- 業種・等級・地域・履行期間・予定価格を読む
- 自社が応札できるかを判断する
- できそうなら、Excelの管理表に転記する
- 資料の受領期限と入札日をカレンダーに入れる
- 営業に共有する
- 自動毎日、公開されているAPIから調達情報を取得する
- 自動APIで取れない機関については、決められたページを巡回して新着を拾う
- 自動前回取得分と突き合わせ、新着だけを残す
- 自動業種・地域・金額帯で機械的に絞る
- 自動残った公告の本文を取得し、資格の等級・履行期間・体制の要件を抜き出す
- 自動自社の条件と照らし、応札できる/条件付き/できない に仕分ける
- 人担当者が「応札できる」「条件付き」だけを見て、検討の可否を決める
- 自動検討する案件の期限をカレンダーに入れ、管理表に登録する
各工程の詳しい説明を読む
- 担当者が、巡回先のサイトを順に開く
- 新しい公告が出ていないかを見る
- 出ていれば、公告のPDFを開く
- 業種・等級・地域・履行期間・予定価格を読む
- 自社が応札できるかを判断する
- できそうなら、Excelの管理表に転記する
- 資料の受領期限と入札日をカレンダーに入れる
- 営業に共有する
問題は4つあります。
(a)サイトの作りが機関ごとに違う。 一覧の形式、公告の掲載場所、更新の頻度がそろっていません。慣れないと、新着かどうかも分かりません。
(b)見落とすと次がない。 公告の掲載期間は短く、気づいたときには受付が終わっています。 同じ案件は次は1年後です。
(c)締切が近い。 公告から入札まで2〜3週間しかないことがあります。1週間気づくのが遅れると、準備が間に合いません。
(d)担当者が休むと止まる。 巡回は属人的な作業で、引き継ぎ資料がありません。
- 【自動】 毎日、公開されているAPIから調達情報を取得する
- 【自動】 APIで取れない機関については、決められたページを巡回して新着を拾う
- 【自動】 前回取得分と突き合わせ、新着だけを残す
- 【自動】 業種・地域・金額帯で機械的に絞る
- 【自動】 残った公告の本文を取得し、資格の等級・履行期間・体制の要件を抜き出す
- 【自動】 自社の条件と照らし、応札できる/条件付き/できない に仕分ける
- 【人】 担当者が「応札できる」「条件付き」だけを見て、検討の可否を決める
- 【自動】 検討する案件の期限をカレンダーに入れ、管理表に登録する
自動化されるのは「集める」「新着を選ぶ」「絞る」「要件を抜く」「仕分ける」の5つです。残るのは「応札するかを決める」だけになります。
この構成をエージェントと呼ぶのは、6の仕分けまでを止まらずに進めるためです。 ただし、応札の判断そのものは人に残します。
02今回想定するシステム構成
【定期】毎日 早朝 │ ▼ n8n(巡回の制御・状態の管理) │ ├──▶ 官公需情報ポータルサイト 検索API(REST / XML) │ └─ 中小企業庁が提供する調達情報の取得 │ ├──▶ APIのない機関 ── 指定ページの巡回(取得間隔を守る) │ ├──▶ 新着の判定(前回取得分との突合) │ ├──▶ 機械的な絞り込み(業種 / 地域 / 金額帯) │ ├──▶ LLM API ── 公告本文から要件を抽出(資格等級 / 履行期間 / 体制) │ └──▶ LLM API ── 自社条件との照合と仕分け │ ▼ 週次の候補一覧(応札可 / 条件付き / 不可 と、その根拠)──【担当者が決める】 │ ▼ 管理表への登録 + 期限のカレンダー登録 + 営業への通知
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | n8n | Make、Power Automate |
| 生成AI | Claude API(web search / web fetch) | ChatGPT、Gemini |
| 処理 | Python | Google Apps Script |
入札情報サービス(有料)を先に検討してください。 発注機関を横断して公告を集め、条件で絞り込む機能を持つサービスが複数あります。自前で組む価値があるのは、対象の機関がサービスの収録範囲から外れている場合、または仕分けの条件を自社の実績・体制に細かく合わせたい場合です。
03どうやって実装するのか
処理の起点を決める
毎日早朝の定期実行を起点にします。週1回では遅すぎます。公告から入札まで2〜3週間しかない案件があるためです。
一方、担当者に通知するのは週1回にまとめます。 毎日通知すると読まれなくなります。ただし、締切まで10日を切った新着だけは即時に通知します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 調達情報 | 発注機関、案件名、業種区分、公告日、締切、参加資格 | 公開API |
| 公告の本文 | 仕様書の要件、履行期間、体制の条件、予定価格 | 各機関のサイト(PDF) |
| 自社の入札参加資格 | 機関ごとの等級、登録している業種区分、有効期限 | 経営企画部 |
| 自社の実績 | 過去の受注案件、規模、分野 | 営業管理 |
| 体制の条件 | 配置できる技術者、保有資格、対応できる地域 | 人事・技術部門 |
| 過去の応札記録 | 応札した案件、結果、落札価格 | 営業管理 |
データの取得方法を決める
公開API: 中小企業庁が提供する官公需情報ポータルサイトの検索APIを使います。官公需に関する入札情報を取得できるAPIで、提供形式はREST、レスポンスのデータ形式はXMLです。利用条件と取得できる項目の詳細は、公開されているAPIガイドで確認してください。
APIで取れない機関: 指定したページを巡回します。このとき、次を必ず守ってください。
| 守ること | 理由 |
|---|---|
| 各サイトの利用規約を先に確認する | 自動取得を禁じているサイトがある |
robots.txt の指示に従う | 巡回してよい範囲が書かれている |
| 取得の間隔を空ける | 相手のサーバに負荷をかけない |
| 取得元が分かる形でアクセスする | 問い合わせを受けられるようにする |
| 早朝など負荷の低い時間に行う | 業務時間帯を避ける |
この点をあいまいにしたまま作らないでください。 公的機関のサイトに過度な負荷をかければ、業務妨害になりかねません。「情報が公開されている」ことと「自動で取ってよい」ことは別です。
生成AI側の検索機能を使う方法もあります。 Claude APIのweb search toolは、回答に引用付きで結果を返し、allowed_domains で検索対象のドメインを限定できます。 検索回数は max_uses で上限を決められます。ただし、網羅性は保証されません。 見落としが致命的なこの業務では、APIと巡回を主にし、検索機能は補助に使ってください。
自社の入札参加資格: 機関ごとの等級と有効期限を表にして持ちます。等級が合わなければ、どんなに良い案件でも応札できません。 ここが最初のふるいになります。
AIへ渡す前に整形する
- 新着の判定 … 案件番号と公告日で、前回取得分と突き合わせます。内容が更新された公告(訂正・期限延長)も新着として扱います
- 重複の統合 … 同じ案件が複数の経路で取れることがあります。案件番号で1件にまとめます
- 業種区分での絞り込み … 自社が登録している区分と合わないものを外します
- 地域での絞り込み … 履行場所が対応できる範囲かを見ます。「全国」と書かれている場合は残します
- 金額帯での絞り込み … 予定価格が公表されている場合、下限を下回るものを外します
- 締切での分類 … 締切までの日数で、即時通知の対象かを分けます
3から5までで、500件が60件程度になります。 AIに渡すのはここからです。
AIに処理させる
2段階に分けます。
1段目(抽出): 公告と仕様書のPDFから、要件を抜き出します。
| 抽出する項目 | 例 |
|---|---|
| 参加資格の等級 | 「A等級またはB等級」 |
| 必要な実績 | 「同種業務を過去3年に2件以上」 |
| 体制の条件 | 「◯◯の資格を持つ技術者を2名以上配置」 |
| 履行期間 | 「契約締結日から翌年3月31日まで」 |
| 履行場所 | 「◯◯県内」 |
| 提出物と期限 | 「参加表明書を◯月◯日まで」 |
| 総合評価の有無 | 「価格以外の要素を評価する」 |
2段目(照合): 抽出した要件と、自社の資格・実績・体制を突き合わせ、仕分けます。
LLMに落札の見込みを予想させません。 出させるのは「要件を満たすか」までです。勝てるかどうかは、価格と競合の状況で決まる別の話です。
構造化出力を使い、判定の形式を固定します。制約付きデコードによってスキーマに沿ったJSONの生成が保証されるため、仕分けの値が想定外の文字列で返ることを防げます。
指示内容を固定する
あなたは、入札公告を読んで応札の可否を仕分ける担当者です。
【厳守事項】
- 公告と仕様書に書かれていないことを補わないでください。
読み取れない要件は unreadable に列挙してください。
- 落札の見込みや、勝てるかどうかを書かないでください。
要件を満たすかどうかだけを判定してください。
- 予定価格や入札価格を推測しないでください。
- 判定した項目には、公告本文からの引用を必ず添えてください。
- 要件を満たさないと判定する場合も、引用を添えてください。
- 「おそらく問題ない」という表現を使わないでください。
満たす / 満たさない / 読み取れない の3つで答えてください。
【自社の条件】
入札参加資格: {our_qualifications}
過去の実績: {our_track_record}
配置できる体制: {our_capacity}
対応できる地域: {our_regions}
【公告・仕様書】
{tender_document}
「落札の見込みを書かない」の1行が重要です。 AIが「受注の可能性が高い」と書くと、担当者がそれを前提に動きます。価格の判断は、この構成の外にあります。
出力形式を固定する
{
"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": ""
}
verdict が conditional になるのは、「体制を確保できれば満たせる」「協力会社と組めば満たせる」といった場合です。ここを not_eligible に寄せると、取れる案件を落とします。
システムへ連携する
| つなぎ先 | 何をするか |
|---|---|
| 管理表 | 検討する案件を登録する。進捗を追う |
| カレンダー | 参加表明・質問・入札の期限を登録する |
| チャット/メール | 週次の候補一覧を通知する。締切が近い案件は即時に通知する |
| 営業管理 | 応札の結果を記録し、次回の判定の材料にする |
期限のカレンダー登録を省かないでください。 この業務でいちばん痛い失敗は、見つけたのに期限を過ぎることです。
人が確認する
全件、人が確認します。応札の意思表示を自動で行いません。
自動化するのは、候補を絞るところまでです。参加表明書の提出、質問の提出、入札書の提出は、すべて人が行います。
確認を速くするための設計が重要です。
- 候補一覧を 締切が近い順に並べる
verdictごとに分け、conditionalの理由を見せる- 要件ごとの引用を、公告の該当ページへリンクする
unreadableが多い案件は、人が原本を読む列に出す- 前週に「見送り」とした案件を再掲しない
例外に対処する
| 起きること | 対応 |
|---|---|
| APIが応答しない | 巡回側に切り替える。取得できなかった機関を通知する |
| サイトの構造が変わって拾えない | 取得件数が0になったら通知する。黙って0件にしない |
| 公告が訂正・期限延長された | 新着として扱い、再判定する |
| 仕様書がスキャン画像で読めない | unreadable として人が読む列に出す |
| 予定価格が非公表 | 金額帯での絞り込みを適用しない |
| 参加資格の等級が読み取れない | unreadable として人へ回す。推測で判定しない |
| 締切まで3日を切っている | 即時通知し、一覧の先頭に出す |
| 同じ案件が複数の経路で取れた | 案件番号で1件にまとめる |
| 対象機関が増えた | 巡回先の一覧を設定として持ち、コードを直さずに追加できるようにする |
| 巡回が規約に触れる可能性がある | 取得を止め、確認が済むまで再開しない |
記録を残す
- 取得した公告の原本と、取得日時・取得元
- 機械的な絞り込みで外した件数(多すぎないかを見る)
- AIの抽出結果と、引用箇所
- 仕分けの結果と、担当者の判断
- 見送った案件と、その理由
- 応札した案件の結果(落札・失注・落札価格)
5番目を必ず残してください。 「なぜこの案件を見送ったか」が残っていないと、あとで検証できません。
6番目は、絞り込みの条件を直す材料になります。 「自動で not_eligible にした案件を、他社が落札していた」と分かれば、条件が厳しすぎます。
04実装レベルの3段階
半自動化の時点で、6分が2.5分程度になります。 APIで取れる範囲だけでも、収集と一次の絞り込みが消えるためです。本格構成にすると1.5分程度になりますが、巡回の実装と維持が重くなります。 ★4としているのは、この維持の負担が理由です。 サイトの構造は予告なく変わります。作って終わりにならない構成であることを、最初に理解しておいてください。
05工数削減シミュレーション
導入後 500件 × 1.5分 ÷ 60 = 12.5 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 官公庁・自治体向けの受注が売上の1割以上あり、入札参加資格をすでに持っている企業。対象の発注機関が広く(複数省庁・複数自治体)、公告を人が見て回っている場合。年間の応札が20件以上ある場合。
- 発注機関が1〜2か所に限られ、担当者がその公告だけを見ていれば足りる場合。入札参加資格をまだ取得していない場合(そちらが先)。随意契約や特命での受注が中心の場合。
07最小構成で試す方法
- 過去3か月に応札した案件を10件選ぶ
- あわせて、見送った案件を10件選ぶ
- その公告と仕様書を生成AIに渡し、要件の抽出と仕分けをさせる
- 担当者が、当時の判断と比べる
- 応札した10件が
eligibleまたはconditionalに入るか、見送った10件がnot_eligibleに入るかを見る
5の両方向を見るのが大事です。 応札できた案件を拾えるだけでなく、見送るべき案件を落とせるかも測ってください。
判断の目安は次のとおりです。
| 判断が一致した割合 | 判断 |
|---|---|
| 8割以上 | 自動化する価値がある |
| 5〜8割 | 自社の条件(資格・実績・体制)の書き方を具体化する |
| 5割未満 | 判定の材料が足りない。自社の条件を先に整理する |
この検証はAPIも巡回も使わずにできます。 公告のPDFを手で集めるだけです。巡回の実装より先に、ここをやってください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 巡回が規約に触れていないか分からない | 各サイトの利用規約と robots.txt を先に確認する。不明なら取得しない |
| サイト構造が変わって0件になる | 取得件数を監視し、0件なら通知する。黙って0件にしない |
| 同じ案件が重複して出る | 案件番号で1件にまとめる |
| 訂正・期限延長を見落とす | 内容が変わった公告も新着として扱う |
| 仕分けが厳しすぎて候補が出ない | conditional を使う。協力会社と組めば満たせる案件を落とさない |
| AIが落札見込みを書く | 出力スキーマから該当の欄を外す。指示で禁止する |
| 期限がカレンダーに入らない | 登録まで自動化する。この構成でいちばん痛い失敗は期限切れ |
| 通知が多すぎて読まれない | 週次にまとめる。締切が近いものだけ即時にする |
| 見送った案件が翌週も出てくる | 見送りの記録を持ち、再掲しない |
| 巡回の負荷で相手に迷惑をかける | 取得の間隔を空け、早朝に行う。同時実行数を絞る |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 公開されている入札公告、自社の入札参加資格と実績、応札の検討状況。公告そのものは公開情報ですが、自社がどの案件を検討しているかは機密です。
- 自動取得の可否 … これがこの構成で最大の論点です。 各サイトの利用規約と
robots.txtを確認し、禁じられている場合は取得しないでください。公開されていることと、自動で取ってよいことは別です - 相手のサーバへの負荷 … 取得の間隔を空け、同時実行数を絞り、業務時間帯を避けてください。公的機関のサイトに過度な負荷をかけないでください
- 自社の検討状況 … どの案件を検討しているかは、競合に知られたくない情報です。管理表のアクセス範囲を限定してください
- 入札参加資格の情報 … 等級や実績は、外部に出す必要のない情報です。外部サービスへ渡す範囲を確認してください
- 落札見込みを扱わない … 価格の検討に、この構成の出力を使わないでください。入札価格の決定は、別の手続きと権限で行われるべきものです
- 公正な競争 … 他社の応札状況を推測する用途に広げないでください。入札の公正性に関わります
- 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます
- 自動実行してよい範囲 … 収集、絞り込み、要件の抽出、仕分け、期限の登録までです。参加表明、質問の提出、入札書の提出は、必ず人が行います
誤りが起きた場合のリスクは、応札できる案件を自動で落としてしまうことと、取得の仕方が問題になることの2つです。前者に対しては見送りの記録を残して検証し、後者に対しては規約の確認を運用の前提としてください。
10まず何から始めるか
1週目:自社の条件を書き出す
入札参加資格(機関ごとの等級と有効期限)、過去3年の実績、配置できる体制、対応できる地域を表にします。これがないと判定できません。
あわせて、過去1年の応札と見送りを一覧にしてください。 検証の材料になります。
2週目:20件で試す
応札10件・見送り10件の公告を手で集め、要件の抽出と仕分けを試します。両方向の一致率を見てください。
3週目:巡回してよい範囲を確認する
公開APIで取れる範囲を確かめ、APIで取れない機関については、利用規約と robots.txt を1か所ずつ確認します。 ここは時間をかけてください。不明なものは対象から外します。
4週目:APIの範囲だけで組む
公開APIから取得し、機械的な絞り込みと仕分けまでを作ります。巡回はまだ作りません。 これだけで、収集の手間の大半が消える場合があります。
2か月目:期限の管理をつなぐ
カレンダー登録と管理表への登録を作ります。この構成の値打ちの半分は、期限を落とさないことにあります。
3か月目以降: 規約の確認が済んだ機関から、巡回を追加します。あわせて、取得件数の監視を必ず入れてください。 サイトの構造変更に気づけないと、「静かに0件」になります。
半年後には、見送った案件の落札結果を確かめてください。 自動で落とした案件を他社が取っていたなら、絞り込みの条件が厳しすぎます。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 官公需情報ポータルサイト検索APIが中小企業庁から提供されており、官公需に関する入札情報を自動的に取得できること。API提供形式がREST、レスポンスのデータ形式がXMLであること。利用条件の詳細は公開されているAPIガイドで確認する必要があること | e-Gov APIカタログ:官公需情報ポータルサイト検索API | 2026-09-21 |
Claude APIのweb search toolが、検索結果に基づく回答に引用を返すこと。max_uses で1リクエストあたりの検索回数を制限できること。allowed_domains または blocked_domains で対象ドメインを限定できる(両方の同時指定は400エラー)こと。料金が検索1,000回あたり10ドルで、トークン費用が別にかかること | Claude Docs: Web search tool | 2026-09-21 |
| Claude APIの構造化出力が、制約付きデコードによりスキーマに沿ったJSONの生成をモデル側で保証すること。列挙・定数・参照は使えるが、再帰スキーマや数値の範囲指定は使えないこと | Claude Docs: Structured outputs | 2026-09-21 |
公開されている情報であっても、自動で取得してよいとは限りません。 巡回の対象とする各サイトについて、利用規約と robots.txt を必ず確認し、自動取得が禁じられている場合は対象から外してください。取得の間隔を空け、同時実行数を絞り、相手のサーバに過度な負荷をかけないでください。 官公需情報ポータルサイト検索APIの取得できる項目、リクエストのパラメータ、件数の上限、利用条件は、同サイトが公開しているAPIガイドで確認してください(本記事ではAPIガイドの内容そのものは確認していません)。
この構成が出す仕分けは、公告に書かれた要件と自社の条件を突き合わせた結果であり、応札の可否を保証するものではありません。 参加資格の判断は最終的に発注機関が行います。また、この構成を落札見込みの予想や、他社の応札状況の推測に使わないでください。入札の公正性に関わります。 参加表明、質問の提出、入札書の提出は、必ず人が行ってください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。巡回対象のサイト構造は予告なく変わるため、運用開始後も継続的な保守が必要です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0136)についてのご相談はこちらから。
