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 [コピー]