<?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: Anirudh</title>
    <description>The latest articles on DEV Community by Anirudh (@anirudh_shivam).</description>
    <link>https://dev.to/anirudh_shivam</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%2F4048559%2Fd4e6bece-29ec-40bf-a68f-8af55e861388.png</url>
      <title>DEV Community: Anirudh</title>
      <link>https://dev.to/anirudh_shivam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anirudh_shivam"/>
    <language>en</language>
    <item>
      <title>I Built a Job Search Agent That Scores 200 Jobs With Local AI -- Zero Cloud, Zero Cost</title>
      <dc:creator>Anirudh</dc:creator>
      <pubDate>Mon, 27 Jul 2026 02:36:02 +0000</pubDate>
      <link>https://dev.to/anirudh_shivam/i-built-a-job-search-agent-that-scores-200-jobs-with-local-ai-zero-cloud-zero-cost-21lk</link>
      <guid>https://dev.to/anirudh_shivam/i-built-a-job-search-agent-that-scores-200-jobs-with-local-ai-zero-cloud-zero-cost-21lk</guid>
      <description>&lt;p&gt;Job searching is tab hell.&lt;/p&gt;

&lt;p&gt;You open LinkedIn, Indeed, RemoteOK, Glassdoor. You re-read the same listings. You copy-paste the same cover letter. You pay $30/month for tools that just aggregate feeds and call it "AI-powered."&lt;/p&gt;

&lt;p&gt;I wanted something better. So I built JobRadar.&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Does
&lt;/h2&gt;

&lt;p&gt;JobRadar is a CLI tool that searches 8 job sources concurrently and scores every listing against your profile using a local LLM running on your machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; jobradar &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="s2"&gt;"python developer"&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; profile.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Eight boards searched in parallel. Every job scored 0-100. Results saved to CSV. Total time: under a minute.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Local AI Angle
&lt;/h2&gt;

&lt;p&gt;Every other job search tool I found uses cloud APIs for scoring -- OpenAI, Claude, whatever. Which means your resume, your search history, your career preferences all go to someone else's server. And you pay per token.&lt;/p&gt;

&lt;p&gt;JobRadar runs qwen3-1.7b (1.1 GB) on your CPU via Ollama. No API keys. No subscriptions. No data leaving your machine. The AI scores each job on four dimensions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Skills match&lt;/strong&gt; -- do you have what they need?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Experience fit&lt;/strong&gt; -- does your level match?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Salary fit&lt;/strong&gt; -- does it meet your range?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote fit&lt;/strong&gt; -- does it match your preference?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each job gets a score, a rating (Excellent/Good/Fair/Poor), and a reasoning paragraph explaining why.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 8 Sources
&lt;/h2&gt;

&lt;p&gt;Most job search tools scrape 1-2 boards. JobRadar hits 8 simultaneously:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Remotive&lt;/strong&gt; -- remote jobs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RemoteOK&lt;/strong&gt; -- remote-first jobs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jobicy&lt;/strong&gt; -- remote jobs with salary data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Himalayas&lt;/strong&gt; -- global remote jobs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Arbeitnow&lt;/strong&gt; -- international jobs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Greenhouse ATS&lt;/strong&gt; -- 15 company career pages (GitLab, Stripe, Figma, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ashby ATS&lt;/strong&gt; -- 15 company career pages (OpenAI, Anthropic, Linear, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LinkedIn&lt;/strong&gt; -- opt-in (may violate ToS)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Greenhouse and Ashby sources pull directly from company career page APIs. No scraping, no auth, no fragility.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the Scoring Works
&lt;/h2&gt;

&lt;p&gt;You define a profile YAML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Anirudh&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Backend Engineer&lt;/span&gt;
&lt;span class="na"&gt;skills&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Python&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;FastAPI&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;PostgreSQL&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Docker&lt;/span&gt;
&lt;span class="na"&gt;experience_years&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;
&lt;span class="na"&gt;salary_min&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;120000&lt;/span&gt;
&lt;span class="na"&gt;remote_ok&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;JobRadar sends each job description plus your profile to the local LLM and gets back structured JSON with scores and reasoning. The model runs on your CPU -- no GPU required. On my machine (15GB RAM, no GPU), it processes about 9 seconds per job.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes This Different
&lt;/h2&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;JobRadar&lt;/th&gt;
&lt;th&gt;Cloud-based tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AI scoring&lt;/td&gt;
&lt;td&gt;Local LLM (free)&lt;/td&gt;
&lt;td&gt;OpenAI API ($$)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data privacy&lt;/td&gt;
&lt;td&gt;Stays on your machine&lt;/td&gt;
&lt;td&gt;Sent to cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Job sources&lt;/td&gt;
&lt;td&gt;8 concurrent&lt;/td&gt;
&lt;td&gt;1-3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web dashboard&lt;/td&gt;
&lt;td&gt;Yes (Kanban)&lt;/td&gt;
&lt;td&gt;Depends&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;Varies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Setup time&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bash setup.sh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Account + API key&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The Web Dashboard
&lt;/h2&gt;

&lt;p&gt;Beyond the CLI, there's a FastAPI dashboard with a Kanban-style pipeline to track your applications. Filters, search, config editor -- all running locally on port 3000.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; with Rich for terminal UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; for local LLM inference (or llama.cpp)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI&lt;/strong&gt; for the web dashboard&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; for caching&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;requests + BeautifulSoup&lt;/strong&gt; for scraping&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone github.com/ANIRudH-lab-life/job-radar
&lt;span class="nb"&gt;cd &lt;/span&gt;job-radar
bash setup.sh &lt;span class="c"&gt;# or setup.ps1 on Windows&lt;/span&gt;

&lt;span class="c"&gt;# Pick Ollama (recommended)&lt;/span&gt;
python &lt;span class="nt"&gt;-m&lt;/span&gt; jobradar &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="s2"&gt;"python developer"&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; profile.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;MIT licensed. No vendor lock-in. Your data stays yours.&lt;/p&gt;




&lt;p&gt;GitHub: github.com/ANIRudH-lab-life/job-radar&lt;/p&gt;

&lt;p&gt;If you find it useful, a star would mean a lot. If you have ideas for improvement, open an issue -- I read every one.&lt;/p&gt;




</description>
      <category>python</category>
      <category>opensource</category>
      <category>ai</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
