Inspiration
Job interviews are nerve-wracking. Many qualified candidates fail not because of a lack of skills, but because of a lack of confidence and non-verbal communication skills. We realized that while there are many platforms to practice coding or technical questions, there was a gap in tools that help with the human side of interviewing—body language, tone, and facial expressions. ConfidenceLab was born from the desire to give every candidate a private, objective, and intelligent mirror to practice and improve their soft skills.
How we built it
ConfidenceLab is a full-stack application leveraging the power of modern AI libraries.
- Frontend: Built with React and TypeScript for a responsive, "LeetCode-style" professional interface. We used modern CSS for a clean, distraction-free user experience.
- Backend: Powered by FastAPI (Python) for high-performance asynchronous processing.
- AI & ML Pipeline:
- Computer Vision: We utilized MediaPipe for real-time body pose estimation and face mesh detection to analyze posture and engagement. DeepFace (TensorFlow/Keras) was integrated for nuanced emotion detection (e.g., smile authenticity, facial tension).
- Speech Analysis: Vosk models provide offline speech recognition to analyze speech content, while Librosa and SciPy were used to extract acoustic features like pitch, tone, and hesitation markers.
- Data Processing: Pandas and NumPy handle the numerical data to calculate real-time confidence scores. ## Challenges we ran into
- Real-time Performance: Running multiple heavy AI models (Face, Pose, Audio) simultaneously without lagging the video feed was a significant challenge. We optimized this by using efficient threading and frame-skipping techniques to ensure the user interface remained responsive.
- Model Synchronization: Correlating audio events (like a stutter) with visual cues (like looking away) required precise timestamp alignment across different data streams.
- Privacy: We wanted to ensure user video data wasn't unnecessarily exposed. We architected the system to process as much as possible locally or in ephemeral states, ensuring users feel safe practicing their most vulnerable moments. ## Accomplishments that we're proud of
- Successfully integrating three distinct modalities (Face, Voice, Body) into a single cohesive "Confidence Score".
- Creating a seamless user interface that feels like a professional tool rather than just a tech demo.
- The system's ability to detect subtle cues like "smile authenticity," which goes beyond simple emotion detection. ## What we learned
- The intricacies of non-verbal communication and how quantifiable features (like eye gaze duration) correlate with perceived confidence.
- How to manage complex state in a React application dealing with live media streams.
- The importance of user-centric design in educational/coaching tools – feedback needs to be constructive, not overwhelming. ## What's next for ConfidenceLab
- Adding VR support for an even more immersive mock interview experience.
- Implementing specific "interviewer personas" (e.g., strict, friendly, technical) to simulate different stress levels.
- Generating personalized improvement plans based on historical session data.
Built With
- deepface
- fastapi
- git
- html/css
- javascript
- keras
- librosa
- mediapipe
- moviepy
- npm
- numpy
- opencv
- pandas
- pillow
- pip
- pydantic
- python
- react
- scikit-learn
- scipy
- tensorflow
- typescript
- vite
- vosk
Log in or sign up for Devpost to join the conversation.