interview-simulator について
interview-simulatorは、候補者の模擬面接練習を組み立てるスキルで、自動シミュレーション基盤の設計も扱います。適応型練習、進捗評価、音声、ホワイトボード、監視を取り上げます。
主な機能
- 01ラウンドと難易度の適応選択
- 02音声練習とストーリー演習
- 03ホワイトボードと視線追跡の設計
- 04セッション採点と進捗ダッシュボード
- 05間隔反復の練習プロトコル
活用シーン
- 01毎日・毎週の面接練習を計画
- 02実際に近い模擬面接を設計
- 03複数回の練習で弱点を追跡
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ curiositech/ some_claude_skills --skill interview-simulatorインストール後、Claude Code で/interview-simulatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.claude-plugin/plugin.jsonreferences/mobile-app-architecture.mdproctor-engine-setup.mdsession-orchestration.mdvoice-engine-setup.mdwhiteboard-engine-setup.md詳細
インタビューシミュレーター
リアルな模擬面接練習のためのプラットフォームアーキテクチャとコーチングシステムです。このスキルには2つの目的があります。(1)効果的な練習セッションの組み立て方を候補者に指導すること、(2)音声 AI、共同ホワイトボード、視線追跡による監督、モバイルコンパニオンを備えた自動インタビューシミュレーションプラットフォームを構築するためのフルスタックアーキテクチャを定義することです。
ほかの7つのインタビュースキルでは、何を練習するかを定義します。このスキルでは、リアルな条件、適応型の難易度、測定可能な進捗を取り入れ、どのように練習するかを定義します。
使用するタイミング
次の用途に使用します:
- 模擬面接シミュレーションプラットフォームの設計または構築
- 音声、ホワイトボード、監督機能を備えたリアルな練習セッションの設定
- 弱点を自動的に狙う適応型難易度の実装
- セッションをまたいだ進捗を追跡する採点・振り返りシステムの構築
- 概念の復習とエピソードのリハーサルのための間隔反復の設定
- 毎日/毎週の練習プロトコルの確立
- 練習インフラストラクチャのコスト分析と最適化
次の用途には使用しません:
- 特定の面接ラウンド形式だけを練習する場合(各ラウンド専用のスキルを使用してください)
- 準備スケジュールや学習計画の作成(
interview-loop-strategistを使用してください) - 履歴書やキャリアに関するストーリー作成(
cv-creatorまたはcareer-biographerを使用してください) - 給与交渉やオファーの評価
- カンファレンス登壇の準備(評価基準が異なります)
システムアーキテクチャ
graph TB
subgraph Client["Client Layer"]
MOBILE["Mobile App<br/>React Native + Expo<br/>Flash cards, voice drills,<br/>progress dashboard"]
DESKTOP["Desktop Web<br/>Next.js<br/>Full sessions, whiteboard,<br/>proctoring"]
end
subgraph Engines["Engine Layer"]
VOICE["Voice Engine<br/>Hume AI EVI<br/>Emotion-sensitive<br/>interviewer voice"]
BOARD["Whiteboard Engine<br/>tldraw + Claude Vision<br/>Diagram evaluation<br/>and scoring"]
PROCTOR["Proctor Engine<br/>MediaPipe Face Mesh<br/>Gaze tracking,<br/>attention monitoring"]
end
subgraph Orchestrator["Session Orchestrator — Node.js"]
ROUND["Round Selector<br/>Weakness-weighted<br/>random selection"]
ADAPT["Adaptive Difficulty<br/>Performance-based<br/>question scaling"]
DEBRIEF["Debrief Generator<br/>Transcript + emotion +<br/>proctor + whiteboard<br/>scored rubric"]
SM2["SM-2 Scheduler<br/>Spaced repetition<br/>for concepts and stories"]
end
subgraph Data["Data Layer — Supabase"]
SESSIONS[("sessions<br/>recordings, transcripts")]
SCORES[("scores<br/>per-dimension breakdowns")]
STORIES[("story_bank<br/>STAR-L entries")]
CARDS[("flash_cards<br/>SM-2 intervals")]
end
MOBILE --> Orchestrator
DESKTOP --> Orchestrator
Orchestrator --> VOICE
Orchestrator --> BOARD
Orchestrator --> PROCTOR
Orchestrator --> Data
VOICE --> DEBRIEF
BOARD --> DEBRIEF
PROCTOR --> DEBRIEF
コンポーネント選定の理由
flowchart TD
V{Voice AI?}
V -->|"Emotion detection needed"| HUME["Hume AI EVI<br/>Emotion callbacks,<br/>adaptive persona,<br/>WebSocket streaming"]
V -->|"Voice only, no emotion"| ELEVEN["ElevenLabs<br/>Fallback: high-quality<br/>TTS, no affect reading"]
V -->|"Cost-constrained"| OPENAI_RT["OpenAI Realtime API<br/>Cheaper per minute,<br/>no emotion detection"]
W{Whiteboard?}
W -->|"React ecosystem, extensible"| TLDRAW["tldraw<br/>MIT license, React native,<br/>rich API, snapshot export"]
W -->|"Simpler, self-hosted"| EXCALI["Excalidraw<br/>Good but harder to<br/>integrate programmatic<br/>screenshot capture"]
P{Proctoring?}
P -->|"Privacy-first, free"| MEDIAPIPE["MediaPipe Face Mesh<br/>Browser-based, 468 landmarks,<br/>iris tracking, no cloud"]
P -->|"Commercial accuracy"| COMMERCIAL["Commercial proctoring<br/>Expensive, privacy concerns,<br/>overkill for self-practice"]
style HUME fill:#2d5016,stroke:#333,color:#fff
style TLDRAW fill:#2d5016,stroke:#333,color:#fff
style MEDIAPIPE fill:#2d5016,stroke:#333,color:#fff
OpenAI Realtime APIではなくHumeを選ぶ理由: HumeのEVIは、感情に関するコールバック(緊張、自信、ためらい)を提供し、面接官の振る舞いを適応させられます。OpenAIのRealtime APIは音声専用で、感情検出機能はありません。インタビューシミュレーションでは、感情を把握できることが差別化要因です。実際の面接官は、相手の感情状態に応じて対応を調整します。
Excalidrawではなくtldrawを選ぶ理由: tldrawは、豊富なプログラム用 API を備えたReactコンポーネントです。editor.getSnapshot()を呼び出してキャンバスの状態を取得し、画像としてエクスポートしてClaude Visionに送り、評価できます。ExcalidrawのAPIは、プログラムからの操作に関しては制限がより多くあります。
商用監督ツールではなくMediaPipeを選ぶ理由: これは試験監督ではなく、自主練習です。MediaPipeはブラウザー内で完全に動作し(クラウドを使用せず)、視線推定のための虹彩の位置を含む468個の顔のランドマークを処理し、費用もかかりません。商用監督ツール(ProctorU、ExamSoft)は、プライバシーとのトレードオフがある対立的な試験環境向けに設計されているため、個人練習には適しません。
セッションの流れ
sequenceDiagram
participant U as User
participant O as Orchestrator
participant V as Voice Engine
participant W as Whiteboard
participant P as Proctor
participant D as Debrief
U->>O: Start session
O->>O: Select round type<br/>(weakness-weighted)
O->>U: Confirm: ML Design, Difficulty 3/5,<br/>Persona: Collaborative
U->>O: Accept / override
O->>V: Initialize interviewer persona
O->>P: Activate gaze tracking
alt Design or Coding Round
O->>W: Open whiteboard
end
loop During Session (30-45 min)
V->>U: Ask question / follow-up
U->>V: Respond (voice)
V->>O: Emotion data (confidence, hesitation)
O->>V: Adjust difficulty / tone
P->>O: Gaze flags (second monitor, notes)
alt Design Round
W-->>O: Periodic screenshot (every 30s active)
O-->>W: Evaluate diagram (Claude Vision)
end
end
U->>O: End session
O->>D: Compile transcript + emotion<br/>timeline + proctor flags +<br/>whiteboard evaluations
D->>U: Scored debrief with<br/>strengths, weaknesses,<br/>specific improvement actions
O->>O: Update weakness tracker,<br/>adjust next session focus
セッション設定のオプション
| パラメーター | 選択肢 | デフォルト |
|---|---|---|
| ラウンドの種類 | コーディング、ML設計、行動面接、技術プレゼンテーション、HM、技術的な詳細面接 | 自動(弱点に応じて重み付け) |
| 難易度 | 1(ウォームアップ)~5(対抗的) | 3 |
| 面接官のペルソナ | フレンドリー、中立、対抗的、ソクラテス式 | 中立 |
| 監督の厳しさ | オフ、トレーニング(寛容)、シミュレーション(厳格) | トレーニング |
| セッション時間 | 15/30/45/60分 | 45分 |
| ホワイトボード | オン/オフ | 自動(設計ラウンドではオン) |
| 録画 | 音声のみ/音声+動画/オフ | 音声のみ |
毎日の練習プロトコル
朝のモバイルセッション(10分)
07:00 Open mobile app
07:00 3 flash cards — spaced repetition surfaces weakest concepts
(ML concepts, system design patterns, Anthropic-specific topics)
07:05 1 behavioral story rehearsal — voice, 3 minutes max
App plays the prompt, you respond aloud, app records duration
07:08 Quick self-check — rate confidence 1-5 on today's cards
07:10 Done — push notification schedules evening session
夜のデスクトップセッション(30~60分、週3~4回)
19:00 Open desktop app, orchestrator selects round type
19:02 Configure: confirm round, set proctor to Training mode
19:05 Session begins — voice AI drives conversation
Whiteboard opens for design rounds
Proctor tracks gaze, flags second monitor use
19:35 Session ends (30 min) or 19:50 (45 min)
19:35 Debrief displays: scored rubric, emotion timeline,
proctor flags, whiteboard evaluation (if applicable)
19:45 Review debrief — spend 1/3 of practice time here
19:55 Update story bank with any new insights
20:00 Done — weakness tracker updated automatically
週末の面接ループシミュレーション(2時間、週1回)
10:00 Full loop: 2-3 back-to-back rounds (different types)
5-minute breaks between rounds (no phone, no notes)
Proctor set to Simulation (strict) mode
11:30 Energy management practice — track cognitive fatigue
11:45 Cross-round story coherence review
Did you tell the same project consistently across rounds?
12:00 Comprehensive weekly debrief — pattern analysis across sessions
採点と進捗の追跡
セッションごとの採点項目
| 項目 | 重み | 測定元 |
|---|---|---|
| 技術的な正確さ | 25% | トランスクリプトに対する Debrief AI の評価 |
| コミュニケーションの明瞭さ | 20% | 感情データ(ためらいの頻度、つなぎ言葉) |
| 時間管理 | 15% | セクションごとの所要時間と目標時間の比較 |
| 構造的な思考 | 15% | ホワイトボードの評価(デザイン面接)または口頭での構成 |
| プレッシャー下での冷静さ | 10% | 感情の推移の安定性、つまずきからの立て直し |
| 質問への対応 | 10% | 到達した深掘りのレベル(values-behavioral におけるレベル 1~6) |
| 試験監督ルールの遵守 | 5% | フラグ数(視線の逸れ、メモの参照) |
進捗の可視化
ダッシュボードで、次の指標を時系列で追跡します:
- セッションごとの総合スコア(0~100)と傾向線
- 強みと弱みを示す項目別レーダーチャート
- 連続記録トラッカー(練習を1つ以上行った連続日数)
- 遅れがある面接形式と項目を示す弱点ヒートマップ
- ストーリーごとの準備度ゲージ(準備済みの深掘りレベル数)
- 間隔反復のカバー率(「成熟」間隔に達したフラッシュカードの割合)
セットアップガイド
前提条件
| コンポーネント | 必要なもの | 入手先 |
|---|---|---|
| Hume AI API キー | 音声と感情に対応する EVI へのアクセス | https://hume.ai — 開発者アクセスを申請してください |
| Anthropic API キー | Debrief とホワイトボード評価用の Claude | https://console.anthropic.com |
| Supabase プロジェクト | データベース、認証、ストレージ | https://supabase.com — 初期段階では無料プランで十分です |
| Node.js 20+ | セッションオーケストレーターのランタイム | https://nodejs.org |
| React Native + Expo | モバイルコンパニオンアプリ | npx create-expo-app |
初回起動時の操作
# 1. Clone the simulator repo
git clone <your-simulator-repo>
cd interview-simulator
# 2. Install dependencies
npm install
# 3. Configure environment
cp .env.example .env.local
# Edit .env.local with your API keys:
# HUME_API_KEY=...
# HUME_SECRET_KEY=...
# ANTHROPIC_API_KEY=...
# NEXT_PUBLIC_SUPABASE_URL=...
# SUPABASE_SERVICE_KEY=...
# 4. Initialize database
npx supabase db push
# 5. Run first calibration session
npm run dev
# Navigate to localhost:3000/calibrate
# 10-minute session to establish baseline scores
キャリブレーションセッション
最初のセッションはキャリブレーションラウンドです。10分間、すべての面接形式を対象にさまざまな質問を行い、試験監督機能は使わず、親しみやすいペルソナを設定します。これにより各項目の基準スコアを確立し、適応型の難易度設定を開始できるようにします。キャリブレーションを行わない場合、すべての項目の難易度はデフォルトで 3 になります。
コスト分析
| コンポーネント | 月間使用量 | 単価 | 月間合計 |
|---|---|---|---|
| Hume AI EVI | 夕方のセッション20回 x 35分 + 朝のドリル30回 x 3分 | ~$0.07/分 | $60-80 |
| Claude(Debrief) | セッション20回 x Debrief 1回 | ~$0.15/Debrief | $3 |
| Claude Vision(ホワイトボード) | デザインセッション10回 x 評価5回 | ~$0.03/評価 | $1.50 |
| Supabase | 無料プラン(< 500MB、< 50K 認証) | $0 無料 / $25 プロ | $0-25 |
| MediaPipe | すべてのセッションでローカル実行 | $0 | $0 |
| ElevenLabs(モバイルのフォールバック) | 朝の音声ドリル30回 x 3分 | ~$0.05/分 | $4.50 |
| 合計 | $70-115/月 |
コスト最適化の方法
- セッション時間の上限設定:音声関連のコストが膨らまないよう、設定した時間に達したら必ず停止します
- ホワイトボード評価のバッチ処理:描画中は30秒ごと、ディスカッション中は2分ごとに評価します(継続的には評価しません)
- Debrief のキャッシュ:同じ質問形式でトランスクリプトも類似している場合は、具体的な詳細を差し替えてルーブリックの構成を再利用します
- モバイル音声:感情検出が不要な朝のドリルには、より安価な ElevenLabs を使用します
- Supabase の無料プラン:1ユーザーの練習には十分です。複数ユーザーでの利用や録音データの大量保存が必要な場合にのみアップグレードします
避けるべきアンチパターン
監督なしでの練習
初心者:2台目のモニターでメモを開き、答えを表示したブラウザーのタブを開き、すぐに調べられるようにスマートフォンを手元に置いて練習します。外部リソースによって知識の不足が隠されたセッションを通じて、誤った自信を身につけます。本番の面接ではサポートがなくなるため、パフォーマンスが30~40%低下します。
エキスパート:初回のセッションから、たとえトレーニング(寛容)モードであっても監督を有効にします。すべての練習を本番環境の再現と捉えます。机を片付け、関係のないタブを閉じ、スマートフォンを画面を下にして置きます。週末のループシミュレーションでは、厳格なシミュレーションモードを使用します。見られていることによる不快感こそがトレーニングだと理解しています。
検出方法:すべてのセッションで監督フラグが一度も立っていない(あり得ないほど問題がない)か、監督が常に「Off」に設定されています。自己申告の自信度と実際の振り返りスコアを比較します。大きな差があれば、練習条件が易しすぎることを示しています。
快適な領域だけを繰り返す
初心者:同じラウンドタイプを何度も手動で選びます。いつも行動面接(エピソードを練り上げてあるから)、いつもコーディング(生産的に感じるから)、あるいはすでに得意なラウンドだけを選びます。ホワイトボードでの評価が厳しいため、設計ラウンドを避けます。深掘りの質問が気まずいため、価値観ラウンドを避けます。
エキスパート:オーケストレーターに弱点分析に基づいてラウンドを選ばせます。SM-2 アルゴリズムを信頼し、最適な間隔で取り組みづらいトピックを提示してもらいます。手動で選ぶ場合は、意図的に最もスコアの低いラウンドタイプを選びます。進捗ダッシュボードでラウンドタイプの割合を追跡し、いずれかのタイプがセッションの40%を超えたらバランスを調整します。
検出方法:セッション履歴で、同じラウンドタイプがセッションの50%を超えています。弱点ヒートマップには、改善されないまま残っている冷えた部分があります。フラッシュカードの復習では、カテゴリ全体がスキップされています。
フィードバックを無視する
初心者:振り返りを確認せずに、セッションを連続して行います。模擬面接を学習の機会ではなく、こなすべき練習回数として扱います。セッション数は多いものの、スコアは横ばいです。振り返りタブの閲覧率は<50%です。振り返りで提示された改善アクションには一度も取り組みません。
エキスパート:練習時間全体の3分の1を振り返りの確認に充てます。各セッションの後、採点済みの評価基準をすべて読み、具体的な改善アクションを1つ選び、次のセッションでそのアクションに取り組みます。週ごとの傾向分析を確認し、セッションをまたぐ傾向を特定します。振り返りのたびに「学んだこと」のドキュメントを更新します。
検出方法:振り返りの閲覧率が50%未満です(ページ滞在時間で追跡)。同じ弱点が改善されないまま、3回以上連続して振り返りで指摘されています。記録された改善アクションがありません。
ラウンド別スキルとの連携
シミュレーターにはラウンドタイプごとのコンテンツは含まれません。質問、評価基準、評価の指標については、7つの専門スキルに委ねます。
| ラウンドタイプ | コンテンツスキル | シミュレーターが取得する内容 |
|---|---|---|
| コーディング | senior-coding-interview | 問題の典型パターン、追加質問の段階的な構成、シニアレベルのシグナルのチェックリスト |
| ML システム設計 | ml-system-design-interview | 7段階のフレームワーク、代表的な問題、ホワイトボード戦略 |
| 行動面接/価値観 | values-behavioral-interview | 追加質問の深さ、STAR-L 形式、否定的な切り口のパターン |
| 技術プレゼンテーション | tech-presentation-interview | 物語の構成、深さの調整、質疑応答のストレステスト用質問 |
| 採用マネージャー | hiring-manager-deep-dive | 影響範囲の評価、リーダーシップのシグナル評価基準 |
| Anthropic 技術面接 | anthropic-technical-deep-dive | トピック分野、見解の評価基準、安全性に関する深さ |
| フルループ | interview-loop-strategist | ラウンドの順序、エネルギー管理、エピソードの一貫性マトリックス |
参照ファイル
| ファイル | 参照するタイミング |
|---|---|
references/voice-engine-setup.md | Hume AI EVI の統合、面接官のペルソナ設定、感情に応じたロジック、WebSocket 接続の設定、ElevenLabs へのフォールバック |
references/whiteboard-engine-setup.md | 図の評価用の tldraw のセットアップ、Claude Vision の採点プロンプト、定期的なスクリーンショットの方針、評価あたりのコスト |
references/proctor-engine-setup.md | MediaPipe Face Mesh のセットアップ、視線ベクトルの計算、不審度のしきい値、プライバシー設定、デブリーフへのフラグの統合 |
references/mobile-app-architecture.md | React Native + Expo の技術スタック、SM-2 間隔反復の実装、プッシュ通知、オフラインモード、データ同期の方針 |
references/session-orchestration.md | ラウンド選択アルゴリズム、難易度の適応、パフォーマンス追跡スキーマ、SM-2 の詳細、デブリーフ生成プロンプト、弱点の検出 |