<?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: Himanshu Nikam</title>
    <description>The latest articles on DEV Community by Himanshu Nikam (@himanshu_1817).</description>
    <link>https://dev.to/himanshu_1817</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%2F4150292%2F06a1a1f2-d906-4b04-a13b-2cdc397788ea.jpeg</url>
      <title>DEV Community: Himanshu Nikam</title>
      <link>https://dev.to/himanshu_1817</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/himanshu_1817"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Himanshu Nikam</dc:creator>
      <pubDate>Sun, 04 Oct 2026 11:16:17 +0000</pubDate>
      <link>https://dev.to/himanshu_1817/devchallengeweekendchallengehf26challenge-3c3n</link>
      <guid>https://dev.to/himanshu_1817/devchallengeweekendchallengehf26challenge-3c3n</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/himanshu_1817/i-built-a-brutal-resume-roaster-for-my-friend-who-keeps-getting-rejected-4b5h" class="crayons-story__hidden-navigation-link"&gt;I Built a Brutal Resume Roaster for My Friend Who Keeps Getting Rejected&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/himanshu_1817/i-built-a-brutal-resume-roaster-for-my-friend-who-keeps-getting-rejected-4b5h" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/himanshu_1817" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F4150292%2F06a1a1f2-d906-4b04-a13b-2cdc397788ea.jpeg" alt="himanshu_1817 profile" class="crayons-avatar__image" width="736" height="736"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/himanshu_1817" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Himanshu Nikam
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Himanshu Nikam
                
                
              
              &lt;div id="story-author-preview-content-4795451" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/himanshu_1817" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F4150292%2F06a1a1f2-d906-4b04-a13b-2cdc397788ea.jpeg" class="crayons-avatar__image" alt="" width="736" height="736"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Himanshu Nikam&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/himanshu_1817/i-built-a-brutal-resume-roaster-for-my-friend-who-keeps-getting-rejected-4b5h" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 4&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/himanshu_1817/i-built-a-brutal-resume-roaster-for-my-friend-who-keeps-getting-rejected-4b5h" id="article-link-4795451"&gt;
          I Built a Brutal Resume Roaster for My Friend Who Keeps Getting Rejected
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hf26challenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hf26challenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/weekendchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;weekendchallenge&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/himanshu_1817/i-built-a-brutal-resume-roaster-for-my-friend-who-keeps-getting-rejected-4b5h" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/himanshu_1817/i-built-a-brutal-resume-roaster-for-my-friend-who-keeps-getting-rejected-4b5h#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I Built a Brutal Resume Roaster for My Friend Who Keeps Getting Rejected</title>
      <dc:creator>Himanshu Nikam</dc:creator>
      <pubDate>Sun, 04 Oct 2026 11:10:42 +0000</pubDate>
      <link>https://dev.to/himanshu_1817/i-built-a-brutal-resume-roaster-for-my-friend-who-keeps-getting-rejected-4b5h</link>
      <guid>https://dev.to/himanshu_1817/i-built-a-brutal-resume-roaster-for-my-friend-who-keeps-getting-rejected-4b5h</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;My friend Arjun kept sending me his resume and asking for feedback. Every time I'd just say "looks good bro" because honestly, telling someone their resume is bad is awkward. But he kept getting rejected from internships and I could see why.&lt;/p&gt;

&lt;p&gt;So I built RoastMyResume - an AI tool that gives the kind of brutally honest, section-by-section feedback that friends are too uncomfortable to give. But it doesn't just roast you for fun. It actually helps you fix the problems: keyword gaps, weak bullet points, ATS issues, the works.&lt;/p&gt;

&lt;p&gt;The whole thing runs locally on your machine using Ollama. No API keys needed, no data sent anywhere. You upload your PDF resume, paste the job description you're targeting, and the AI tears it apart then helps you rebuild it.&lt;/p&gt;

&lt;p&gt;Here's what it does:&lt;/p&gt;

&lt;p&gt;The Roast — section-by-section honest feedback, not the polite kind&lt;br&gt;
4-Second Test  simulates what a recruiter actually sees in their first 4 seconds&lt;br&gt;
Rejection Risk Score — 0–100 score per resume section with charts&lt;br&gt;
JD Match Analysis — compares your resume against the actual job description&lt;br&gt;
Keyword Gap Finder — shows exactly which ATS keywords are missing&lt;br&gt;
AI Rewriter — rewrites any weak section to be stronger and JD-matched&lt;br&gt;
Interview Prep — predicts the hardest interview questions based on your resume gaps&lt;br&gt;
Voice Roast (optional) — reads the roast aloud using ElevenLabs TTS&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Watch it in action here:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/M5TUdrLNAy4" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

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

&lt;p&gt;The full source code is on GitHub:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/neoquantx" rel="noopener noreferrer"&gt;
        neoquantx
      &lt;/a&gt; / &lt;a href="https://github.com/neoquantx/RoastMyResume" rel="noopener noreferrer"&gt;
        RoastMyResume
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🔥 RoastMyResume&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Brutally honest AI career coach for your friend who keeps getting rejected.&lt;/strong&gt;
Built for the "Build for a Friend" challenge — Open-Source AI at its core.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎯 The Problem&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;My friend Arjun kept applying to internships and getting rejected. He'd send me his resume and I'd say "looks great!" — because I didn't want to hurt his feelings. He needed someone to tell him the truth.&lt;/p&gt;
&lt;p&gt;So I built an AI that would.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RoastMyResume&lt;/strong&gt; gives the brutal, honest feedback that friends are too polite to give — but in a constructive way that actually fixes the problem.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Features&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🔥 &lt;strong&gt;The Roast&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Section-by-section brutal honest feedback in Gen Z voice&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⏱️ &lt;strong&gt;4-Second Test&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Simulates exactly what a recruiter sees in 4 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📊 &lt;strong&gt;Rejection Risk Score&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;0-100 score per section with visual charts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🎯 &lt;strong&gt;JD Match Analysis&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Compares resume against actual job description&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔑 &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/neoquantx/RoastMyResume" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;Everything runs locally using open-weight models through Ollama. No OpenAI, no paid API, nothing leaves your machine.&lt;/p&gt;

&lt;p&gt;The stack:&lt;/p&gt;

&lt;p&gt;Ollama as the local model runner&lt;br&gt;
Llama 3.2 (3B) as the default model — fast, runs on CPU, no GPU needed&lt;br&gt;
Mistral (7B) and Gemma 2 (9B) as optional alternatives you can switch between in the sidebar&lt;br&gt;
Streamlit for the web UI&lt;br&gt;
PyMuPDF for parsing uploaded PDF resumes&lt;br&gt;
ElevenLabs TTS (optional, needs API key) for the voice roast feature&lt;br&gt;
Python for everything tying it together&lt;/p&gt;

&lt;p&gt;The core flow: user uploads a PDF → PyMuPDF extracts the text → Ollama runs the chosen local model → the prompt asks it to analyze the resume section by section against the job description → Streamlit displays the results in tabs.&lt;/p&gt;

&lt;p&gt;The model switch in the sidebar is just swapping which Ollama model name gets sent in the API call. Simple but works really well , you can literally feel the difference in reasoning quality between the 3B and 7B model.&lt;/p&gt;

&lt;p&gt;To run it yourself:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
git clone &lt;a href="https://github.com/neoquantx/RoastMyResume.git" rel="noopener noreferrer"&gt;https://github.com/neoquantx/RoastMyResume.git&lt;/a&gt;&lt;br&gt;
cd RoastMyResume&lt;br&gt;
python3 -m venv venv &amp;amp;&amp;amp; source venv/bin/activate&lt;br&gt;
pip install -r requirements.txt&lt;/p&gt;

&lt;h1&gt;
  
  
  if you want other models you can got through readme section:
&lt;/h1&gt;

&lt;p&gt;ollama pull llama3.2&lt;br&gt;
ollama serve&lt;/p&gt;

&lt;h1&gt;
  
  
  in a second terminal:
&lt;/h1&gt;

&lt;p&gt;streamlit run app.py&lt;/p&gt;

&lt;p&gt;Then open - &lt;a href="http://localhost:8501" rel="noopener noreferrer"&gt;http://localhost:8501&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;The honest answer: a closed API would have made this impossible to share the way I wanted to.&lt;/p&gt;

&lt;p&gt;If I had used GPT-4 or Claude, Arjun would need to hand over his resume to a third-party server. That's a real concern  a resume has your phone number, address, work history, everything. With Ollama and open-weight models, the resume never leaves his laptop. Nothing is logged, nothing is stored, no company is reading it.&lt;/p&gt;

&lt;p&gt;Beyond privacy, open models let anyone actually run this. No credit card, no account, no API limits. Arjun just clones the repo and runs it. That's the point. If open-weight models didn't exist, this tool would either cost money to use or require people to trust a cloud service with their personal data. Neither of those felt right for something built for a friend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;Based on what the project actually uses:&lt;/p&gt;

&lt;p&gt;Featured categories ($200 each):&lt;/p&gt;

&lt;p&gt;Best Use of Gemma — Gemma 2 (9B) is one of the three supported local models. Users can select it in the sidebar and run it fully locally via Ollama.&lt;/p&gt;

&lt;p&gt;Partner categories ($100 each):&lt;/p&gt;

&lt;p&gt;Best Use of ElevenLabs — the optional voice roast feature uses ElevenLabs TTS to read the roast feedback aloud. The .env setup for this is fully documented in the README.&lt;/p&gt;

&lt;p&gt;Best Use of GitHub Copilot — used GitHub Copilot throughout development for UI fixes in Streamlit and other parts of the codebase. It helped speed up the frontend work significantly.&lt;/p&gt;

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