This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
Every placement season on campus, the same story unfolds: brilliant engineers who can write flawless code freeze up the moment an interviewer asks them to explain concepts out loud.
My close friend and college roommate is one of those engineers. Despite knowing distributed systems and algorithms inside out, mock interview anxiety was getting the best of them. Commercial mock platforms were either expensive paid subscriptions, static LeetCode question banks, or generic AI chatbots that write 3-paragraph lectures instead of behaving like a real, conversational interviewer.
To help my friend prepare without the fear of judgment or high fees, I built PrepPal (Adaptive Performance-Based Technical Interview Bot) — an intelligent, conversational mock interviewer that adapts to how well the candidate is actually doing in real time.
Key Capabilities:
- Natural, Concise Dialogue: Follows strict conversational pacing (one short follow-up at a time, zero lecturing, and a filter that bans robotic phrases like "Let's shift gears").
- Behavioral & Hesitation Detection: Actively catches filler words ("umm", "uh", trailing off), evasive non-answers, or blank spots, immediately softening the follow-up instead of penalizing blindly.
- Dynamic Difficulty & Pivoting: Computes a real-time momentum score across answers. If my friend is acing a topic, it escalates to expert architectural trade-offs; if they hit a wall, it smoothly pivots to another technical domain.
- Glassmorphism Analytics Dashboard: Gives immediate feedback badges and post-interview Plotly visual performance reports.
Demo
What my friend said after testing it:
"It doesn't feel like talking to ChatGPT. When I hesitated on Python decorators, it didn't write me an essay — it just gave me a gentle nudge to explain simple functions first, exactly like our campus placement rounds."
Code
🎯 Adaptive Performance-Based Interview Bot
An AI-powered technical interview companion that dynamically adjusts its questions, difficulty, and topics in real-time based on the candidate's answers. Built with a hybrid Edge-Cloud LLM architecture utilizing a local Small Language Model (SLM) for drafting and the Groq API for strategic evaluation.
✨ Features
- Hybrid Edge-Cloud Architecture: Combines local Qwen2.5-7B-Instruct SLM (via Llama.cpp) and cloud-based Groq API.
- Dynamic Difficulty & Pivoting: Automatically detects knowledge gaps, hesitation patterns, and performance trend signals to adjust difficulty or pivot sub-topics.
- Real-Time Badges: Displays immediate feedback (e.g., Good Answer, Vague, Incorrect, Hesitation) as the candidate responds.
- Rich Analytics Dashboard: Renders interactive Plotly charts showing score trends, answer quality distribution, and personalized qualitative AI feedback.
- Natural Tone Enforcement: Automatically monitors and filters robotic transitions to keep the dialogue conversational and human-like.
🛠️ Tech Stack
- Frontend: Streamlit (Glassmorphism dark theme)
- …
How I Built It
Local Edge SLM (Fine-Tuned Qwen2.5-7B-Instruct):
Fine-tuned on our own campus technical interview dialogue dataset.
Quantized to Q4_K_M GGUF and executed completely offline on consumer hardware via llama-cpp-python (llama.cpp) using the ChatML prompt specification.
Serves as the rapid triage engine: produces instantaneous 12–18 word probing follow-ups and emits a dedicated [CONFIDENCE_LOW] token if the candidate's answer indicates struggle or hesitation.
Open Cloud Reasoning (Qwen 3.8 27B via Groq):
Handles parallel answer evaluation (strict 0.0–10.0 numeric scoring + diagnostic classification) with sub-second latency.
Powers dynamic topic syllabus generation with an SQLite persistent caching layer.
Open-Source Stack:
Frontend: Streamlit with custom Glassmorphism dark CSS.
Inference Harness: llama-cpp-python, Groq SDK.
Visualization: Plotly for real-time candidate score trajectories and competency distributions.
Why Does Open Innovation Matter?
This project could not have succeeded on proprietary, closed-source foundation models alone:
Custom Fine-Tuning for Specialized Agent Behavior:
Closed APIs often refuse to output strict sentinel tokens or insist on polite, verbose conversational fillers. Open weights allowed us to fine-tune Qwen2.5-7B specifically on campus placement conversations, conditioning it to reliably output single control tokens like [CONFIDENCE_LOW] when candidates freeze up.
Local Edge Inference Means Zero Anxiety & Complete Privacy:
Job interview preparation is deeply vulnerable. By running our triage model locally in quantized GGUF format on a laptop, mock interview transcripts don't have to be harvested into commercial training sets. It works even on poor campus Wi-Fi with no internet dependency for drafting.
Freedom to Evolve Without Lock-In:
During development, we completely swapped our local SLM from Phi-3 to fine-tuned Qwen2.5, and migrated cloud reasoning to open-weight Qwen 27B without touching our core orchestration state machines. Open weights give builders sovereign control over their AI infrastructure.
Prize Categories
1)Best use of Render
2)Best use of Github Copilot
Submitted by: scar3max












