Case study · Hackathon project
A.R.I.A — an AI Readiness Interview Assistant
This technical interview agent elevates your pre-interview experience — a live, voice-driven AI interviewer that watches you code and gives feedback.
- My role
- Lead Designer, Interaction & Researcher
- Timeline
- Apr 4 – 5 · 2-day hackathon
- Tools
- Figma, FigJam, Claude API, ElevenLabs
Problem statement
How could we create a user-friendly application that is unique to what is already in the current market?
Goals
- Make a user-friendly space where, while coding, users have ample room to see both live feedback and their code
- Showcase consolidated feedback
- Create an option to see all verbal exchanges in text format
User research
Our team began with an idea for an application that helps people seeking jobs, which grew into an interview prep AI bot. To elevate it, we looked for apps that combine a bot that reads code live with immediate feedback. There was little out there as niche as our idea, which — given our limited time frame — we deemed sufficient research.
While there are plenty of interview preparation resources, we found it difficult to find one with technical aspects embedded in the software. As a team of four students with computer science experience, we felt a live technical interview bot would be extremely helpful.
Pain points
Interviewees struggled with:
- Receiving quick feedback on their coding assignments
- Finding interview prep that tells them what they did well and what they did poorly
Solution
A technical interview bot that operates live with you. It can hear your audio and track your movements, which lets it give feedback at the end of the session — grading whether you explained your code correctly and even whether you had good posture — preparing you for real-world technical interviews.
What it does
ARIA simulates a full technical coding interview with a voice-driven AI interviewer. You configure your session by question style (LeetCode, system design, debugging), difficulty, interviewer persona (from friendly coach to tough pressure) and time limit. Then you're dropped into a live interview: the AI introduces itself, gives you a problem, and listens as you explain your thinking — asking and answering clarifying questions and pushing back on incorrect assumptions as you code in the Monaco editor.
Once you finish, ARIA generates a detailed scorecard across six dimensions (correctness, algorithm choice, communication clarity, confidence and more), follows up with system design trade-off questions when relevant, and gives you a full transcript and an optimal-solution comparison. If enabled, it uses Google's MediaPipe and OpenCV to track gaze and presence for an extra layer of realism.
How we built it
- Next.js 16 + React 19 for the full-stack framework
- Claude API for real-time interviewer responses and post-session scoring
- ElevenLabs TTS with three distinct voices, one per persona
- Browser Web Speech API for in-browser speech-to-text
- Monaco Editor for the in-browser code editor
- MediaPipe for optional camera-based gaze tracking and presence scoring
- Tailwind CSS v4, shadcn/ui and Allotment for the resizable split-panel layout
- Framer Motion for animated scorecard reveals
Challenges
The hardest part was managing the async voice loop without race conditions. Speech-to-text fires interim and final transcript events continuously, and our pipeline (speech-to-text → Claude → ElevenLabs → playback) has multiple async stages that can collide. We used React refs instead of state for in-flight values and added guards so a single utterance is never processed twice.
Parsing structured scorecard data out of a streamed response was also messy — we needed reliable JSON extraction and had to handle malformed arrays and inconsistent field names across question types. Getting ElevenLabs latency low enough to feel conversational took tuning too: we proxied it server-side and cached audio on the client.
Notes
This was a hackathon project, and the design changed a lot over the weekend. My original design was created within the hackathon time frame and later morphed into a different design during the build. The bot ran locally on our computers, so there's no public prototype link — the demo video shows it in action.