Inspiration

With more companies conducting initial job interviews using automated AI screeners with unpredictable evaluation criteria, job seekers need a safe, realistic environment to practice high-stakes conversations before facing real AI evaluators or managers.

RehearseAll was created to solve this by providing an ambient, voice-first rehearsal system on Alexa+ where users can roleplay sensitive scenarios—from salary negotiation to difficult management check-ins—and receive instant, structured analytical feedback in a judgment-free environment.


What it does

  • Dynamic Counterpart Definition: Define any roleplay scenario or counterpart persona on the fly (e.g., tough hiring manager, hesitant client, demanding executive) and begin practicing within seconds.
  • Hands-Free Ambient Roleplay: Interact naturally via natural voice conversation on Echo Show and Alexa+ devices, with real-time stateful turn taking and simulated counterpart behavior.
  • Multimodal Feedback Cards (MCP Apps): Receive instant interactive scorecards and visual skill breakdown cards rendered directly on screen using ui:// MCP Apps templates after every session.
  • Cross-Session Skill Tracking: Remembers performance across past rehearsals, flags your weakest communication skill over time, and recommends your next targeted drill.

What changed since Aug 31

RehearseAll began as HirePrep, a web app for mock job interviews (94 commits before the hackathon window opened on Aug 31). Since then it has had 28 more commits (121 files changed, about 9,500 lines added). In September, I rebuilt it from an interview-only app into a general rehearsal platform (custom rehearsals, structured assessment decks, live screen sharing, and a new voice stack). In October, I built the Alexa+ add-on surface from scratch for this hackathon: the self-hosted Streamable HTTP MCP server, the five rehearsal tools, the MCP Apps (ui://) scorecard and progress cards, cross-session skill tracking, and the simulated Alexa+ host.


How we built it

  • Self-Hosted MCP Server: Built a custom Model Context Protocol server in Node.js/TypeScript implementing the 2025-11-25 Streamable HTTP spec to expose five core tools (list_scenarios, start_rehearsal, say_to_counterpart, finish_rehearsal, and get_progress).
  • Interactive MCP Apps (ui:// protocol): Developed visual card templates served as web components via custom UI resource URIs (ui://scorecard, ui://progress) rendered within the Alexa+ host UI.
  • Stateful Session Management: Handled non-persistent HTTP requests by maintaining server-side session contexts tied to session_id, ensuring smooth multi-turn roleplays across disconnected tool calls.
  • Dual-Model Evaluation Pipeline: Leveraged Google Gemini for real-time counterpart conversational turns and high-speed multi-criteria skill evaluation.

Challenges we ran into

  • Streamable HTTP Handshake Latency: Matching the strict response timeouts required for voice interactions while serving dynamic MCP Apps markup required aggressive caching and asynchronous evaluation pipelines.
  • Voice-to-Visual Synchronization: Ensuring visual feedback cards automatically pop up on the device screen immediately as the counterpart finishes speaking without blocking the audio stream.
  • Perceived Latency vs Deep Evaluation: Live voice turns demand sub-2-second responses, but a deep multi-skill evaluation with transcript quote extraction takes ~7 seconds. We tuned the conversational UX so the assistant immediately announces "One moment while I score that..." before dispatching the evaluation payload.
  • Gated Developer Tooling: The official @alexa-ai/cli and local inspector are currently restricted to private partner tiers (returning npm 404s). Following the hackathon guidelines, we built our own open reference MCP client host to simulate the Echo Show runtime, complete with a live JSON-RPC inspector to verify every tool call, payload, and MCP App handshake.

Accomplishments that we're proud of

  • True Hands-Free Conversational Immersion: Creating an experience where you can walk around the room, speak to an Echo, get interrupted, push back, and never have to touch a screen or keyboard.
  • Voice-Forward, Screen-Supported Design: Striking the right balance where voice carries the emotional tension of the rehearsal, and the visual card (MCP App) carries the analytical reflection.
  • 100% Passing Test Suite: 149 tests across unit, integration, and transport layers ensuring predictable, error-handled JSON-RPC communication.
  • Open Source Contribution: Contributed PR #2 to audio-analyzer-rs adding CLI JSON output to support downstream audio analysis pipelines.

What we learned

  • The "Flattening Tail" Problem: AI-led conversational counterparts become increasingly unreliable as the domain corpus flattens out into niche scenarios. Without explicit persona anchors and structured extraction, generic LLMs will hallucinate or derail during long roleplays.
  • Server-Centric State is King for Agentic Voice: In an architecture where the voice assistant can re-route any individual turn, the external tool must be stateful in its persistence yet completely stateless in its HTTP transport.

What's next for RehearseAll

  • OAuth 2.1 & Account Linking: Adding secure user identity sync for production Alexa+ accounts across multiple household Echo devices.
  • Prosody & Vocal Tone Analysis: Integrating audio analysis to evaluate speaking pace, hesitation markers, and vocal pitch stability.
  • Domain-Specific Simulation Packs: Expanding beyond personal and interview prep into enterprise sales objection handling, HR de-escalation, and medical patient intake.
  • Official Alexa+ Add-on Store Certification: Deploying to the live marketplace as soon as public third-party Add-on registration opens.

Built With

  • alexa-plus
  • claude-code
  • gemini
  • mcp-apps
  • model-context-protocol
  • node.js
  • openrouter
  • streamable-http
  • typescript
  • vite
  • web-speech-api
Share this project:

Updates

Submission history