<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jay Jain</title>
    <description>The latest articles on DEV Community by Jay Jain (@jay_jain_).</description>
    <link>https://dev.to/jay_jain_</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3943398%2Fedc72c82-3795-4e91-b856-8ce650362bf2.jpg</url>
      <title>DEV Community: Jay Jain</title>
      <link>https://dev.to/jay_jain_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jay_jain_"/>
    <language>en</language>
    <item>
      <title>I Built an Offline AI Interview Coach for My Friend's Job Hunt</title>
      <dc:creator>Jay Jain</dc:creator>
      <pubDate>Sun, 04 Oct 2026 06:18:04 +0000</pubDate>
      <link>https://dev.to/jay_jain_/i-built-an-offline-ai-interview-coach-for-my-friends-job-hunt-4bi8</link>
      <guid>https://dev.to/jay_jain_/i-built-an-offline-ai-interview-coach-for-my-friends-job-hunt-4bi8</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend&lt;/p&gt;

&lt;p&gt;I Built an Offline AI Interview Coach for My Friend's Job Hunt&lt;/p&gt;

&lt;p&gt;Job interviews are stressful enough without having to figure out what to practice, whether an answer is good, and what to improve next.&lt;/p&gt;

&lt;p&gt;A friend of mine was preparing for job interviews and had a very familiar problem: they could study technical questions all day, but practicing an actual interview was much harder.&lt;/p&gt;

&lt;p&gt;So instead of sending them another list of interview questions, I built them an AI interview coach.&lt;/p&gt;

&lt;p&gt;The goal was simple:&lt;/p&gt;

&lt;p&gt;Give my friend a private interviewer they can practice with whenever they want.&lt;/p&gt;

&lt;p&gt;And because this challenge is about open innovation, I wanted the AI at the center of the project to be something I could actually run, inspect, modify, and experiment with rather than simply sending every conversation to a closed API.&lt;/p&gt;

&lt;p&gt;What I Built&lt;/p&gt;

&lt;p&gt;I built [PROJECT NAME], a personal AI interview coach designed specifically for [FRIEND'S FIRST NAME / “a friend preparing for software engineering interviews”].&lt;/p&gt;

&lt;p&gt;The coach can:&lt;/p&gt;

&lt;p&gt;Start a realistic mock interview&lt;/p&gt;

&lt;p&gt;Ask technical and behavioral questions&lt;/p&gt;

&lt;p&gt;Adapt follow-up questions based on the candidate's answer&lt;/p&gt;

&lt;p&gt;Explain what was strong or weak about an answer&lt;/p&gt;

&lt;p&gt;Suggest a better structure for answering&lt;/p&gt;

&lt;p&gt;Generate additional questions around weak areas&lt;/p&gt;

&lt;p&gt;Give a final interview report&lt;/p&gt;

&lt;p&gt;Track recurring mistakes across practice sessions&lt;/p&gt;

&lt;p&gt;Instead of acting like a chatbot that simply answers questions, the application is designed around one specific workflow:&lt;/p&gt;

&lt;p&gt;Interview → Answer → Follow-up → Feedback → Practice → Improve&lt;/p&gt;

&lt;p&gt;The most important design decision was that the AI isn't there to do the interview preparation for my friend.&lt;/p&gt;

&lt;p&gt;It is there to make my friend practice.&lt;/p&gt;

&lt;p&gt;Demo&lt;/p&gt;

&lt;p&gt;Live Demo: [ADD YOUR DEPLOYED DEMO LINK]&lt;/p&gt;

&lt;p&gt;Demo Video: [ADD YOUR VIDEO LINK]&lt;/p&gt;

&lt;p&gt;Here is a typical session:&lt;/p&gt;

&lt;p&gt;My friend chooses an interview type.&lt;/p&gt;

&lt;p&gt;The AI interviewer asks the first question.&lt;/p&gt;

&lt;p&gt;My friend answers without seeing the expected answer.&lt;/p&gt;

&lt;p&gt;The AI asks follow-up questions.&lt;/p&gt;

&lt;p&gt;The session ends with structured feedback.&lt;/p&gt;

&lt;p&gt;The coach identifies areas that should be practiced again.&lt;/p&gt;

&lt;p&gt;[ADD 2–4 SCREENSHOTS HERE]&lt;/p&gt;

&lt;p&gt;Code&lt;/p&gt;

&lt;p&gt;The complete source code is available here:&lt;/p&gt;

&lt;p&gt;GitHub: [ADD YOUR GITHUB REPOSITORY LINK]&lt;/p&gt;

&lt;p&gt;The repository contains the application code, model configuration, prompts, setup instructions, and the components used to run the interview workflow.&lt;/p&gt;

&lt;p&gt;How I Built It&lt;/p&gt;

&lt;p&gt;The core of the project uses Gemma, an open-weight model, as the AI engine.&lt;/p&gt;

&lt;p&gt;Architecture:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                ┌─────────────────────┐
                │    Web Interface    │
                └──────────┬──────────┘
                           │
                           ▼
                ┌─────────────────────┐
                │ Interview Controller│
                └──────────┬──────────┘
                           │
             ┌─────────────┼─────────────┐
             ▼             ▼             ▼
       Question       Conversation    Evaluation
        Context          Memory          Logic
             │             │             │
             └─────────────┼─────────────┘
                           ▼
                ┌─────────────────────┐
                │   Gemma Model       │
                │   Open-weight AI    │
                └──────────┬──────────┘
                           │
                           ▼
                ┌─────────────────────┐
                │ Feedback + Next     │
                │ Practice Suggestions │
                └─────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The application separates the interview workflow from the model itself.&lt;/p&gt;

&lt;p&gt;That means I can experiment with the model, prompts, context, and evaluation logic independently.&lt;/p&gt;

&lt;p&gt;For the interview experience, I gave the model a structured role instead of simply asking it to "act like an interviewer."&lt;/p&gt;

&lt;p&gt;The model receives information such as:&lt;/p&gt;

&lt;p&gt;Interview type&lt;/p&gt;

&lt;p&gt;Candidate's previous answers&lt;/p&gt;

&lt;p&gt;Current interview stage&lt;/p&gt;

&lt;p&gt;Topics being tested&lt;/p&gt;

&lt;p&gt;Previous weaknesses&lt;/p&gt;

&lt;p&gt;Rules for asking follow-up questions&lt;/p&gt;

&lt;p&gt;This makes the interaction much more consistent.&lt;/p&gt;

&lt;p&gt;The interesting part&lt;/p&gt;

&lt;p&gt;I deliberately didn't make the AI immediately reveal the correct answer.&lt;/p&gt;

&lt;p&gt;If my friend gives a weak answer, the coach first tries to behave like a real interviewer:&lt;/p&gt;

&lt;p&gt;"Can you explain why you chose that approach?"&lt;/p&gt;

&lt;p&gt;Only after the interview does it switch into coach mode and explain what could be improved.&lt;/p&gt;

&lt;p&gt;That small distinction makes the tool much more useful for actual practice.&lt;/p&gt;

&lt;p&gt;Why Does Open Innovation Matter?&lt;/p&gt;

&lt;p&gt;This project would have been easy to build using a closed AI API.&lt;/p&gt;

&lt;p&gt;But using an open-weight model changed what I could build.&lt;/p&gt;

&lt;p&gt;The biggest advantage is control.&lt;/p&gt;

&lt;p&gt;The interview conversations can contain personal information, career plans, mistakes, and other things my friend may not want to send to a third-party service.&lt;/p&gt;

&lt;p&gt;With an open model, I can design the system around local or self-hosted inference and decide where the data goes.&lt;/p&gt;

&lt;p&gt;That gives the project a different privacy model from a typical AI wrapper.&lt;/p&gt;

&lt;p&gt;Open models also make experimentation much more interesting.&lt;/p&gt;

&lt;p&gt;I can:&lt;/p&gt;

&lt;p&gt;Change the model&lt;/p&gt;

&lt;p&gt;Change the system behavior&lt;/p&gt;

&lt;p&gt;Run inference locally&lt;/p&gt;

&lt;p&gt;Experiment with different prompts&lt;/p&gt;

&lt;p&gt;Tune the interview workflow&lt;/p&gt;

&lt;p&gt;Compare models&lt;/p&gt;

&lt;p&gt;Change the evaluation logic&lt;/p&gt;

&lt;p&gt;Potentially fine-tune the model for this particular use case&lt;/p&gt;

&lt;p&gt;The model is not a black box API sitting behind my application.&lt;/p&gt;

&lt;p&gt;It is one of the components I can actually work with.&lt;/p&gt;

&lt;p&gt;For a personal tool built for one person, that control matters.&lt;/p&gt;

&lt;p&gt;What I Learned&lt;/p&gt;

&lt;p&gt;The biggest lesson was that building an AI application isn't primarily about getting the model to produce impressive text.&lt;/p&gt;

&lt;p&gt;It is about designing the interaction around the user's actual problem.&lt;/p&gt;

&lt;p&gt;My first instinct was to make the AI answer interview questions.&lt;/p&gt;

&lt;p&gt;That wasn't what my friend needed.&lt;/p&gt;

&lt;p&gt;They needed someone—or something—to ask them questions, challenge their answers, and make them practice.&lt;/p&gt;

&lt;p&gt;That changed the entire design.&lt;/p&gt;

&lt;p&gt;The most useful AI feature ended up being the simplest one:&lt;/p&gt;

&lt;p&gt;asking the right follow-up question.&lt;/p&gt;

&lt;p&gt;Building It for One Person Changed the Product&lt;/p&gt;

&lt;p&gt;Normally, when building a product, it's tempting to think about thousands of users.&lt;/p&gt;

&lt;p&gt;This challenge forced me to do the opposite.&lt;/p&gt;

&lt;p&gt;I started with one person.&lt;/p&gt;

&lt;p&gt;I knew:&lt;/p&gt;

&lt;p&gt;what kind of interviews they were preparing for&lt;/p&gt;

&lt;p&gt;what topics they struggled with&lt;/p&gt;

&lt;p&gt;how they preferred to practice&lt;/p&gt;

&lt;p&gt;what kind of feedback they found useful&lt;/p&gt;

&lt;p&gt;what made them lose confidence during interviews&lt;/p&gt;

&lt;p&gt;That made it much easier to decide what the product should and shouldn't do.&lt;/p&gt;

&lt;p&gt;Instead of building another generic AI interview chatbot, I could build something personal.&lt;/p&gt;

&lt;p&gt;And that is probably my favorite part of this challenge.&lt;/p&gt;

&lt;p&gt;What My Friend Said&lt;/p&gt;

&lt;p&gt;After trying the first version, I asked:&lt;/p&gt;

&lt;p&gt;"[ADD YOUR FRIEND'S ACTUAL FEEDBACK HERE]"&lt;/p&gt;

&lt;p&gt;The feedback led to [ADD THE FEATURE/CHANGE YOU ACTUALLY MADE].&lt;/p&gt;

&lt;p&gt;That was an important reminder that the person you're building for should be part of the development loop.&lt;/p&gt;

&lt;p&gt;The first version wasn't designed to impress judges.&lt;/p&gt;

&lt;p&gt;It was designed to help one person.&lt;/p&gt;

&lt;p&gt;Results&lt;/p&gt;

&lt;p&gt;After [NUMBER] practice sessions, my friend [ADD YOUR REAL OBSERVATION/RESULT].&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;[X] interview sessions completed&lt;/p&gt;

&lt;p&gt;[X] recurring weak areas identified&lt;/p&gt;

&lt;p&gt;[X] new follow-up questions generated&lt;/p&gt;

&lt;p&gt;[X] improvement observed in [specific area]&lt;/p&gt;

&lt;p&gt;I’m including these numbers because I wanted to evaluate the project based on whether it actually helped the person I built it for—not just whether the demo looked impressive.&lt;/p&gt;

&lt;p&gt;What's Next&lt;/p&gt;

&lt;p&gt;There are several things I'd like to add:&lt;/p&gt;

&lt;p&gt;Voice-based interviews&lt;/p&gt;

&lt;p&gt;Resume-aware questioning&lt;/p&gt;

&lt;p&gt;More detailed interview analytics&lt;/p&gt;

&lt;p&gt;Role-specific interview modes&lt;/p&gt;

&lt;p&gt;Local long-term memory&lt;/p&gt;

&lt;p&gt;Model comparison&lt;/p&gt;

&lt;p&gt;Personalized practice plans&lt;/p&gt;

&lt;p&gt;A fully offline mode&lt;/p&gt;

&lt;p&gt;But the core idea will stay the same:&lt;/p&gt;

&lt;p&gt;Build the AI around the person, not the other way around.&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

&lt;p&gt;I'm submitting this project for:&lt;/p&gt;

&lt;p&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/p&gt;

&lt;p&gt;Best Use of Gemma&lt;/p&gt;

&lt;p&gt;[ONLY ADD OTHER PARTNER CATEGORIES HERE IF YOU ACTUALLY USED THOSE TECHNOLOGIES.]&lt;/p&gt;

&lt;p&gt;My Agent Session&lt;/p&gt;

&lt;p&gt;[OPTIONAL: ADD YOUR DEVRELAY AGENT SESSION HERE]&lt;/p&gt;

&lt;p&gt;I used the agent session to document how the project was built and iterated.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;This project started with a simple question:&lt;/p&gt;

&lt;p&gt;What could I build that would actually help someone I know?&lt;/p&gt;

&lt;p&gt;The answer wasn't another general-purpose AI assistant.&lt;/p&gt;

&lt;p&gt;It was a small, focused tool designed around one person's problem.&lt;/p&gt;

&lt;p&gt;That's what I liked about this challenge.&lt;/p&gt;

&lt;p&gt;Open innovation isn't only about making powerful models available.&lt;/p&gt;

&lt;p&gt;It's also about giving developers enough control to turn those models into tools that solve very specific problems for real people.&lt;/p&gt;

&lt;p&gt;I built this one for a friend.&lt;/p&gt;

&lt;p&gt;Now I want to see whether it can help them walk into their next interview a little more prepared.&lt;/p&gt;

&lt;p&gt;Built for a friend. Powered by open AI. Built for practice.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>gemma</category>
    </item>
  </channel>
</rss>
