Inspiration

Job interviews are high-stakes, yet most candidates practice with static flashcards or generic question lists that have no connection to their actual background. We wanted to build a practice tool that felt like a real interview, one that knows your resume, adapts to how well you answer, targets the company you're applying to, and puts you in a live coding sandbox under realistic pressure. HireMePls.ai was born from the frustration of "I wish I had practiced that specific question before my interview."

What it does

HireMePls.ai is an end-to-end mock interview platform with three distinct modes:

  • Technical Interview — Upload your PDF resume. The system extracts your work experience and projects, generates tailored questions from your background, grades each spoken answer across five dimensions (Decision Clarity, Tradeoff Depth, Quantified Impact, Technical Precision, System Ownership), and issues an adaptive follow-up based on your score.
  • Behavioural Interview — Select a target company and role. The platform retrieves live company context via web RAG and generates STAR-format questions weighted toward that company's known values and interview style.
  • Coding Interview — Solve Python or SQL problems in a live sandbox. Code runs in an isolated cloud environment against hidden test cases, with a Skip escape hatch and a Next Question gate that only unlocks when all tests pass.

Every session ends with a structured report: per-question scores, an overall signal summary, your primary skill gap, and a strong-answer example.

How we built it

  • Backend — Python + Flask serving a REST API for all three interview modes
  • LLM layer — Gemini (primary) and Hugging Face (fallback), abstracted behind a swappable provider factory so models can be hot-swapped via an environment variable
  • Resume parsing — extracts structured JSON from PDF resumes, filtering to experiences and projects only
  • Grading — Chain-of-thought prompting scores answers 0–25 across five rubric dimensions; a second pass generates the adaptive follow-up informed by the grade
  • Company context — Web retrieval RAG fetches live context for the target company, feeding behavioural question generation
  • Voice I/O — ElevenLabs voice agents for text to speech and speect to text applications; graceful fallback to browser-native TTS if the API is unavailable
  • Code execution — Modal cloud for isolated Python sandboxing; in-process SQLite for SQL; automatic local fallback if Modal credentials are absent
  • Frontend — Single-file React + Tailwind SPA (index.html) — no build step required Deployment — Fully containerised via Docker and docker-compose and Aedify

Challenges we ran into

  • LLM output parsing — LLMs occasionally produce malformed XML or deviate from the expected schema. We built a graceful fallback that manually extracts tagged fields so the interview never crashes mid-session.
  • Sandboxed code execution — Safely running arbitrary user-submitted code without exposing the host environment required integrating Modal's cloud isolation, plus a reliable local fallback path.
  • Session state — Managing concurrent interview sessions in-memory while keeping each user's state isolated across three mode types needed careful session key design.

Accomplishments that we're proud of

  • A fully adaptive interview loop where follow-up questions are directly informed by the quality of the previous answer, not just randomly selected
  • A coding interview mode that replicates the real OA experience: hidden tests, isolated execution, and a gated progression flow

What we learned

  • Prompt engineering for structured output is as important as model selection — a well-designed chain-of-thought prompt on a smaller model often outperforms a naive prompt on a larger one
  • Keeping the frontend as a single static file dramatically reduces setup friction for judges and collaborators
  • Modular, provider-abstracted architecture pays off quickly — we swapped LLM backends multiple times during development with minimal code changes

What's next for HireMePls.Ai

  • Persistent sessions backed by a database so users can track progress across multiple practice runs
  • More interview verticals, system design, product management, and data science rounds
  • Real-time feedback overlay, live filler-word detection and pacing feedback during spoken answers
  • Expanded coding question bank with difficulty tiers, language support beyond Python and SQL, and company-specific question sets
  • Shareable reports with a public link so candidates can share results with mentors or study groups

Built With

Share this project:

Updates