🗣️

AI面接を支える技術

に公開

はじめまして。PeopleX エンジニアの坂津と申します。今回、先日始動したばかりのPeopleX テックブログのセカンドバッターを務めさせていただくことになりました。

簡単に自己紹介させていただくと、サウナが趣味で2024年には合計136回サウナ施設に訪問しました。特定の施設だけではなく、いろいろなサウナに入るのが好きで累計100施設ほど訪問しております。

「サ活(サウナ活動)だいすき坂津」と覚えてください!

さて、そんな私はPeopleXには昨年の創業当初から参画し、PeopleWork(タレントマネジメント、オンボーディング、社内報)、PeopleX AI上司など数々のプロダクト開発に携わってきました。

現在はPeopleX AI面接をメインに開発しております。PeopleX AI面接は今年2025年5月にリリースした生まれたばかりのサービスであるものの、大変ありがたいことに数多くのお客様にご活用いただいております。

元クラウドサイン事業責任者、弊社社長の橘も「恐らく日本市場に残る高速ペースで大企業受注を実現できているBtoB SaaS製品」と総評するほどです。

詳しくはnoteをご覧ください。

https://note.com/d_tachibana/n/n9c7a039decac

PeopleX AI面接は、世界一を狙いに行きます。日本産AI製品が世界で覇権を取るチャンス。|橘 大地

そんなPeopleX AI面接がどんな技術を元に構成されているか、今回初公開させていただきます。ぜひ最後までご覧いただけますと幸いです。

はじめに

近年、採用活動のデジタル化が急速に進んでいます。特に注目されているのが、AI技術を活用した面接システムです。

「AIが面接を行う」というと一見シンプルに聞こえますが、実はその裏側には複雑で洗練された技術スタックが隠れています。

本記事では、PeopleX AI面接の開発を通じて得られた知見をもとに、PeopleX AI面接の中核であるリアルタイム対話システムと採用管理システムについて解説します。

第1章 リアルタイム対話システムを支える技術

第1章は、PeopleX AI面接の核心となるリアルタイム対話システムについての解説です。

リアルタイム通信

対話システムの基盤となるのは、リアルタイム通信技術であるWebSocket通信です。

HTTP通信では、ユーザーが発話するたびにリクエストを送信し、レスポンスを待つという原則は一方向的な通信になります。しかし、自然な対話を実現するためには、音声データの送信、対話処理の状況通知、音声合成データの配信などを双方向かつリアルタイムで行う必要があります。

また、単純な双方向通信ではなく、サーバーとクライアント間で通信遅延を考慮した状態同期を行う通信を実装しています。

面接の進行状況、現在の発話者、音声処理の状態など、複数の状態を同期的に管理することで違和感のない自然な対話体験を実現しています。

AIによる対話

単にLLMを呼び出すだけでなく、面接官があたかも人間のように回答を深堀ったり、タイムマネジメントをして適切なタイミングで質問を終了したりするなど、様々な制御を加えています。

企業文化が色濃く反映される面接において、企業様ごとに面接を柔軟に設定できることは重要です。PeopleX AI面接では、企業様が自由に質問を設定することができます。

https://peoplex.jp/news/20250617/

対話型AI面接サービス「PeopleX AI面接」、自由に質問内容を設計できるカスタマイズ機能の提供を開始/各社独自の質問で候補者を見極め、カルチャー採用を促進 - PeopleX

企業様がより「会社らしさ」を表現できるような柔軟さと、応募者様がより人間との面接に近い面接体験ができるような自然さを目指し、日々試行錯誤しながら改良を加えています。

AIとの対話に関する技術詳細については、弊社CTOによる記事をご期待ください。

https://x.com/t_tiger55/status/1935547536640721039

面接の録画

面接の録画機能は、WebRTCを活用して実装しています。

WebRTCは通信プロトコルとしてUDPを使用しているため、TCPを使用しているWebSocketに比べて通信が高速かつ軽量という特徴があります。面接を受ける方の環境によっては高速な通信が保証されていないため、録画においてはWebRTCを採用しています。

面接中のマイクからの音声データとカメラデバイスから動画データをWebRTCサーバーに送り、音声と動画を合わせて録画保存しています。

また、面接中にデバイスを切り替えた場合に追随することで音声や映像が途切れないようにするなど、様々なエッジケースに対応し面接内容が確実に記録できるよう細心の注意を払っています。

第2章 採用管理SaaSを支える技術

AI面接システムは、応募者向けの面接を行うtoCサービスとしての側面と、人事担当者向けの採用管理SaaSとしての側面を持つ、複合的なプラットフォームです。

また、応募者側のサービスを考慮したデータ構造の設計や、両者のユーザー体験を最適化するアーキテクチャが求められます。

採用管理SaaSは個人情報を扱うため、細やかな権限設定や閲覧制御が必要となる、極めてセキュリティ要件の高いシステムです。

第2章では、こうした採用管理SaaSの技術的基盤について解説します。

技術スタック

バックエンド、フロントエンド両方でTypeScriptを採用し、型安全性を保ちながらスピード感のある開発を実現しています。

NestJS

  • TypeScriptファーストの設計により、コンパイル時に型エラーを検出できる
  • デコレータベースのDIコンテナにより、テスタブルで保守性の高いコードを書ける
  • Prisma(ORM) との連携により以下のメリットを享受
    • 型安全なデータベースクエリの自動生成
    • スキーマファーストなデータベース設計
    • マイグレーション機能による変更管理の自動化

Next.js

  • App Routerによる直感的なファイルベースルーティング
  • サーバーコンポーネントを活用したレンダリングの高速化
  • Vercelエコシステムとの親和性による開発効率の向上

モノレポ構成とモジュラーモノリス

AI面接は、モノレポ構成を採用しています。

これにより、複数のアプリケーションとライブラリを統一的に管理できます。

アプリケーション構成は大まかに以下のようになっています:

  • apps/backend: NestJSベースのAPIサーバー
  • apps/frontend: Next.jsベースのWebアプリケーション
  • apps/conversation: 対話システム専用のNestJSアプリケーション

バックエンドの構成はモジュラーモノリスを採用し、モジュール間の疎結合を実現しています。

テナント分離

PeopleX AI面接は、複数の企業が利用するマルチテナントSaaSプラットフォームです。このため、企業間でのデータ漏洩を防ぐテナント分離が極めて重要になります。

PeopleX AI面接では、複数のレイヤーでテナント分離を実現しています。

まず、サブドメインベースのテナント識別を採用しています。各企業に専用のサブドメインを発行することで、SSO、MFA、IP制限を含む認証フローを企業ごとに独立して管理できます。

さらに重要なのは、データベースレベルでのテナント分離です。

一般的なテーブル単位での分離パターンを採用し、企業に関連するすべてのテーブルにテナントIDを持たせています。

ミドルウェアレベルでテナントIDによる条件を自動付与することで、開発者が明示的にテナントIDを指定しなくても、企業データに対するすべてのデータベースクエリに自動的にテナント条件が適用されます。

非同期処理

動画分析や要約の生成など、AIを用いて時間を要する機能などをバックグラウンドで実行する仕組みが不可欠です。

アプリケーションサーバーとワーカーサーバーを分離することで、APIとバッチ処理を独立してスケールできます。

権限設定と閲覧制御

面接はセンシティブな個人情報を取り扱う必要があるため、大手採用管理システムと同水準の柔軟かつ細かな設定が可能で、安全に候補者・面接データを共有できるようにしています。

  • 役割をベースとした権限管理
    • 今後役割を柔軟にカスタマイズできるようにポリシーベースで設計
  • グループによる所属を条件とした閲覧制御

おわりに

PeopleX AI面接は、多くの技術的な工夫と複雑さを抱えています。

WebSocket通信、AI対話、テナント分離、非同期処理、閲覧制御など、現代のWeb技術の集大成と言えるシステムです。

しかし、技術的な課題は今も残っています。

より自然な対話体験、入社後の活躍人材を見抜く評価システムなど、AIが人間の面接官の代替として機能するにはまだまだ多くの改善が必要です。

また、面接部分のみならずより洗練された人事担当者の業務効率化などSaaSとしての改善点も多くあります。

一方で、これらの課題こそがエンジニアにとっての大きな機会でもあります。

「人事のみなさんを取り巻く社会課題を解決する」、「候補者のみなさんの面接体験にこだわり、より多くの機会創出をする」という想いと技術に対する好奇心を忘れず、PeopleX AI面接を今後も発展させていきたいと思います。

PeopleX AI面接は先日、無料プランの提供を開始いたしました。ぜひ一度ご利用いただき、忌憚なきご意見をいただければ幸いです。

https://peoplex.jp/news/20250718/

対話型AI面接サービス「PeopleX AI面接」、無料で利用可能なプランの提供を開始/AI面接を、人手不足解決を支える全国的なインフラに - PeopleX

さいごに

みなさんお察しの通り、タイトルは技術評論社さんの「支える技術シリーズ」よりオマージュさせていただきました。
特に、「Webを支える技術」は駆け出し時代にエンジニアとしての基礎を築いてくれた一冊です。おすすめの一冊なのでぜひお手に取ってみてください。

https://gihyo.jp/book/2010/978-4-7741-4204-3

GitHubで編集を提案
PeopleXテックブログ

Discussion