InterviewCoach:5つの質問、率直なフィードバック、そして目を見て話す面接官
執筆:Tomasz Hasinski(Brainiak Consulting、Perxona チームと Connect Kit に取り組んでいます)
面接練習アプリの多くは、タイマー付きのテキストボックスです。回答を入力し、モデルが採点し、結果を読む。本番で向き合うのは、こちらの言葉に反応してくれる「人」なのに、その感覚がどこにもありません。
InterviewCoach が変えるのは、その一点です。職種と言語を選ぶと、3D の採用担当者 Mia が5つの質問を1つずつ投げかけ、回答ごとに反応し、採点し、最後にレポートを出します。English、日本語、繁體中文に対応。私はこれを Perxona Connect Kit の上に、AI コーディングエージェントを使い、キットのリポジトリと公開ハンドブックだけを頼りに、約18分で作りました。現在はキットのサンプルの1つとして同梱されており、キットの README で最初に目にする顔が Mia です。
本記事は、製品化の準備が整った Connect Kit プロジェクトを紹介する短い連載の第2回です。第1回はイベントコンシェルジュの Maker でした。InterviewCoach を2回目に選んだのは、「アバターは飾りではない」ことを最もはっきり示す例だからです。顔そのものが、製品です。

画像2:職種の選択からレポートまでの流れ
セッションの流れ
職種は4つから選びます。マーケティング(ジュニア)、フロントエンド開発者、ホテルのフロント、カスタマーサポート。次に言語を選びます。Mia が挨拶をして、1問目を尋ねます。
回答はテキスト入力か、ブラウザが対応していれば音声で。Mia は1〜2文の具体的で率直なフィードバックを返し、次の質問に進みます。チャットの下には、直前の回答に対する1〜5点のスコアが小さく表示されます。5問目に答えると面接は終了し、レポートが表示されます。すべての質問、あなたの回答、Mia のフィードバック、スコア、平均点、所要時間。良い面接はお祝いのジェスチャーで、平均的な面接は感謝のジェスチャーで締めくくられます。
実際に試したとき、わざと弱い回答(「よくわかりません。もっと頻繁に投稿して、うまくいくことを祈ります」)をすると、5点中2点が付き、やさしく具体的なフィードバックが返ってきました。ホテル職では「予約が見つからない」シナリオ、サポート職では「怒っている顧客」のシナリオが出題され、日本語の敬語も台湾の中国語も自然に読めるものでした。
いちばん大事な設計判断
モデルは採点だけ。表情を決めるのはアプリです。
回答のスコアは感情と強さに対応づけられ、アプリはそれを話すべきテキストと一緒にアバターへ渡します。
5点 → 興奮(excitement)、強
4点 → 喜び(joy)
3点 → 思いやり(caring)
2点 → 好奇心(curiosity)
1点 → 落胆(disappointment)、弱
コードでは1回の呼び出しです:present(text, { emotion, intensity })。言語モデルに「演技」を頼むことはありません。頼むのは、フィードバック、スコア、次の質問、終了フラグを含むコンパクトな JSON だけ。アプリがそれを解析し、自分でスコアを管理し、どう演じるかを決めます。
これはトレーニング製品を作る人すべてに関わる話です。感情の反応は自分のものであってほしい。一貫していて、調整でき、どのユーザーにも同じであってほしい。接客研修なら、受講者の対応が悪くなるほど冷たくなるアバターが必要です。語学練習なら、何があっても温かいままのアバターが必要です。もしモデルが表情を決めていたら、プロンプトで一貫性を追いかけ続けて、いつまでも辿り着けないでしょう。

画像3:スコアから感情へ。表情を決めるのはアプリ
Connect Kit から使っている機能
開発者向けに。ファイルは3つ、約250行、依存関係なし、ビルド工程なし。キットの Embed デモから、キットの AGENTS.md がコーディングエージェントに指示しているとおりの手順で組み立てました。
コードから作る専用チャットボット。 初回起動時に POST /api/chatbots で Connect チャットボットを作成し、上記の JSON 形式だけで答えるよう指示します。アカウントごとに1回作成し、以後は再利用。
present(text, { emotion, intensity }) を、話すすべての行に。
言語ごとのボイス切り替え。 Start 時に initializeWithConnectKey をもう一度、選んだ言語のボイスで呼び出します。ページを再読み込みせずに、同じアバターが3言語で面接します。
playMotion() で締めのジェスチャー。平均点に応じてお祝い、または感謝。
PRESENTER_STATUS で Mia の準備が整うまで Start ボタンを待たせ、PERFORMANCE_START で回答送信から返答が聞こえるまでの時間を計測。
Connect API の /api/credit で、セッションのコストを表示。
最後の項目は、小さな開発者向けフッターとして表示されます。ターン数、モデル応答の中央値、送信から音声までの中央値、使用クレジット。技術スタックを選ぶビルダーが真っ先に知りたい数字だからです。
計測した数字
2026年10月24日、キットをそのままクローンし、無料トライアルのアカウントで、3言語で3回の面接を実施しました。
11ターン、ホストされたモデルはすべてのターンで正しい JSON を返しました。コンソールエラーはゼロ。
モデルの応答: 言語により中央値 1.4〜1.9 秒。
回答の送信から Mia の声が聞こえるまで: 中央値 3.2〜4.3 秒。
構築時間: 空のフォルダから、動作する3言語対応の製品まで18分。
4秒は練習用途なら快適です。話し終えた直後で、返答までのひと呼吸は自然に受け入れられます。チャットのリズムではなく、面接のリズムです。

画像4:2026年10月24日に計測した数字
この先に広がる用途
InterviewCoach は、製品のようなランディングページを持つデモです。しかし製品の形はすでに見えていて、今日すでに「練習」にお金を払っている人たちにぴったり合います。
キャリアセンターと就活シーズン。 日本では就活の面接練習が毎年の恒例行事で、大学、予備校、キャリアコーチは今も学生1人ずつ模擬面接を行っています。深夜でも、学生の言語で、疲れることなく対応できるコーチこそ、彼らが大規模に実現したい仕事です。
語学学校と英会話。 同じ5問のループが、学習者の母語でフィードバックを返す英語面接練習にそのまま使えます。声を切り替えて、顔はそのまま。
人事とオンボーディング。 ペルソナと職種リストを入れ替えれば、ホテルのフロントやカスタマーサポートのシナリオが新人研修のドリルになります。アバターの表情が、受講者の顧客対応の出来を映します。
求人プラットフォーム。 求人サイトの中にブランド化された練習ルームを。レポートが、また戻ってくる理由になります。
デモから製品にするための作業は、すべてアプリ側です。アカウントとレポートの保存、職種ごとの評価基準を持つロールライブラリ、受講者全体を見渡すトレーナー向け画面、そしてクレジットメーターからすぐに算出できるセッション単価。どれもアバターには触れません。その部分はもう完成していて、回答の前に思わず背筋を伸ばさせるのは、まさにその部分です。

画像5:実際のセッション。5問中2問目、チャット下にスコア 5/5
試す、フォークする、自分の製品を作る
コードを読む: github.com/XRSPACE-Inc/perxona-connect-kit の samples/express/public/demos/interview。Apache 2.0。
動かす: キットをクローンし、Connect キーを2つ設定して npm run dev、/demos/interview/ を開く。または README の「Deploy with Vercel」ボタンを押せば、数分で自分のコピーがオンラインに。
キーを取得: console.perxona.ai。無料トライアルがあります。
この上に練習用の製品を作ったら、キットの GitHub Discussions で教えてください。面接コーチングは最初の一歩として自然な題材です。接客研修、試験対策、語学練習も、ペルソナを変えるだけの同じループです。
