Inspiration

After watching friends and peers struggle through opaque hiring processes and generic interview prep tools, I wanted to build a single platform that delivers realistic practice, data-driven feedback, and community support—while giving recruiters a secure, scalable way to evaluate talent.

Tech Stack, Libraries & Tools

  1. NextJS – Server-side rendering & routing
  2. Firebase & Firebase Admin SDK – Real-time database, authentication, and server-side operations
  3. face-api.js – Browser-based face detection for proctoring & eye-tracking
  4. TensorFlow.js – In-browser machine learning models
  5. Vapi – Voice AI integration for mock interview assistant
  6. Gemini SDK – Google’s Gemini models for NLP feedback
  7. Zod – TypeScript-first schema validation
  8. jsPDF – Client-side PDF generation for downloadable resumes

What I Learned

  • In-Browser AI: How to load and run TensorFlow.js and face-api.js models efficiently without blocking the UI.
  • Voice-Driven UX: Integrating Vapi for seamless speech-to-text and text-to-speech flows, and shaping dialogs for natural Q&A.
  • Schema Validation: Using Zod to enforce strict data contracts across frontend forms, API endpoints, and resume parser inputs.
  • PDF Workflows: Generating high-quality, ATS-compatible resumes on the client with jsPDF, including dynamic templates and user data binding.
  • Real-Time Security: Balancing proctoring accuracy and performance with face-api.js and TensorFlow.js heuristics for eye-tracking and tab-focus monitoring.

How I Built It

  1. Frontend (NextJS + React + Tailwind CSS):
    • Server-side routes for interview sessions and resume downloads
    • Dynamic component library for mock interview UI, resume builder, and forum
  2. Backend (Firebase + Firebase Admin SDK):
    • Secure user authentication & role management
    • Firestore collections for interview logs, resumes, and community posts
  3. AI/ML Integration:
    • Deployed face-api.js models in a Web Worker to track gaze and flag tab-switch events
    • Leveraged TensorFlow.js for real-time NLP analysis of candidate responses
    • Connected to Gemini SDK for advanced feedback on language quality and content
  4. Voice Assistant (Vapi):
    • Configured conversational flows for role-specific Q&A
    • Tuned speech recognition and synthesis models to minimize latency
  5. Resume Generation:
    • Built resume templates as HTML/CSS components
    • Used jsPDF to export filled templates into ATS-friendly PDF
  6. Community Forum:
    • Real-time chat and threaded discussions powered by Firestore listeners
    • Moderation tools and schema-validated post submissions via Zod

Challenges Faced

  • Performance vs. Accuracy: Running ML models in the browser introduced latency; I optimized by batching inference and offloading to Web Workers.
  • Cross-Browser Proctoring: Achieving consistent face detection and eye-tracking across devices and lighting conditions required extensive testing and fallback heuristics.
  • Data Validation: Ensuring every resume field and forum post conformed to our schemas meant building robust Zod validators and detailed error handling.
  • PDF Fidelity: Translating complex HTML/CSS templates into high-fidelity PDFs with jsPDF involved fine-tuning layout calculations and embedded font handling.

Built With

Share this project:

Updates