<?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: Eman Adnan</title>
    <description>The latest articles on DEV Community by Eman Adnan (@emanadnan).</description>
    <link>https://dev.to/emanadnan</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: Eman Adnan</title>
      <link>https://dev.to/emanadnan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/emanadnan"/>
    <language>en</language>
    <item>
      <title>I Built a Private, Open-Source AI Interview Coach for My Friend Who Dreads Placement Interviews</title>
      <dc:creator>Eman Adnan</dc:creator>
      <pubDate>Sun, 04 Oct 2026 18:27:37 +0000</pubDate>
      <link>https://dev.to/emanadnan/i-built-a-private-open-source-ai-interview-coach-for-my-friend-who-dreads-placement-interviews-1pfi</link>
      <guid>https://dev.to/emanadnan/i-built-a-private-open-source-ai-interview-coach-for-my-friend-who-dreads-placement-interviews-1pfi</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Placement Interview Coach&lt;/strong&gt; is a web app that asks you a realistic interview question, lets you answer in your own words, and gives you instant feedback using the &lt;strong&gt;STAR method&lt;/strong&gt; (Situation, Task, Action, Result). An &lt;strong&gt;open-weight AI model&lt;/strong&gt; runs entirely inside your browser.&lt;/p&gt;

&lt;p&gt;You choose the role you're preparing for (software, data, IT or a part-time student job), optionally add a company name, and click &lt;strong&gt;New question&lt;/strong&gt;. After you answer, the coach gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a &lt;strong&gt;score out of 10&lt;/strong&gt;, shown as a colour-coded ring&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;STAR check&lt;/strong&gt; showing which parts your answer has and which are missing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;what went well&lt;/strong&gt; and &lt;strong&gt;how to improve&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;stronger version&lt;/strong&gt; of your answer that only uses your real details&lt;/li&gt;
&lt;li&gt;a likely &lt;strong&gt;follow-up question&lt;/strong&gt;, so you're not caught off guard&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Who It's For
&lt;/h2&gt;

&lt;p&gt;I built this for my friend &lt;strong&gt;Hetvi&lt;/strong&gt; and for myself. We're both applying for opportunities this year, and interviews are the part that feels the scariest: you freeze, forget your best examples, and never really know whether your answer was any good.&lt;/p&gt;

&lt;p&gt;University mock interviews are useful, but there aren't many slots. I wanted something Hetvi could open at 11pm the night before an interview and practise with as many times as she likes, without feeling judged.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;strong&gt;Live app:&lt;/strong&gt; &lt;a href="https://huggingface.co/spaces/EmanAdnan/placement-interview-coach" rel="noopener noreferrer"&gt;https://huggingface.co/spaces/EmanAdnan/placement-interview-coach&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Open it in Chrome or Edge on a laptop, click **Load AI model&lt;/em&gt;&lt;em&gt;, then **New question&lt;/em&gt;&lt;em&gt;.)&lt;/em&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%2Fgh7tu2fj13blctli09jw.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%2Fgh7tu2fj13blctli09jw.png" alt="Placement Interview Coach home page with the headline and 4 steps" width="800" height="423"&gt;&lt;/a&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%2Fiwyh7vs66hx9wvj4cvhs.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%2Fiwyh7vs66hx9wvj4cvhs.png" alt="Interview question, answer, a score of 7 out of 10 and the STAR check" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;strong&gt;Source:&lt;/strong&gt; &lt;a href="https://huggingface.co/spaces/EmanAdnan/placement-interview-coach/tree/main" rel="noopener noreferrer"&gt;https://huggingface.co/spaces/EmanAdnan/placement-interview-coach/tree/main&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The whole app is a single &lt;code&gt;index.html&lt;/code&gt; file with no backend and no API keys. It's MIT licensed, so anyone can fork it.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One HTML page, hosted free&lt;/strong&gt; as a static Hugging Face Space.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-weight models in the browser:&lt;/strong&gt; &lt;a href="https://github.com/mlc-ai/web-llm" rel="noopener noreferrer"&gt;WebLLM&lt;/a&gt; runs &lt;strong&gt;Qwen 2.5 3B&lt;/strong&gt; (default), &lt;strong&gt;Qwen 2.5 1.5B&lt;/strong&gt; or &lt;strong&gt;Gemma 2 2B&lt;/strong&gt; on your laptop's GPU through WebGPU. The model downloads once and is then cached.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two prompts do the work:&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;A &lt;em&gt;question&lt;/em&gt; prompt writes one realistic competency or motivation question for the chosen role and company.&lt;/li&gt;
&lt;li&gt;A &lt;em&gt;feedback&lt;/em&gt; prompt returns a fixed structure (score, STAR check, tips, stronger version, follow-up). The app turns that into a score ring and separate feedback cards as the answer streams in.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guardrails:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;The model is told never to invent experiences, skills or numbers. If a result is missing, the stronger version says &lt;em&gt;[add your number]&lt;/em&gt; instead of making one up. An interview coach that teaches you to exaggerate would be worse than useless.&lt;/li&gt;
&lt;li&gt;Very short answers and random keyboard-mashing are caught &lt;strong&gt;before&lt;/strong&gt; they reach the model, with a friendly message asking for real sentences.&lt;/li&gt;
&lt;li&gt;If WebGPU isn't available, the app explains why and still offers classic starter questions instead of crashing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What went wrong (and how I fixed it)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Plan A didn't work.&lt;/strong&gt; I first built it in Python with Gradio, but Gradio Spaces now need a paid plan. I rebuilt it to run fully in the browser, which turned out better: it's free, and answers stay private.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The small model copied my instructions.&lt;/strong&gt; With the 1.5B model, the feedback sometimes repeated my prompt text or filled tips with placeholders. I fixed it by switching the default to the 3B model, lowering the temperature, rewriting the prompt so every placeholder clearly says what to write, and cleaning any leftover instruction text out of the output.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safari doesn't support WebGPU yet,&lt;/strong&gt; so the app detects this and tells you to use Chrome or Edge.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; interview answers are personal. Because the model is open-weight, it runs on Hetvi's own device, and the answers are never sent to a server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free for students:&lt;/strong&gt; no API key, no subscription and no server costs. Anyone with the link can practise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparent and swappable:&lt;/strong&gt; you can see exactly which model is used, switch between Qwen and Gemma with one dropdown, and fork the code.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;mock interview mode&lt;/strong&gt; with 5 questions in a row and a summary at the end&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Saving answers&lt;/strong&gt;, so Hetvi can build a personal bank of STAR stories&lt;/li&gt;
&lt;li&gt;Support for &lt;strong&gt;more open models&lt;/strong&gt;, and phones as WebGPU spreads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading! If you're applying for placements or internships this year too, give it a try. Good luck! 🎃&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hacktoberfest</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
