Shukatsu
Hub

就活情報の一元管理

メール、予定、締切、企業研究が分散している学生の負担を減らすため、
就活の状況と次の行動を一元管理するWebダッシュボードをチームで開発しました。

FINAL RECORD / 2026-08-07

12
実装機能
10
画面
485
テスト合計
28
API
バックエンド289件、フロントエンド196件。数値は最終発表資料に記録された実測値です。

就活情報の一元管理

機能を並べるのではなく、受け取った情報が次の準備へつながる流れを設計しました。

  1. Inputメールを集約Gmailのメタデータを同期し、
    重要・確認・広告へ分類
  2. Status選考を整理企業を5段階のカンバンで管理
  3. Plan締切を予定へ反映タスクと空き時間を
    今日画面へ集約
  4. Prepare面接準備へ進む企業研究、自己分析、
    想定問答を連携
今日やること、返すべきメール、研究時間、予定を一画面にまとめたShukatsuHubの今日画面
Today Dashboard開いた時点で、今日やることと使える時間を把握できます。

整理

今日・カレンダー・受信箱

予定、空き時間、重要メールを日単位で確認

管理

タスク・選考ステータス

企業ごとの締切と選考段階を共通データとして扱う

発見

企業検索・マッチング

希望条件との一致を、説明可能な計算で提示

準備

企業研究・想定問答・ナレッジ

調べた内容と面接準備を企業単位で蓄積

実装担当

画面・ロジック
今日画面、カレンダー、タスク管理
選考管理
5列の選考ステータス管理ボード
企業発見
条件検索、マッチ率計算、選考ボードへの追加
開発運用
ガードレール、Git運用手順、仕様書の更新
発表
最終発表スライドの構成・統合・レイアウト調整
企業カードを5段階の列で管理する選考ステータス画面
選考ステータス管理
希望条件と企業情報から一致率と理由を示す企業マッチング画面
企業検索・マッチング
就活と学業の予定を週単位で表示するカレンダー画面
カレンダー

各判定方法

予測しにくい外部サービスを境界へ閉じ込め、同じ入力に同じ結果が必要な処理は通常のプログラムとして実装しました。

Decision 01

マッチ率は純粋な計算

毎回結果が変わるAIを使わず、職種・勤務地・年収などの重み付き計算で、理由を説明できる結果にしました。

Decision 02

メール本文を取得しない

Gmail連携の権限をメタデータに限定し、取得対象も件名・送信元・日時へ絞りました。

Decision 03

外部APIはテストでモック

AIとGoogle APIの応答に依存せず、キーがない場合や通信失敗時の動作を検証できる構成にしました。

Backend
Python 3.11 / FastAPI / SQLModel / SQLite
Frontend
React / Vite / TypeScript / TanStack Query / CSS
AI
Azure OpenAI / Responses API / Structured Outputs
Integration
Google Calendar API / Gmail API / OAuth 2.0
Test
pytest / Vitest / Testing Library

企業データはサンプル、iCloudメールはモックです。認証・複数ユーザー対応は対象外で、停滞企業の検出は設計のみです。スマートフォン幅を想定していますが、実機検証は行われていません。

最終発表資料

課題設定、12機能、技術判断、テスト、失敗から改善した開発プロセスまでをまとめた資料です。

発表資料を開く