曖昧にしてよい情報を分ける。
AIは分類や要約を担当。締切や取消などの情報は、明示的なルールで処理する設計にしました。
CASE 03 / 自社実験 / 検証完了・配信停止
必要な調達情報を、必要な人へ。
官公庁・自治体のIT/DX調達情報を収集し、条件に合う情報をSlackへ届ける仕組みを開発。技術検証を終え、情報の供給量と課金仮説を踏まえて事業化を保留し、定期配信を停止しています。
PERIOD
2026.07 — 09
01 / CONTEXT
調達情報の分類・通知を動く形にし、実際に得られる情報量や利用条件を確認しました。技術が成立したことと、事業として継続する判断を分けて検証したプロジェクトです。
02 / HOW IT WORKS
各ステップを選ぶと、役割を確認できます。
官公庁や自治体の情報源から、入札・公募などの更新を集めます。
03 / DESIGN CHOICES
AIは分類や要約を担当。締切や取消などの情報は、明示的なルールで処理する設計にしました。
抽出できなかった項目や分類に失敗した情報は、推測で補わず状態を残します。
開発時の構成・検証記録です。
自律化の設計判断: 数値と法的判断は AI に触らせない(締切抽出は 249 行の正規表現、取消判定は 133 行の宣言文マッチ、重複排除は 160 行のルールベース)。AI に任せるのは 5 フィールドのみ(is_it / confidence / category / one_line_summary / buyer_fit_tags)。プロンプトは「バーティカル設定」から差し替え可能な設計で、別領域プロダクトへ移植可能な抽象化を試みた。失敗時のガード(Anthropic SDK エラー / JSON parse 失敗)は fallback で is_fallback: true を返し、案件を破棄せず「unclassified」として保持。 Design principles: numbers and legal calls stay out of the AI — deadline extraction is 249 lines of regex, cancellation detection is 133 lines of declaration-matching, dedup is 160 lines of rules. Only 5 fields are AI-owned (is_it / confidence / category / one_line_summary / buyer_fit_tags). Prompts are swappable per "vertical config," an abstraction meant to be portable to other domains. Failure guards (Anthropic SDK errors / JSON parse failures) return is_fallback:true and keep the item as "unclassified" rather than dropping it.
運用実績: 締切抽出は初回本番で 適合率 100%(再現率 20 – 50% を意図的に維持、取りこぼしは null で「出典に記載なし」表示)。取消判定は 138 件中 2 件を 誤検知 0 で検出。 In production: deadline extraction hit 100% precision on first run (recall held at 20–50% by design; misses shown as "not stated in source"). Cancellation detection caught 2 of 138 items with zero false positives.
LET'S BUILD.