1ST PLACE · UBC CLOUD INNOVATION CENTRE · AUG 2026
AI Mock Interview Coach.
Interview practice that talks back — a hands-free, speech-to-speech coach powered by Amazon Nova 2 Sonic, built with four teammates over one hackathon and refined ever since.
Interview prep is either a mirror or a friend's afternoon. Neither gives you structured feedback on the answers you actually gave — what you covered, what you missed, and what to say differently next time.
A hands-free, speech-to-speech web app running on three agents.
Reads the resume against the job description and builds the brief the other two work from.
Runs the live, hands-free voice interview in real time.
Scores the answers and generates the final feedback report.
Resume and job description upload
The Analyst reads both and builds a tailored brief, so every question and every score is grounded in your actual background and the actual posting.
Real-time, hands-free practice
Speech to speech. No typing, no clicking through — the conversation runs the way a real call does.
Two interview modes
Choose how much support you want.
Personalized feedback report
Question-level scoring rather than one vague summary — plus keyword coverage showing which terms from the posting you hit and which you never mentioned, and concrete guidance on what to say differently next time.
Schema-validated output
The Evaluator returns structured JSON, so the report renders reliably instead of hoping the model formatted its prose correctly.
Designed the Evaluator — its prompt, output schema, and scoring logic.
Implemented it as an AWS Lambda function invoking the model through Amazon Bedrock.
Built the frontend feedback report page and wired the Evaluator's schema-validated output into it.
Proposed the three-agent architecture and documented it for spec-driven development in Kiro, which carried the workflow throughout.
Turn-taking
MINEThe voice model would cut in and grab the turn before the candidate had finished answering. Lowering the endpointing sensitivity and reshaping the prompt got us closer.
But this is a genuinely hard problem for real-time speech models, and it is still the piece I am most eager to keep improving.
Wiring the agents into one pipeline
STEPHANIE XUEGetting three agents to act as a single system meant designing how they pass structured data to each other, keeping the audio stream synchronized with the transcript, and holding every piece together in one working pipeline.
Stephanie built this integration layer. It is the part users never see and the part the whole thing rests on — when it slips, the interview stops feeling like a conversation.
A judge agent on the feedback side. Instead of sending generated feedback straight to the user, a judge would verify it first and send it back for another pass until it meets the bar.
That self-correcting design is what got me into multi-agent systems in the first place — now I want to apply it here to raise the quality of the reports.
We won 1st place at the UBC Cloud Innovation Centre × Amazon Web Services Hackathon.
This story actually started back in May. I joined my first CIC hackathon and used AWS for the first time. We didn't win, but I really wanted to learn this and put it to use. Around then I got into multi-agent systems through Hyunuk Lim's workshop, and in July I learned Kiro at the AWS ReachBack event in Amazon's Vancouver office. Then in August, ideas I shared based on what I'd been learning became part of what our team built together, and it was really rewarding.
It's called AI Mock Interview Coach, a speech-to-speech interview prep web app powered by Amazon Nova 2 Sonic. It uses three AI agents — the Analyst reads the resume and job description (OpenAI GPT OSS 120B), the Interviewer runs the live hands-free voice interview (Amazon Nova 2 Sonic on Amazon Bedrock AgentCore), and the Evaluator scores the answers and generates the final feedback report (OpenAI GPT OSS 120B).
I worked mainly on the Evaluator, designing its prompt, output schema, and scoring logic, then implementing it as an AWS Lambda function that invokes the model through Amazon Bedrock. I also built the frontend feedback page. Kiro's spec-driven workflow was a big help throughout.
After the hackathon, as we kept refining the app, the problem I got most drawn into was turn-taking. The voice model would cut in and grab the turn before the candidate had even finished answering. Lowering the endpointing sensitivity and reshaping the prompt got us closer, but I also learned this is a genuinely hard problem for real-time speech models, and it's still the piece I'm most eager to keep improving.
Looking further ahead, I want to add a judge agent on the feedback side. Instead of sending the generated feedback straight to the user, a judge would verify it first and send it back for another pass until it meets the bar. That self-correcting, judge-based design is what first got me into multi-agent systems at Hyunuk Lim's workshop, and now I want to apply it here to raise the quality of our feedback reports.
So grateful to have built this with my amazing teammates Stephanie Xue, Hoonji Choi, Jena Chang, and Jianding Bai. Thank you to our mentors Ayush Srihari, Hrishi Logani, Jovan, and Rajrupa Sanyal, who were supportive every step of the way. Thanks also to our judges Christian Castro, Katja Krohn, Liana Leung, Anjali B., and Scott M., along with the UBC Cloud Innovation Centre × AWS team for creating the space to build and learn.