Skip to content

agendlee スケジュール機能ドキュメント ​

注意: 求職者サイドの機能は除外しています


1. 機能概要 ​

1.1 エージェント(管理者)向け機能 ​

機能説明
スケジュール一覧表示全求職者のスケジュールをカレンダー形式で表示
求職者フィルター特定の求職者でスケジュールを絞り込み
面談予定の提案求職者に面談候補日時を提案
面談予定の確定提案した予定を確定し、メール通知
スケジュール編集・削除登録済みの予定を変更・削除
日次Slack通知当日の面談予定を毎朝Slackに通知

1.2 企業向け機能(エージェントが企業として操作) ​

機能説明
求職者の空き予定確認求職者が登録した空き時間を表示
面談予定の確定登録空き予定内に面談予定を確定
再調整依頼求職者に追加の空き予定入力を依頼

2. スケジュールのステータス管理 ​

2.1 ステータス種別 ​

ステータス説明用途
提案エージェントが提案中の候補日求職者への日程打診
確定面談が確定した予定最終決定した面談日程
空き求職者が対応可能な時間帯求職者が登録(参照用)

2.2 面接段階(stage) ​

  1. カジュアル面談
  2. コーディングテスト
  3. 一次面接
  4. 二次面接
  5. 最終面接
  6. オファー面談
  7. その他

2.3 対応可能形式(adaptability) ​

  • オンラインのみ可
  • 対面のみ可
  • オンライン・対面可

3. カレンダー表示機能 ​

3.1 表示モード ​

モード説明
timeGridWeek週表示(デフォルト)
dayGridMonth月表示
timeGridDay日表示
listWeekリスト表示

3.2 営業時間 ​

  • 表示範囲: 8:00 - 21:00
  • 営業日: 月曜〜金曜
  • 祝日: グレー表示(holidays-jp APIで取得)

3.3 カラーコーディング ​

条件色カラーコード
確定・オファー面談赤#CC0900
確定・その他オレンジ#CC7700
空き予定緑#009900
提案中青#0000FF

3.4 インタラクション ​

  • ドラッグ&ドロップ: カレンダー上で新規イベント作成
  • クリック: 既存イベントの編集モーダルを開く
  • 今日ボタン: 現在日にスクロール

4. CRUD操作 ​

4.1 スケジュール作成(提案) ​

エージェントが面談を提案する場合:

入力項目:
- 日時(開始・終了)
- 企業選択
- 面接段階
- ステータス: 「提案」で固定

処理:
1. バリデーション(日付・時間の妥当性)
2. DynamoDBに登録
3. Slack通知

4.2 スケジュール確定 ​

提案から確定に変更する場合:

入力項目:
- 確定メールタイトル
- 確定送信メール文(必須)

処理:
1. ステータスを「提案」→「確定」に更新
2. 求職者にメール送信
3. Slack通知

4.3 スケジュール編集 ​

編集可能項目:
- 開始日時
- 終了日時
- ステータス(提案⇄確定)

4.4 スケジュール削除 ​

  • 確認ダイアログ表示後、削除実行
  • Slack通知

5. 通知機能 ​

5.1 Slack通知 ​

タイミング内容
スケジュール登録時新規予定の詳細
スケジュール変更時変更前後の比較
スケジュール削除時削除された予定の詳細
毎日(定時)当日の全面談予定

日次通知の例:

本日、2024年1月15日(月)の面談予定

1. 14:00-15:00 山田太郎様 / 株式会社ABC(一次面接)
2. 16:00-17:00 鈴木花子様 / DEF株式会社(最終面接)

5.2 メール通知 ​

タイミング宛先内容
確定時求職者面談日程確定のお知らせ

メール件名:

【面接日程確定/[企業名]様】[求職者名]様 / TechClipsエージェント

6. データ構造 ​

6.1 スケジュールオブジェクト ​

typescript
interface Schedule {
  id: string // スケジュール固有ID
  jobSeekerId: string // 求職者ID
  companyId: string // 企業ID
  companyName: string // 企業名
  jobSeekerName: string // 求職者名
  status: '提案' | '確定' | '空き'
  stage: string // 面接段階
  start: string // ISO8601形式の開始時刻
  end: string // ISO8601形式の終了時刻
  adaptability?: string // 対応可能形式
  createdAt: string
  updatedAt: string
}

6.2 カレンダーイベント(FullCalendar用) ​

typescript
interface CalendarEvent {
  title: string // 表示タイトル
  start: string // ISO8601形式
  end: string // ISO8601形式
  backgroundColor: string // 背景色
  textColor: string // テキスト色
  extendedProps: {
    status: string
    stage: string
    partnerName: string
    adaptability: string
  }
}

7. API一覧(エージェント/管理者向け) ​

7.1 スケジュール取得 ​

メソッドパス説明
GET/schedule全スケジュール取得
GET/schedule/{jobSeekerId}/{companyId}特定求職者×企業のスケジュール

7.2 スケジュール操作 ​

メソッドパス説明
POST/schedule新規スケジュール作成(提案)
POST/schedule/{jobSeekerId}/{companyId}面談予定確定
PATCH/scheduleスケジュール更新
DELETE/scheduleスケジュール削除

7.3 その他 ​

メソッドパス説明
GET/user/forfilterフィルター用ユーザーリスト
GET/user/{jobSeekerId}/progress求職者の応募企業リスト
POST/readjustment再調整依頼

8. バリデーションルール ​

8.1 日時バリデーション ​

ルール説明
日付過去日は不可
開始時間8:00〜21:00の範囲内
終了時間開始時間より後
時間単位30分単位に正規化

8.2 スケジュール登録時 ​

  • 重複チェック: 同一時間帯に確定・提案予定がないこと
  • 空き予定チェック: 企業側で確定する場合、求職者の空き予定内であること

9. 選考進行管理(ProgressTab) ​

求職者ごとの選考進行状況を管理する機能。

9.1 進行ステップ ​

ステップ説明
1. 入力待ち求職者が空き予定を入力中
2. 日程提案エージェントが日程を提案中
3. 調整終了日程が確定
4. 選考終了選考プロセス完了

9.2 データ構造 ​

typescript
interface Progress {
  companyId: string
  companyName: string
  currentStep: number // 0-3
  scheduleURL: string // 日程調整URL
  updatedAt: number // タイムスタンプ
}

10. 使用技術 ​

10.1 フロントエンド ​

  • カレンダー: FullCalendar(React版)
    • dayGridPlugin, timeGridPlugin, listPlugin, interactionPlugin
  • タイムゾーン: Asia/Tokyo(JST固定)
  • 祝日API: holidays-jp.github.io

10.2 バックエンド ​

  • データベース: DynamoDB
  • 通知: Slack Webhook, AWS SES(メール)
  • 認証: JWT(Cognito)

11. busonへの移植時の考慮事項 ​

11.1 busonに既存の機能 ​

  • 基本的なスケジュールCRUD
  • カレンダー表示(FullCalendar)
  • ステータス管理(提案/確定)

11.2 追加が必要な機能 ​

機能優先度備考
面接段階(stage)管理高7段階のステージ選択

➡ 求職者に紐づいている選考があるので、その選考の選考ステータスを選択させる | 確定時のメール通知 | 高 | 求職者への自動メール | ➡ CloudRunに展開予定なので、それに準じたメール通知の実装の必要あり。 | 日次Slack通知 | 中 | 当日の予定を毎朝通知 | ➡ これもCloudRunに展開予定 | 選考進行管理 | 低 | ステップ管理機能 | ➡ これは求職者に紐づいた選考で管理する | 対応可能形式 | 低 | オンライン/対面の選択 | ➡ これは実装済

11.3 不要な機能 ​

求職者サイド:

  • 求職者による空き予定登録
  • 求職者向けカレンダーページ
  • 求職者向けモーダル
  • 企業向け公開URL(暗号化/復号化)

未完成機能:

  • 再調整依頼機能(agendleeでもバックエンド未実装)