Project Info
Inspiration
Roughly 1 in 5 U.S. residents grew up speaking a language other than English at home. ESL speakers often face invisible friction: interviewing for jobs, speaking up in class, or even navigating casual social interactions can feel intimidating when language confidence lags behind ability – especially in modern-day linguistically homogenous societies. All four of our team members grew up in bilingual households. We know firsthand the hesitation before speaking, the anxiety after mispronouncing a word, and the pervading feeling of being evaluated rather than understood. We realized that while language apps teach vocabulary and grammar, very few platforms simulate real-world speaking scenarios with personalized feedback. So we built Clarity Coach: an AI-powered speaking platform that helps users build confidence in their second-language communication skills. Through real-time video recording, personalized speech and body language feedback, visual and audio analytics, and gamified progress tracking, Clarity Coach helps individuals acclimate to unfamiliar linguistic environments in a safe, welcoming, yet productive learning platform.
What it does
Clarity Coach lets users record a 45 second video of themselves and analyzes their posture, body language, eye contact, and speech. The website then provides users with a specialized analysis of their presentation, rating on posture, eye contact, clarity, and pacing. The user can ask specific questions relating to their performance and improvement to a human-sounding conversational AI. Finally, Clarity Coach tracks prior runs of recordings and saves them and respective stats to show user progress over time.
How we built it
We built Clarity Coach as a full-stack AI application with the following stack: • Backend: FastAPI + Uvicorn for asynchronous API endpoints; Pydantic for structured validation; python-multipart and aiofiles for video uploads; MoviePy for audio extraction; OpenCV + MediaPipe for video/pose processing; OpenAI + Anthropic APIs for transcript evaluation and feedback generation; Modal for scalable processing • Frontend: HTML/CSS/JS for general web development; MediaRecorder API for in-browser recording
Challenges we ran into
We ran into lots of fickle issues along the way, requiring us to relentlessly and strategically debug. Some of the main challenges we faced were: • Slow computing times of video and audio analyzing models → Solved by offloading inference to GPU-backed Modal containers to accelerate model processing • Creating a natural conversational coaching experience → Solved by designing structured LLM outputs and prompt constraints to produce short voice-ready responses and a follow-up prompt, enabling iterative turn-taking • Realtime voice sessions connecting but not returning audio → Solved by properly attaching WebRTC audio tracks and using ephemeral session tokens for authenticated streaming • Synchronizing multiple AI services in one pipeline → Solved by sequencing transcription, LLM analysis, and text-to-speech generation to ensure reliable end-to-end responses
What we learned
As a team of beginner hackers, we learned SO MUCH within this period of 36 hours. Since the initial check-in, we’ve been living in and breathing the innovative air of Huang basement. Whether it was learning how to reason our idea into fruition or how to debug a seemingly trivial issue, we’ve become more inventive, more creative, and more confident in our abilities to solve problems in our communities. In terms of concrete technical abilities, we learned: • how to capture live audio using the MediaRecorder API and navigator.mediaDevices.getUserMedia() • how to process chunks of recorded media and send them to a backend server • how to structure a full-stack app with separated frontend and backend logic • how to design feedback systems that turn raw model outputs into substantial insights • how to stream microphone input as Blob chunks, encode them, and transmit via multipart/form-data to an Express backend • how to orchestrate a real-time speech pipeline combining Whisper transcription, Claude LLM analysis, and ElevenLabs text-to-speech synthesis • and lots more!
What's next
Next, we want to bring Clarity Coach beyond a standalone web app and make it something users can access wherever they practice speaking. We’re exploring browser extensions and lightweight integrations that provide feedback directly inside tools people already use! We’re also excited about building interactive AI avatars that simulate different interviewers or audiences (from a fast-paced recruiter to a skeptical panelist) so users can practice adapting their delivery in more realistic, dynamic environments.
🎤 Interview Coaching API
Express-based backend powering the conversational audio coaching system for Clarity Coach, an AI-driven communication training platform.
This service captures spoken responses, performs speech transcription, evaluates communication clarity using large language models, and generates spoken coaching feedback to enable iterative, conversational practice.
Devpost: https://devpost.com/software/clarity-coach-1oxkvl
🎯 System Overview
The Interview Coaching API enables real-time interview practice by transforming spoken responses into structured communication insights and spoken coaching feedback.
The system evaluates clarity, delivery, phrasing, pacing, and filler word usage, then produces actionable coaching guidance and follow-up prompts to simulate realistic interview dialogue.
This service is designed for low-latency feedback loops and conversational continuity.
🧠 Design Goals
• enable realistic interview simulation
• provide actionable communication feedback
• support iterative practice through conversational loops
• maintain low-latency audio processing
• separate frontend capture from backend analysis
• support scalable AI-driven coaching workflows
⚙️ End-to-End Processing Pipeline
Microphone Capture
→ Browser MediaRecorder stream
→ Multipart audio upload
→ OpenAI Whisper API transcription
→ Claude API communication analysis
→ structured coaching generation
→ ElevenLabs text-to-speech synthesis
→ audio playback to client
→ AI follow-up prompt generation
→ continued conversational loop
✨ Core Capabilities
Speech Processing
• browser-based audio capture
• multipart audio ingestion
• high-accuracy speech-to-text transcription
Communication Analysis
• clarity evaluation
• grammar and phrasing refinement
• filler word detection and reduction strategies
• delivery and pacing feedback
• confidence and tone guidance
Conversational Coaching
• AI-generated follow-up questions
• iterative practice loop
• conversational response scaffolding
• interview simulation flow
Voice Feedback
• low-latency TTS synthesis
• natural spoken coaching delivery
• base64 audio streaming to client
🧠 Conversational Coaching Loop
- user records interview response
- audio is captured via MediaRecorder
- Whisper API transcribes speech
- Claude API analyzes communication quality
- coaching feedback is generated
- ElevenLabs synthesizes spoken coaching
- AI produces follow-up prompt
- user responds and continues loop
This loop creates a dynamic interview simulation environment rather than static feedback.
🏗 Architecture Role
This service powers the audio coaching pipeline within Clarity Coach.
It integrates with the video analysis backend to provide full-spectrum communication feedback.
Analysis
View
Metric
- 9
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- AnthropicIn code
- ExpressIn code
- HTMLIn code
- JavaScriptIn code
- OpenAIIn code
- CSSClaimed
- Node.jsClaimed
- PythonClaimed
5 of 8 appear in the indexed code. 3 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
10.0 KB
Source files
6
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
SamhitaK10/clarity-coach
10 files · 74 KB · @ 11cd11b
Structure
Interface
1 file · 10%Screens, components and styles rendered to the user.
API & routing
3 files · 30%Request entry points: routes, handlers and controllers.
Application logic
1 file · 10%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript68%
- Markdown29%
- HTML3%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 9- @anthropic-ai/sdk
- cors
- dotenv
- elevenlabs
- elevenlabs-node
- express
- multer
- node-fetch
- openai
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.