<?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: Ruchita Daga</title>
    <description>The latest articles on DEV Community by Ruchita Daga (@ruchita_daga).</description>
    <link>https://dev.to/ruchita_daga</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F99mvlsfu5tfj9m7ku25d.png</url>
      <title>DEV Community: Ruchita Daga</title>
      <link>https://dev.to/ruchita_daga</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ruchita_daga"/>
    <language>en</language>
    <item>
      <title>InterviewMate — Your Private AI Interview Coach</title>
      <dc:creator>Ruchita Daga</dc:creator>
      <pubDate>Sun, 04 Oct 2026 20:33:41 +0000</pubDate>
      <link>https://dev.to/ruchita_daga/interviewmate-your-private-ai-interview-coach-3ajk</link>
      <guid>https://dev.to/ruchita_daga/interviewmate-your-private-ai-interview-coach-3ajk</guid>
      <description>&lt;p&gt;&lt;strong&gt;# InterviewMate — Your Private AI Interview Coach&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fopknjus4vlnbo615ezyd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fopknjus4vlnbo615ezyd.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuosigkfoihtv803wlerk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuosigkfoihtv803wlerk.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;br&gt;
Interview preparation can become repetitive very quickly. You can practice hundreds of generic questions, but that doesn't necessarily mean you're practicing questions relevant to &lt;strong&gt;your resume and the role you're targeting&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;InterviewMate&lt;/strong&gt; for a friend preparing for internships and placements.&lt;/p&gt;
&lt;h2&gt;
  
  
  What does it do?
&lt;/h2&gt;

&lt;p&gt;InterviewMate creates a personalized interview practice loop:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resume + Job Description → Interview Question → Candidate Answer → AI Feedback&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your resume&lt;/li&gt;
&lt;li&gt;The job description you're preparing for&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;InterviewMate then generates a relevant interview question using a local open-weight AI model.&lt;/p&gt;

&lt;p&gt;You answer the question as if you were speaking to an interviewer, and the system evaluates your response with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Score&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Strengths&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improvements&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;A safe, grounded version of your answer&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Why did I build it for a friend?
&lt;/h2&gt;

&lt;p&gt;My friend was preparing for interviews and needed something more useful than a list of random interview questions.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Give them a private space where they can practice questions relevant to the opportunity they're actually preparing for and immediately understand how their answer could improve.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Why open innovation?
&lt;/h2&gt;

&lt;p&gt;The core AI system uses &lt;strong&gt;Gemma 3:1B&lt;/strong&gt;, an open-weight model running locally through &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This was important for two reasons.&lt;/p&gt;
&lt;h3&gt;
  
  
  Privacy
&lt;/h3&gt;

&lt;p&gt;Interview preparation involves personal information such as resumes, projects, experience, and answers.&lt;/p&gt;

&lt;p&gt;With local inference, the project doesn't require sending that information to a hosted AI provider just to practice an interview.&lt;/p&gt;
&lt;h3&gt;
  
  
  Experimentation
&lt;/h3&gt;

&lt;p&gt;Using an open-weight model makes it possible to experiment with the AI layer, prompts, evaluation behavior, and future improvements without depending entirely on a proprietary hosted API.&lt;/p&gt;

&lt;p&gt;This project is a small example of how open AI models can be turned into practical tools for individual users.&lt;/p&gt;
&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Backend&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;Pydantic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AI&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gemma 3:1B&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;li&gt;Local inference&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Next.js Frontend
       |
       | HTTP API
       ↓
FastAPI Backend
       |
       ↓
Ollama
       |
       ↓
Gemma 3:1B
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;p&gt;One of the biggest challenges was making the AI feedback useful without allowing the model to invent details about the candidate.&lt;/p&gt;

&lt;p&gt;For example, an interview coach should not add projects, technologies, achievements, or experiences that the candidate never mentioned.&lt;/p&gt;

&lt;p&gt;So I designed the feedback flow with a strong focus on keeping the candidate's actual experience grounded in their original answer.&lt;/p&gt;
&lt;h2&gt;
  
  
  Run it locally
&lt;/h2&gt;

&lt;p&gt;You'll need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;Python 3.12+&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pull the model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull gemma3:1b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start the backend:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;backend
python &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv
&lt;span class="nb"&gt;source &lt;/span&gt;venv/bin/activate
pip &lt;span class="nb"&gt;install &lt;/span&gt;fastapi uvicorn ollama pydantic
python &lt;span class="nt"&gt;-m&lt;/span&gt; uvicorn main:app &lt;span class="nt"&gt;--reload&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start the frontend in another terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;frontend
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Screenshots
&lt;/h2&gt;

&lt;p&gt;I included screenshots showing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Resume and job description input&lt;/li&gt;
&lt;li&gt;Generated interview question and candidate answer&lt;/li&gt;
&lt;li&gt;AI-generated interview feedback&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/RuchitaDaga/InterviewMate" rel="noopener noreferrer"&gt;https://github.com/RuchitaDaga/InterviewMate&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;Possible future improvements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-question mock interviews&lt;/li&gt;
&lt;li&gt;Interview history&lt;/li&gt;
&lt;li&gt;Progress tracking&lt;/li&gt;
&lt;li&gt;Role-specific question categories&lt;/li&gt;
&lt;li&gt;Voice-based interview practice&lt;/li&gt;
&lt;li&gt;Support for additional open-weight models&lt;/li&gt;
&lt;li&gt;Improved grounded answer refinement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built for the &lt;strong&gt;DEV Weekend Challenge — Build for a Friend&lt;/strong&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #weekendchallenge #hf26challenge
&lt;/h1&gt;

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