Sontaくん システム構成

Sontaくん システム構成 An architecture diagram generated by Archify. 面談作成者 · ブラウザ (ダッシュボード) · Architecture component 面談作成者 ブラウザ (ダッシュボード) 候補者 · ブラウザ (/i/[token]) · Architecture component 候補者 ブラウザ (/i/[token]) Supabase Auth · Google OAuth (provider_token) · Supabase Supabase Auth Google OAuth (provider_token) Supabase Postgres · interviews / tokens / availabilities · Supabase Supabase Postgres interviews / tokens / availabilities Server Actions · 面談作成・確認依頼・確定 · Vercel (Next.js) Server Actions 面談作成・確認依頼・確定 /api/process-availability · 非同期バックグラウンド処理 · Vercel (Next.js) /api/process-availability 非同期バックグラウンド処理 Google Gemini API · 自然言語→日程制約 抽出 · Architecture component Google Gemini API 自然言語→日程制約 抽出 Google Calendar / Meet API · ユーザーのGoogleトークン使用 · Architecture component Google Calendar / Meet API ユーザーのGoogleトークン使用 Resend API · 招待・確認・確定メール · Architecture component Resend API 招待・確認・確定メール Googleログイン (provider_token取得) ①面談作成・確認依頼・確定 ②希望日時を送信(トークン検証) 面談・トークン・回答を読み書き 招待・確認・確定メールを送信 ③抽出処理をトリガー(fire-and-forget) 自然言語から日程制約を抽出 抽出結果を保存・通知作成 ④会議URL発行(Google Meet / Zoom) Supabase Vercel (Next.js) Legend Frontend Backend Database Security External

面談官のフロー

  • • ①面談作成: interviews / interview_tokens を保存し、候補者へ招待メール
  • • ④確定依頼: 提案枠を選ぶとGoogle MeetまたはZoomの会議URLを発行

候補者のフロー

  • • ②トークン付きURLで希望日時を自然文で送信
  • • 送信後は/api/process-availabilityが非同期でAI抽出・通知作成

外部連携

  • • Gemini: 曖昧な希望を制約データに変換(忖度エンジン)
  • • Google Calendar/MeetはSupabase Auth経由のGoogleトークンを再利用
  • • ZoomはServer-to-Server OAuthで別経路として利用可能