DEV Community

Cover image for FriendPrep AI — Your Private AI Interview Coach
Stuti Singhania
Stuti Singhania

Posted on

FriendPrep AI — Your Private AI Interview Coach

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

I built FriendPrep AI, a private AI-powered interview coach for a friend preparing for technical interviews and campus placements.

The problem was simple: interview preparation often means searching through hundreds of generic questions, while the questions that matter most are usually connected to your own resume and the specific role you're applying for.

I wanted to build something that feels less like a generic chatbot and more like a friend who knows your background and helps you prepare for the interview you're actually going to face.

FriendPrep AI lets a candidate:

  1. Upload their resume as a PDF.
  2. Paste the job description for the target role.
  3. Generate personalized technical interview questions.
  4. Start a mock interview using those questions.
  5. Submit answers and receive AI-powered feedback.

The evaluation focuses on:

  • Technical correctness
  • Completeness
  • Clarity
  • Relevance
  • Missing concepts
  • How the answer could be improved

The core workflow is:

Resume + Job Description
          ↓
    Local Qwen3 AI
          ↓
Personalized Questions
          ↓
     Mock Interview
          ↓
    Candidate Answer
          ↓
    Local Qwen3 AI
          ↓
   Evaluation + Feedback
Enter fullscreen mode Exit fullscreen mode

The goal wasn't to build another chatbot.

I wanted to build something my friend could actually practice with.

Demo

FriendPrep AI currently runs locally because its AI inference is intentionally performed through Ollama.

Demo Link:

The complete workflow is:

Resume → Job Description → Personalized Questions → Mock Interview → AI Feedback

The project can be run locally with the open-weight Qwen3 model through Ollama.

The application demonstrates the complete interview-preparation workflow, from providing candidate context to generating questions and evaluating interview answers.

Code

GitHub Repository:

https://github.com/Stuti-Singhania/friendprep-ai

The project is a full-stack application:

friendprep-ai/
│
├── frontend/
│   ├── src/
│   │   └── app/
│   │       ├── page.tsx
│   │       ├── layout.tsx
│   │       └── globals.css
│   ├── package.json
│   └── tsconfig.json
│
└── backend/
    └── app/
        ├── routes/
        │   ├── interview.py
        │   └── evaluation.py
        ├── services/
        │   └── llm.py
        └── main.py
Enter fullscreen mode Exit fullscreen mode

The frontend provides the interview experience, while the FastAPI backend handles resume processing, question generation, and answer evaluation.

How I Built It

The AI at the core of FriendPrep AI is Qwen3, an open-weight language model running locally through Ollama.

I deliberately chose local inference because the application works with personal career information such as resumes, projects, skills, and interview answers.

Tech Stack

Frontend

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS

Backend

  • Python
  • FastAPI
  • Pydantic
  • pypdf

AI

  • Qwen3
  • Ollama
  • Local inference

Resume Processing

The user uploads a resume in PDF format.

The FastAPI backend validates the file and uses pypdf to extract readable text from the resume.

That extracted information becomes part of the context provided to the local AI model.

Personalized Question Generation

The resume text and target job description are provided to Qwen3 with instructions to generate technical interview questions relevant to both the candidate and the role.

This makes the questions more personalized than a generic list of interview questions.

Mock Interview

The generated questions are presented as an interactive mock interview.

The candidate answers each question one at a time rather than simply reading a generated list.

Answer Evaluation

After the candidate submits an answer, the backend sends the question, answer, and relevant job context to Qwen3.

The model produces feedback covering:

  • Technical correctness
  • Completeness
  • Clarity
  • Relevance
  • Missing concepts
  • A stronger example answer

The application therefore uses open-weight AI for both major AI tasks:

Question Generation + Answer Evaluation

So open-weight AI isn't just an add-on to the application.

It powers the main product experience.

Why Does Open Innovation Matter?

Open innovation mattered because of the kind of information this application handles.

A resume can contain someone's:

  • Education
  • Skills
  • Projects
  • Work experience
  • Career goals
  • Job applications

Interview answers can contain even more personal information.

Using Qwen3 with Ollama allowed me to run the core AI functionality locally instead of requiring a proprietary hosted AI API.

That creates a different privacy model: the user's interview-preparation data can remain on their own machine.

It also gives the developer more control over the AI layer.

With an open-weight model, I can experiment with models, prompts, inference settings, and deployment approaches without redesigning the entire application around a closed provider.

For FriendPrep AI, open innovation wasn't simply a technology choice.

It directly supported the privacy and control goals of the product.

There is also an important practical benefit: the project can be built and experimented with without requiring a paid AI API key just to access the core interview functionality.

That makes the project easier to reproduce and modify for developers who want to experiment with local AI.

Top comments (0)