Skip to content

要件定義書 ​

転職エージェント業務管理システム


1. プロジェクト概要 ​

1.1 背景・目的 ​

転職エージェント業務において、現在複数のツール(スプレッドシート、社内システム、Matchingood)を併用しており、以下の課題が発生している。

  • 複数ツールへの転記作業による工数増大
  • 登録漏れ・更新漏れの発生
  • 情報の一元管理ができていない

本システムは、これらの課題を解決し、業務効率化と登録漏れ防止を実現することを目的とする。

1.2 対象ユーザー ​

役割人数主な業務
エージェント2名面談、企業紹介、選考フォロー
アシスタント1名エントリー、企業調整、書類選考対応

※ 権限分けは不要(全員が全機能を使用可能)

1.3 スケジュール ​

フェーズ期限内容
MVP2025年2月末基本機能(求職者・企業・選考管理、ダッシュボード)
フェーズ22025年3月以降メール機能、データ移行、追加機能

2. 業務フロー ​

2.1 求職者対応フロー ​

[申込受付]                ← ステータス: 申込(デフォルト)
    │
    ▼
[電話面談調整]
    │
    ▼
[電話面談実施]            ← ステータス: ヒアリング面談(手動)
    │
    ▼
[Zoom面談調整]
    │
    ▼
[Zoom面談実施]            ← ステータス: キャリア面談(手動)
    │                       ※ASP承認ポイント
    ▼
[求人紹介]                ← ステータス: 活動中(選考追加時に自動)
    │
    ▼
[応募書類作成支援]
    │
    ▼
[企業へエントリー]
    │
    ▼
[選考フォロー]
    │
    ▼
[内定]                    ← ステータス: 内定(選考が内定時に自動)
    │
    ▼
[入社決定]                ← ステータス: 入社決定(手動)

2.2 求職者ステータス定義 ​

#ステータス名説明更新タイミング
1申込新規登録直後登録時(デフォルト)
2ヒアリング面談電話面談完了手動
3キャリア面談Zoom面談完了(ASP承認ポイント)手動
4活動中求人紹介〜選考フォロー中選考追加時に自動
5内定内定獲得選考が内定になったら自動
6入社決定入社確定手動
7活動終了途中離脱・終了手動

自動ステータス変更ロジック:

  • 選考追加時: 現在のステータスが「活動中」より前(申込/ヒアリング面談/キャリア面談)なら「活動中」に自動変更
  • 選考が内定時: 選考ステータスが「内定」を含む名前に変更されたら、現在のステータスが「内定」より前なら「内定」に自動変更

2.3 流入パターン ​

パターン流入経路売上計算コスト
スカウト媒体経由ビズリーチ、リクルートダイレクトスカウト等決定年収 × (1 - 媒体手数料率)媒体手数料
自社サイト直接自社サイトから直接申込決定年収なし
自社サイトASP経由ASP経由で自社サイトに流入決定年収ASP成果報酬

3. 機能要件 ​

3.1 MVP機能一覧 ​

求職者管理 ​

機能説明
求職者一覧フィルタ・検索・ソート機能付き一覧表示
求職者詳細基本情報、選考一覧、面談メモの表示
求職者登録・編集基本情報の登録・更新
面談メモ面談記録の登録・表示

企業管理 ​

機能説明
企業一覧フィルタ・検索機能付き一覧表示
企業詳細基本情報、求人一覧の表示
企業登録・編集基本情報の登録・更新

求人管理 ​

機能説明
求人一覧フィルタ・検索機能付き一覧表示
求人詳細基本情報、選考中求職者一覧、担当者情報、エントリーURL
求人登録・編集基本情報の登録・更新

選考管理 ​

機能説明
選考一覧(横断)全選考の横断的一覧表示
選考詳細選考情報、ステータス履歴の表示
選考登録・編集選考情報の登録・更新
ステータス更新ステータス変更(履歴自動追加)

ダッシュボード ​

機能説明
未完了タスク対応が必要なタスク一覧
今日の面接予定本日の面接スケジュール
今週の面接予定今週の面接スケジュール
選考結果待ち結果待ち選考の一覧
実績サマリ申込数、面談数、内定数等(前月比較付き)

集計・レポート ​

機能説明
日次・月次実績期間別の実績集計
媒体別集計媒体ごとの売上・コスト
ASP別集計ASPごとのコスト・出金予定
担当者別集計エージェント/アシスタント別の実績

マスタ管理 ​

機能説明
応募媒体管理媒体の追加・編集・無効化
ASP管理ASPの追加・編集・無効化
ステータス管理各種ステータスの管理
ユーザー管理エージェント/アシスタントの管理

3.2 フェーズ2機能(MVP後) ​

  • メール送信機能
  • 既存データ移行(約1,000人分)
  • カレンダー連携
  • Matchingood連携

4. データ要件 ​

4.1 主要エンティティ ​

エンティティ説明想定データ量
求職者(candidates)求職者の基本情報約1,000件(既存)+ 月50件
企業(companies)紹介先企業の情報約200件
求人(jobs)企業の求人情報(1企業に複数求人)企業あたり平均3件
選考(applications)求職者×求人の選考情報求職者あたり平均5件
面談メモ(candidate_notes)面談記録求職者あたり平均3件

4.2 ASP出金日計算ロジック ​

ASP経由の成果報酬は、締め日と出金月オフセットに基づいて計算する。

計算式:

  • 申込日 ≤ 締め日 → 申込月 + offset ヶ月後の月末
  • 申込日 > 締め日 → 申込月 + offset + 1 ヶ月後の月末

例(締め日15日、offset=1の場合):

  • 1月10日申込 → 2月末出金
  • 1月20日申込 → 3月末出金

4.3 ASP承認判定ロジック ​

判定条件
承認ステータスが「キャリア面談」以降(Zoom面談日が入力済み)
否認電話終了理由 または 終了理由が入力済み
対応待ち上記以外で進行中

※「キャリア面談」ステータスへの手動変更がASP承認ポイントとなる


5. 非機能要件 ​

5.1 性能要件 ​

項目要件
同時接続数3名(社内ツールのため)
レスポンス時間一覧表示: 2秒以内、詳細表示: 1秒以内
可用性99%以上(平日9:00-21:00)

5.2 セキュリティ要件 ​

項目要件
認証Googleアカウント認証(Google Workspace連携)
アクセス制限自社ドメインのGoogleアカウントのみ許可
通信HTTPS必須

5.3 運用要件 ​

項目要件
バックアップ日次自動バックアップ(Supabase標準)
監視エラーログ監視
デプロイGitHub Actionsによる自動デプロイ

6. 画面一覧 ​

画面ID画面名説明
SC-001ログイン画面※Cloudflare Accessで代替、実装不要
SC-002ダッシュボードトップ画面
SC-003求職者一覧画面求職者コレクション
SC-004求職者詳細画面求職者シングル
SC-005求職者登録・編集モーダル求職者フォーム
SC-006企業一覧画面企業コレクション
SC-007企業詳細画面企業シングル
SC-008企業登録・編集モーダル企業フォーム
SC-009求人一覧画面求人コレクション
SC-010求人詳細画面求人シングル
SC-011求人登録・編集モーダル求人フォーム
SC-012選考一覧画面選考コレクション(横断)
SC-013選考詳細画面選考シングル
SC-014選考登録・編集モーダル選考フォーム
SC-015ステータス更新モーダルステータス変更
SC-016集計・レポート画面各種集計表示
SC-017マスタ管理画面マスタデータ管理

7. 外部システム連携 ​

7.1 MVP ​

連携先連携内容
Google Workspace認証(Cloudflare Access経由)
Supabaseデータベース

7.2 フェーズ2 ​

連携先連携内容
Googleカレンダー面接予定の同期
Gmailメール送信
Matchingoodデータ連携(詳細未定)

8. 用語集 ​

用語説明
求職者転職支援サービスを利用する人
エージェント面談・企業紹介を担当するスタッフ
アシスタントエントリー・企業調整を担当するスタッフ
企業紹介先の会社
求人企業が募集する個別ポジション。1企業に複数求人が存在する
選考求職者が特定の求人に応募してから結果が出るまでの過程
内定確度選考が内定に至る見込み度合い(A/B/C等)
ASPアフィリエイトサービスプロバイダー。自社サイトへの送客に対して成果報酬を支払う
媒体求職者を集客するプラットフォーム(ビズリーチ等)
ヒアリング面談電話で行う初回面談
キャリア面談Zoomで行う本格的なキャリア相談(ASP承認ポイント)
Matchingood既存の人材紹介システム
面談シート求職者に企業・求人を紹介するためのスプレッドシート資料

9. 追加機能要件 ​

9.1 面談シート作成機能 ​

9.1.1 概要 ​

求職者詳細画面から、企業・求人情報を選択してGoogle Sheetsで面談シート(企業紹介資料)を自動生成する機能。

9.1.2 機能要件 ​

項目仕様
出力形式Google Sheets(新規スプレッドシート作成)
出力項目ユーザーがカスタム選択可能
選択UIモーダル(企業タイプ別タブ + 求人チェックボックス)
認証方式サービスアカウント(バックエンド認証)
シート管理DB履歴管理 + Google Drive保存
選択粒度求人単位で選択

9.1.3 出力可能フィールド ​

企業情報:

  • 企業名、企業タイプ、契約ステータス
  • 登録媒体URL

求人情報:

  • 求人タイトル、求人内容(description)
  • 求人カテゴリ、公開URL、登録URL
  • 担当者名、担当者メール、担当者電話

9.1.4 シート構成 ​

  • 企業タイプごとにシートを分割(例: SI、SES、自社サービス...)
  • 各シートに選択した求人を一覧表示
  • ヘッダー行 + データ行の表形式

9.1.5 画面仕様 ​

画面ID画面名説明
SC-018面談シート作成モーダル求人選択・フィールド選択フォーム

9.1.6 API仕様 ​

メソッドパス説明
GET/api/v1/jobs/for-interview-sheet面談シート用求人一覧(企業タイプ別)
POST/api/v1/interview-sheetsシート作成
GET/api/v1/interview-sheets履歴取得(candidate_idでフィルタ)

9.1.7 データモデル ​

interview_sheets テーブル:

カラム名型説明
idUUID主キー
candidate_idINTEGER求職者ID(外部キー)
google_sheet_idVARCHAR(100)Google SheetsのID
google_sheet_urlVARCHAR(500)Google Sheetsの公開URL
titleVARCHAR(200)シートタイトル
selected_fieldsJSONB選択されたフィールド一覧
job_idsINTEGER[]選択された求人ID配列
created_byINTEGER作成者(外部キー)
created_atTIMESTAMPTZ作成日時

9.2 求職者向けマイページ機能 ​

9.2.1 概要 ​

求職者が自分の選考状況をリアルタイムで確認できる公開ページ。ログイン不要でUUIDトークンベースのURLでアクセス可能。

9.2.2 機能要件 ​

項目仕様
アクセス方式URL直接アクセス(認証不要)
認証方式UUIDトークン(推測困難な一意識別子)
トークン生成求職者登録時に自動生成
有効期限なし(将来的に追加検討)
表示情報選考一覧、ステータス、面接スケジュール

9.2.3 表示項目 ​

求職者情報:

  • 氏名(姓 名)
  • 最終更新日時

選考情報(企業ごと):

  • 企業名
  • 求人タイトル
  • 選考ステータス(色分け表示)
  • 面接スケジュール(日時、場所、確定/提案)
  • 更新日時

9.2.4 ステータス色分け ​

ステータス種別色
内定・採用緑
不合格・辞退赤
選考中・面接青
書類選考紫
その他グレー

9.2.5 画面仕様 ​

画面ID画面名URL説明
PB-001マイページ/mypage/:token求職者向け選考状況一覧
PB-002エラーページ(同上)無効なトークン時の表示

9.2.6 API仕様 ​

メソッドパス認証説明
GET/api/v1/public/candidates/:token不要公開用求職者情報取得

レスポンス例:

json
{
  "data": {
    "id": 123,
    "name": "山田 太郎",
    "applications": [
      {
        "id": 1,
        "company_name": "株式会社A",
        "job_title": "エンジニア",
        "status": { "id": 1, "name": "書類選考中" },
        "schedules": [
          {
            "id": "uuid",
            "start_time": "2025-01-20T10:00:00",
            "end_time": "2025-01-20T11:00:00",
            "status": "確定",
            "location": "本社ビル5F"
          }
        ],
        "updated_at": "2025-01-15T10:00:00"
      }
    ],
    "updated_at": "2025-01-15T10:00:00"
  }
}

9.2.7 データモデル ​

candidates テーブル追加カラム:

カラム名型制約説明
public_tokenUUIDUNIQUE, NOT NULL公開アクセス用トークン

インデックス:

  • idx_candidates_public_token ON candidates(public_token)

9.2.8 セキュリティ考慮 ​

  • UUIDv4形式(推測困難)
  • 正規表現によるフォーマット検証
  • 個人情報は最小限(氏名と選考情報のみ)
  • RLSポリシー設定済み

9.2.9 管理画面連携 ​

求職者詳細画面にマイページURLを表示し、コピーボタンで求職者へ共有可能。

マイページURL: https://example.com/mypage/550e8400-e29b-41d4-a716-446655440000 [コピー]