Skip to content

BenjaminBurnell/mockingbird

Repository files navigation

Mockingbird 🐦

Mockingbird is an AI-powered interview preparation platform designed to help developers practice both behavioral and technical interview questions in a realistic, interactive environment. By leveraging Google's Gemini 1.5 Flash for intelligence and ElevenLabs for life-like voice interactions, Mockingbird provides a seamless, conversational experience that mimics a real-world technical interview.


🚀 Features

  • Dynamic Question Generation: Mockingbird parses job descriptions from URLs or text and generates tailored interview questions using Gemini.
  • Realistic Voice Interaction: Uses ElevenLabs TTS (Text-to-Speech) and STT (Speech-to-Text) to conduct the interview verbally.
  • Technical Coding Environment: Integrated code editor with Pyodide for client-side execution, allowing users to write and run Python code while explaining their logic.
  • Intelligent Scoring & Feedback: Provides a comprehensive breakdown of interview performance, including scores for skill alignment, semantic relevance, structure, and delivery.
  • Natural Transitions: An AI "interviewer" provides conversational transitions between questions to keep the session engaging.

🛠️ Architecture & Tech Stack

Frontend

  • HTML5/CSS3: Minimalist, glassmorphism UI.
  • JavaScript (Vanilla): Core logic for audio management, state transitions, and API communication.
  • CodeMirror: Professional code editor for the technical portion of the interview.
  • Pyodide: Enables running Python code directly in the browser.
  • Web Speech API: For client-side interim speech-to-text processing.

Backend

  • FastAPI (Python): Robust and high-performance API backend.
  • Google Gemini 1.5 Flash: Used for question generation, technical evaluation, and scoring.
  • ElevenLabs API: Powers the "voice" of the interviewer with high-fidelity speech synthesis.
  • Sentence Transformers: Used for semantic analysis of interview answers.

📦 Getting Started

Prerequisites

  • Python 3.10+
  • An ElevenLabs API Key
  • An OpenRouter (or Google Gemini) API Key

Installation

  1. Clone the repository:

    git clone [https://github.com/benjaminburnell/mockingbird.git](https://github.com/benjaminburnell/mockingbird.git)
    cd mockingbird
  2. Setup the Backend:

    cd backend
    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install -r requirements.txt
  3. Configure Environment Variables: Create a .env file in the backend/ directory:

    OPENROUTER_API_KEY=your_key_here
    ELEVEN_API_KEY=your_key_here
    VOICE_ID=your_preferred_voice_id
  4. Run the Backend:

    python main.py
  5. Open the Frontend: Simply open index.html in your browser.


📖 How to Use

  1. Paste a Job Description: Provide a link or text for the role you're practicing for.
  2. Speak with the AI: The AI will ask you behavioral questions. Tap the microphone to answer.
  3. Solve Technical Challenges: When prompted, use the coding modal to write and test your Python solution.
  4. Review Results: At the end of the session, receive detailed feedback on your answers.

⚖️ License

Distributed under the MIT License. See LICENSE.txt for more information.


👥 Contributors

  • Benjamin Burnell
  • Daknguyen Nguyen
  • Graeme Lamain
  • Arshiya Shahbazpourtazehkande

Mockingbird: Mastering the art of the interview, one conversation at a time.

About

MockingBird is a AI technical interview prep that actually speaks with you.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors