投稿する

入札エージェント

全国の自治体や官公庁が公開する公共工事の入札情報を、24時間無人で収集・分析・配信する自律型エージェントシステムです。 散らばった公告データをClaude AIが自動で読み取り、案件要約や需要分析、ガイド記事の作成までを人手を介さず実行します。独自の自己修復機能を備え、サイト構造の変化に伴うスクレイパーの故障もAI自身が診断・修正しながら稼働し続けるのが特徴です。 建設業者の情報収集コストを最小化するため、毎朝のメール通知やSNS投稿、週次レポートの自動生成を通じて、狙い目の案件を見逃さない環境を構築します。
zip未取得

JOJO Autonomous Brain

Human Out of the Loop — 人間が寝ている間も、勝手に動いて、勝手に賢くなる入札情報AIシステム

Project Overview (プロジェクト概要)

JOJO Autonomous Brain は、日本全国の公共工事入札情報を 24時間無人で収集・分析・配信し、障害が起きても自己修復する自律エージェントシステム です。

  • 誰のため: 全国でバラバラな入札ポータルを毎日手作業で巡回している建設業者(約47万社規模)
  • 何をする: 全国1,741自治体(直接取得1,445)の入札公告を自動収集 → Claude AIで分析 → メール/X/週次レポート/ガイド記事の4チャネルで自動配信
  • どう動く: OODAループ(Observe→Analyze→Act)を中核に、7つのCronジョブ + Watchdogが毎日決まった時刻に自動実行。直近8日間、人間の介入ゼロで連続稼働中
  • 進化する: 需要ギャップを自分で検出して記事を自動生成、壊れたスクレイパーをClaude AIが自動修復、直せない場合は人間にエスカレーション
  • ランタイム: Next.js 15 / Vercel Cron + GitHub Actions(Claude Code 互換のエージェント群)
┌─────────────────── JOJO Autonomous Brain ───────────────────┐
│                                                              │
│   Observer ──→ Analyzer ──→ Actor                            │
│      ↑           (Claude)      │                             │
│      └────── Feedback Loop ────┘                             │
│                                                              │
├──────────────────────────────────────────────────────────────┤
│  Scrapers (1,741)  │  Email Alerts   │  SNS Auto-Post        │
│  Content Gen       │  DIO Watchdog   │  Weekly Reports       │
│  Self-Healing      │  Health Check   │  Brain Cycle          │
└──────────────────────────────────────────────────────────────┘

3軸評価

1. 稼働性 — 止まらない

仕組み概要
Vercel Cron7つのCronジョブが毎日決まった時刻に自動実行
DIO WatchdogGitHub Actions障害の自動検知・リトライ・エスカレーション
Health CheckDB/LP/品質スコアの死活監視 + メール通知
Brain Cycle全サブシステムのメトリクス自動収集

設計: 365日無人で回り続ける構成。実績: 直近8日間、人間の介入ゼロで連続稼働中。

Cronスケジュール (JST):

02:00 JST  sync-bids       KKJ API + 県スクレイパー同期
03:00 JST  brain-cycle     全サブシステム観測 → Claude分析 → 自律対応
04:00 JST  heal-scrapers   壊れたスクレイパーの自動診断・修復
05:00 JST  content-evolve  需要ギャップ分析 → 記事自動生成 (月/木)
08:00 JST  weekly-report   週次マーケットレポート自動生成 (日曜)
09:30 JST  send-alerts     メールアラート配信 (平日)
10:00 JST  health-check    死活監視 + 異常時メール通知
+ DIO Watchdog (GitHub Actions障害監視, 別ランタイム)

2. 進化性 — 勝手に賢くなる

進化ループ 1: コンテンツ自動最適化

入札データ (44,903件/今年度) → 業種別需要分析 (8業種) → ガイド記事カバレッジ分析
     → ギャップスコア算出 → 高需要・低カバレッジの記事を Brain が自己決定して生成
          → BrainDecision に判断理由を記録

実データ例 (業種別需要ギャップ):

  • その他: 6,578件 / 建築: 4,708件 / コンサル: 1,938件 / 役務: 1,366件 / 設備: 1,037件
  • 既存170本を土台に、Brainが不足領域を検出して 9本を追加生成(本数ではなく「何を書くか自分で決めた」点が進化性)

進化ループ 2: スクレイパー自己修復

スクレイパー障害検知 → 対象サイトHTML取得 → Claude DOM分析
     → 新CSSセレクタ提案 → cheerioでテスト → 修復結果を記録

実績: 成功1件 + エスカレーション1件

  • 北海道庁: table.bid-list(旧) → article h2 a(新) を自動提案 → 5件抽出成功
  • 兵庫県: 構造変更を診断したが「複雑すぎて自動修復不可」と判断 → 人間にエスカレーション
  • 本質は成功率ではなく、「直す / 止めず人へ渡す」の判断ループまで自動化したこと

全判断のログ

すべての自律判断は BrainDecision テーブルに記録(人間が個別指示せず Brain がログから検出):

  • subsystem: どのサブシステムが判断したか
  • phase: observe / analyze / act
  • reasoning: なぜその判断をしたか
  • confidence: 確信度 (0.0-1.0)
  • outcome: 結果

累計実績: 自律判断 143件(OODA: 観測75 / 分析23 / 実行45)/ インサイト検出 57件 / 観測メトリクス 295点

3. 事業性 — 刺さる課題を解く

指標数値
スクレイパー対象全国1,741自治体 / 直接取得 1,445 (83.0%)
入札データ蓄積44,903件 (今年度)
ガイド記事既存 170本 + Brain自己決定生成 9本
メールアラート平日毎朝自動配信
SNS投稿X(Twitter)に自動投稿 (平日9時/金曜17時/日曜8時)

解いている課題:

日本の建設業者(約47万社規模)は、発注機関ごとにバラバラな入札情報を毎日手動で巡回しています。1社が週2時間巡回するなら年約100時間、複数自治体を追う社は数百時間規模。本システムは全国の入札情報を一元収集・AI分析し、メール/SNSで自動配信することでこの情報収集コストを削減します。

基本機能は無料提供。高度な分析機能を備えた有料プランも提供予定です。

Tech Stack

  • Framework: Next.js 15 (App Router) + React 19 + TypeScript
  • Database: PostgreSQL (Neon) + Prisma ORM
  • AI: Anthropic Claude Haiku (入札分析・記事生成・スクレイパー修復)
  • Hosting: Vercel (Cron Jobs)
  • Scraping: Cheerio (Group A) + Playwright (Group B)
  • Email: Resend (Magic Link認証 + アラート配信)
  • SNS: X API v2 (OAuth 1.0a)
  • CI/CD: GitHub Actions (スクレイパー実行 + DIO Watchdog)

Architecture

jojo-agents/
├── lib/brain/              # Autonomous Brain Core (OODAループ中核)
│   ├── types.ts            # 型定義
│   ├── logger.ts           # 判断・メトリクス・インサイトのDB記録
│   ├── observer.ts         # 5サブシステムのメトリクス自動収集
│   ├── analyzer.ts         # Claude分析 (パターン検出・異常検知)
│   ├── actor.ts            # インサイトへの自動対応
│   ├── content-evolution.ts # 需要分析→記事自動生成
│   ├── scraper-healer.ts   # スクレイパー自己修復エンジン
│   └── index.ts            # Brain Cycle統合
├── lib/pref/scrapers/      # 1,741自治体スクレイパー
├── lib/alerts/             # メールアラートシステム
├── lib/social/             # SNS自動投稿
├── lib/enrich/             # AI入札エンリッチメント
├── lib/tonio/              # DIO Watchdog (障害監視)
├── lib/guide/              # ガイド記事生成
├── app/api/cron/           # Cronエンドポイント群
│   ├── brain-cycle/        # Brain Cycle (毎日)
│   ├── brain-content-evolve/ # コンテンツ進化 (月/木)
│   ├── brain-heal-scrapers/  # スクレイパー修復 (毎日)
│   └── ...
├── app/api/brain/          # ダッシュボードAPI (stats / timeline)
├── app/admin/brain/        # 進化ダッシュボード
└── prisma/schema.prisma    # DB Schema (BrainDecision/Metric/Insight含む)

DB Models (Brain)

model BrainDecision {
  subsystem   String   // scraper | content | alert | social | watchdog | brain
  phase       String   // observe | analyze | act
  reasoning   String   // 判断理由
  action      String   // 実行アクション
  outcome     String?  // 結果
  confidence  Float    // 確信度
}

model BrainMetric {
  subsystem   String   // サブシステム名
  metric      String   // メトリクス名
  value       Float    // 数値
  unit        String?  // count | percent | ms | yen
}

model BrainInsight {
  type        String   // pattern | anomaly | opportunity | healing
  title       String
  description String
  evidence    String   // JSON
  actionTaken String?
  status      String   // discovered | acted | measured | archived
}

Setup

npm install
cp .env.example .env.local  # 環境変数を設定 (DB / Anthropic / Resend / Auth など)
npx prisma db push          # DBスキーマ反映
npm run dev                 # http://localhost:3100

主要な環境変数は .env.example を参照(DATABASE_URL / ANTHROPIC_API_KEY / RESEND_API_KEY / AUTH_SECRET / CRON_SECRET など。値は各自で取得)。

Cost

運用原価 約 ¥4,880/月(Vercel + Neon + Claude API + Resend / GitHub Actions)。追加人件費ゼロ。販売価格は別途(Pro想定 ¥9,800〜)。

License

© JOJO's Company. 本リポジトリはコンテスト提出・コミュニティ共有を目的に公開しています。

閲覧・学習・検証は自由です。商用利用・再配布はポータル利用規約に従ってください。