<?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: Dhiraj Shirse</title>
    <description>The latest articles on DEV Community by Dhiraj Shirse (@dhirajshirse20).</description>
    <link>https://dev.to/dhirajshirse20</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%2F4171976%2F201aa47a-da87-4885-8dcc-5594f24a2e16.png</url>
      <title>DEV Community: Dhiraj Shirse</title>
      <link>https://dev.to/dhirajshirse20</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dhirajshirse20"/>
    <language>en</language>
    <item>
      <title>Sleep Peacefully. Wake Up Informed: How I Built Sloth Digest with Local AI</title>
      <dc:creator>Dhiraj Shirse</dc:creator>
      <pubDate>Mon, 26 Oct 2026 07:26:01 +0000</pubDate>
      <link>https://dev.to/dhirajshirse20/sleep-peacefully-wake-up-informed-how-i-built-sloth-digest-with-local-ai-3249</link>
      <guid>https://dev.to/dhirajshirse20/sleep-peacefully-wake-up-informed-how-i-built-sloth-digest-with-local-ai-3249</guid>
      <description>&lt;p&gt;*This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Modern communication tools have turned our mornings into an anxiety trap. Between student councils, hackathon teams, and family WhatsApp groups, waking up often means confronting 300 to 500 unread messages: inside jokes, reaction emoji, pizza memes, and fragmented logistics. Finding whether someone actually asked you a question or set a deadline requires 35 to 45 minutes of compulsive, thumb-numbing scrolling.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;Sloth Digest&lt;/strong&gt; — an offline-first, local-first web application that reads your busy group chats overnight on your own computer so you wake up completely calm. &lt;/p&gt;

&lt;p&gt;Instead of a chaotic wall of noise, you get a serene morning hearth answering four core questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Executive Morning Digest&lt;/strong&gt;: A calm two-line summary plus an expandable &lt;strong&gt;Detailed Discussion Breakdown&lt;/strong&gt; that synthesizes the narrative, key debates, agreements, and next steps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Chat &amp;amp; Message Classifier&lt;/strong&gt;: Every message is categorized as &lt;strong&gt;&lt;code&gt;⭐ Important&lt;/code&gt;&lt;/strong&gt; (action items, deadlines, questions, blockers) or &lt;strong&gt;&lt;code&gt;🛡️ Spam / Banter&lt;/code&gt;&lt;/strong&gt; (emojis, reactions, media placeholders, greetings), alongside an overall chat-level priority badge.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Formatted Chat Viewer&lt;/strong&gt;: An interactive chat-bubble stream with sender avatar initials, timestamp tags, line citations (&lt;code&gt;#L42&lt;/code&gt;), and real-time filter tabs (&lt;code&gt;All&lt;/code&gt;, &lt;code&gt;Important Only&lt;/code&gt;, &lt;code&gt;Spam / Chatter&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Who is Waiting on You&lt;/strong&gt;: Only the action items and questions directed at you or your team.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dates &amp;amp; Deadlines Mentioned&lt;/strong&gt;: A chronological timeline of commitments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Safe to Ignore Counter&lt;/strong&gt;: A celebratory badge highlighting how much chatter you avoided (e.g., &lt;em&gt;"384 messages safely bypassed"&lt;/em&gt;).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every extracted fact includes our &lt;strong&gt;Hallucination Guard&lt;/strong&gt;: a 1-click citation linking back to the exact line number, author, timestamp, and raw text of the original chat export. There are zero cloud API calls — nothing leaves your machine.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/Dhiraj201226/Sloth-Digest" rel="noopener noreferrer"&gt;https://github.com/Dhiraj201226/Sloth-Digest&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;URL&lt;/strong&gt;: &lt;a href="https://sloth-digest.vercel.app/" rel="noopener noreferrer"&gt;https://sloth-digest.vercel.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker 1-Command Startup&lt;/strong&gt;: &lt;code&gt;docker compose up --build -d&lt;/code&gt; (Local container on &lt;code&gt;http://localhost:8080&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vercel Deployable&lt;/strong&gt;: Pre-configured with &lt;a href="https://github.com/Dhiraj201226/Sloth-Digest/blob/main/vercel.json" rel="noopener noreferrer"&gt;&lt;code&gt;vercel.json&lt;/code&gt;&lt;/a&gt; for 1-click UI deployment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The 30-Second Lazy Workflow:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Drop your exported chat (&lt;code&gt;.txt&lt;/code&gt; or &lt;code&gt;.zip&lt;/code&gt;) into the dropzone or &lt;code&gt;watched_chats/&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;Watch the streaming progress bar report chunk-by-chunk with honest remaining time estimates.&lt;/li&gt;
&lt;li&gt;Wake up to instant visual calm: warm linen theme (&lt;code&gt;#FDFBF7&lt;/code&gt;), zero red alarm badges, and a full breakdown of what needs your attention.&lt;/li&gt;
&lt;li&gt;Toggle between the &lt;strong&gt;☕ Morning Digest&lt;/strong&gt; and the &lt;strong&gt;💬 Formatted Chat Stream&lt;/strong&gt; to inspect message classifications in place.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&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/Dhiraj201226" rel="noopener noreferrer"&gt;
        Dhiraj201226
      &lt;/a&gt; / &lt;a href="https://github.com/Dhiraj201226/Sloth-Digest" rel="noopener noreferrer"&gt;
        Sloth-Digest
      &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;🦥 Sloth Digest&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Slow and steady: rewards laziness by reading busy group chats overnight on your local machine so you wake up completely calm.&lt;/strong&gt;&lt;br&gt;
Built for the &lt;strong&gt;Dev.to Hacktoberfest Open-Source AI Challenge&lt;/strong&gt; (Week 3 Theme: &lt;em&gt;"Slow and Steady"&lt;/em&gt;).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://opensource.org/licenses/MIT" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://hacktoberfest.com/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/359a78a6c36b079b424e81e8d4f42c736fee8b4bef8a291fd8048c5d55af7688/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4861636b746f626572666573742d323032362d6f72616e67652e737667" alt="Hacktoberfest"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Dhiraj201226/Sloth-Digest#privacy-guarantee" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/923dd0da2d5fb809c89c1adfad008be518fc1c406a6898ceb7402c3efb9cb4a0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507269766163792d3130302532352532304f66666c696e652d737563636573732e737667" alt="Privacy: 100% Offline"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Dhiraj201226/Sloth-Digest/docs/05_evaluation.md" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/83a385520eb1cb3493f504cbb2eb34ef30a3dfc59516547a1cea8e1d7a2331a5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f574341472d322e322532304141253230436f6d706c69616e742d626c75652e737667" alt="WCAG 2.2 AA"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Dhiraj201226/Sloth-Digest#testing" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/21e33de8e623592de7b880d6b5139ebcedcbd9595a9083f2ab9ddd8720d8115f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f54657374732d31392532305061737365642d627269676874677265656e2e737667" alt="Tests: Passing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The Problem&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;You belong to 15 busy group chats: hackathon teams, college project channels, student councils, and family groups. Over an evening, hundreds of messages accumulate: inside jokes, memes, fragmented planning, and reaction emoji.&lt;/p&gt;
&lt;p&gt;You face a stressful choice:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Compulsive Catch-Up&lt;/strong&gt;: Spend 40 minutes scrolling through trivial banter just to find if someone asked you a question.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Passive Neglect&lt;/strong&gt;: Mute everything and risk missing a crucial deadline or assignment.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The Solution: Radical Laziness&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Do nothing. Go to sleep.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sloth Digest processes your exported WhatsApp chats (&lt;code&gt;.txt&lt;/code&gt; or &lt;code&gt;.zip&lt;/code&gt;) overnight on your local machine using an open-weight model via Ollama. When you wake up, a serene…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Dhiraj201226/Sloth-Digest" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Tech Stack Highlights:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local AI Core&lt;/strong&gt;: Ollama running &lt;code&gt;qwen2.5:1.5b&lt;/code&gt; (configurable via &lt;code&gt;.env&lt;/code&gt; or UI to &lt;code&gt;llama3.2:3b&lt;/code&gt; or &lt;code&gt;gemma4:12b&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Python 3.10+ with FastAPI, Pydantic v2 schemas, and embedded SQLite for zero-config persistence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Vite + React 19 + TypeScript + Tailwind CSS v4, built to strict WCAG 2.2 AA accessibility standards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Airgap Test&lt;/strong&gt;: Automated Pytest asserting that any socket connection attempting to leave &lt;code&gt;127.0.0.1&lt;/code&gt; immediately fails the build.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;I approached Sloth Digest as a pairing of HCI design discipline and systems engineering across 7 deliberate phases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;HCI Personas &amp;amp; Usability Specifications (&lt;code&gt;docs/01_requirements.md&lt;/code&gt;)&lt;/strong&gt;: Designed around three distinct cognitive, perception, and motor profiles (an overwhelmed CS student, a busy class representative, and a senior family coordinator). Established 10 quantitative usability specifications (U1–U10) &lt;em&gt;before&lt;/em&gt; writing code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "Calm Morning Hearth" Design (&lt;code&gt;docs/02_design.md&lt;/code&gt;)&lt;/strong&gt;: Replaced conventional urgent unread counters and alarm badges with warm linen tones (&lt;code&gt;#FDFBF7&lt;/code&gt;), sage accents (&lt;code&gt;#4A6B53&lt;/code&gt;), and generous spacing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Map-Reduce Orchestration (&lt;code&gt;docs/03_architecture.md&lt;/code&gt;)&lt;/strong&gt;: Because chat exports often exceed 5,000+ messages, a two-stage map-reduce engine chunks chats into temporal slices (50–60 messages with overlaps), extracts candidate facts in parallel, and reduces them into a calm executive summary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hallucination Guard &amp;amp; Citation Anchoring&lt;/strong&gt;: Built an $O(1)$ in-memory index that anchors extracted action items and deadlines back to raw line numbers. Unanchored model output is discarded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nightly Job (&lt;code&gt;sloth run&lt;/code&gt;) &amp;amp; File Tidier&lt;/strong&gt;: Added a background CLI runner with SHA256 file hashing for lazy overnight execution, plus an &lt;strong&gt;Inbox Tidier&lt;/strong&gt; stretch goal that standardizes messy WhatsApp export filenames in 1 click.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chat &amp;amp; Message Classification Engine&lt;/strong&gt;: Implemented message-level semantic analysis categorizing chatter, reactions, and media notices from direct questions and actionable commitments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Production Containerization&lt;/strong&gt;: Multi-stage &lt;code&gt;Dockerfile&lt;/code&gt; and &lt;code&gt;docker-compose.yml&lt;/code&gt; bundling both the compiled React frontend and Python backend for 1-command deployment anywhere.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Open-source and local-first AI are not just engineering preferences; they represent a fundamental ethical standard for personal software:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Private Data Stays on Your Machine&lt;/strong&gt;: Group chats contain deeply private conversations: personal finances, family health updates, academic disputes, and passwords. Asking users to upload their personal family logs to third-party cloud APIs (OpenAI or Anthropic) is a non-starter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Running Cost&lt;/strong&gt;: Anyone with a standard 8 GB laptop can run Sloth Digest forever without subscription fees, credit cards, or token meters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Swappable Open Weights&lt;/strong&gt;: Users aren't locked into a single proprietary provider. Today it's &lt;code&gt;qwen2.5:1.5b&lt;/code&gt;; tomorrow you can swap to &lt;code&gt;llama3.2:3b&lt;/code&gt; or &lt;code&gt;gemma4:12b&lt;/code&gt; with a single config flag.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability in the Wild&lt;/strong&gt;: Works in remote off-grid locations, on airplanes, and during campus internet outages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Where a Closed API Would Have Been Better (Honest Trade-off)&lt;/strong&gt;:
During factual spot-checks, the 1.5B open-weight model occasionally conflated action items containing dates with standalone deadline categories (e.g., filing a video demo deadline under action items instead of dates). A frontier closed model (like Claude 3.5 Sonnet or GPT-4o) has stronger semantic classification zero-shot out of the box. However, our Hallucination Guard mitigates this by anchoring every extracted item to its original line number regardless of category.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;To ensure complete empirical honesty, here are the &lt;strong&gt;measured numbers&lt;/strong&gt; from my own daily routine:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Daily Activity&lt;/th&gt;
&lt;th&gt;Without Sloth Digest (Manual Scrolling)&lt;/th&gt;
&lt;th&gt;With Sloth Digest (Morning Glance)&lt;/th&gt;
&lt;th&gt;Measured Daily Time Saved&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Morning Class Council Catch-Up&lt;/strong&gt; (180 messages)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;14 minutes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;45 seconds&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;13 min 15 s&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Hackathon Team Chat Triage&lt;/strong&gt; (75 messages)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;9 minutes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;30 seconds&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;8 min 30 s&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Family Group Log Check&lt;/strong&gt; (60 messages)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;6 minutes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;20 seconds&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;5 min 40 s&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total Daily Investment&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;29 minutes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1 minute 35 seconds&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;27 minutes 25 seconds&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Net result&lt;/strong&gt;: By being radically lazy and letting a local model read while I sleep, I save &lt;strong&gt;over 27 minutes every single morning&lt;/strong&gt; without missing a single commitment or deadline.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sleep peacefully. Wake up informed. Stay lazy.&lt;/em&gt; 🦥&lt;/p&gt;

&lt;p&gt;Dhiraj201226&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Closing the Freelance Skill Gap: From Client RFP to Winning Proposal in 2 Seconds</title>
      <dc:creator>Dhiraj Shirse</dc:creator>
      <pubDate>Sun, 18 Oct 2026 22:15:30 +0000</pubDate>
      <link>https://dev.to/dhirajshirse20/closing-the-freelance-skill-gap-from-client-rfp-to-winning-proposal-in-2-seconds-4pa</link>
      <guid>https://dev.to/dhirajshirse20/closing-the-freelance-skill-gap-from-client-rfp-to-winning-proposal-in-2-seconds-4pa</guid>
      <description>&lt;p&gt;*&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;JobMatch AI&lt;/strong&gt; is an intelligent freelance gig and job matching platform that turns the tedious freelance job hunt into an unfair competitive advantage.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem It Solves
&lt;/h3&gt;

&lt;p&gt;Freelancers and side hustlers on platforms like Upwork, Fiverr, and Contra spend 30–45 minutes customizing bids for every individual client posting. Applying with generic proposals yields a sub-5% interview rate, while manually tailoring resumes, identifying missing requirements, and writing consultative proposals burns hours of unpaid time.&lt;/p&gt;

&lt;h3&gt;
  
  
  What JobMatch AI Does (In Under 2 Seconds)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;0–100 Match Calibration:&lt;/strong&gt; Evaluates candidate resumes or profiles against client job descriptions and provides a transparent, calibrated match score with 1–2 sentences of concise justification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skill Gap Diagnostics:&lt;/strong&gt; Instantly extracts verified matched skills vs. missing client requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 Concrete Actionable Fixes:&lt;/strong&gt; Generates three distinct, actionable suggestions to bridge gaps, improve positioning, or adjust the resume before submitting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailored Proposal Generator:&lt;/strong&gt; Drafts high-converting, personalized freelance proposals in the candidate’s chosen persona (&lt;em&gt;Persuasive Freelancer&lt;/em&gt;, &lt;em&gt;Technical &amp;amp; Analytical&lt;/em&gt;, or &lt;em&gt;Consultative Partner&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save &amp;amp; Compare Leaderboard (&lt;code&gt;/saved&lt;/code&gt;):&lt;/strong&gt; Allows freelancers to save multiple job postings to an interactive leaderboard, ranking them by match score so they only bid on the gigs they are mathematically most likely to win.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10-Second Judge Quick Try:&lt;/strong&gt; One-click demo scenarios on the home screen to test full-stack developer and AI engineer scenarios with a single click.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Who Would Pay For It?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Active Freelancers &amp;amp; Agencies:&lt;/strong&gt; Bidding on 10–30 client RFPs weekly. Saving 20 hours a month on proposal writing easily justifies a $9–$19/month subscription.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Side-Hustle Tech Seekers:&lt;/strong&gt; Developers looking to monetize spare weekend hours by instantly finding client gigs that fit their exact stack without wading through thousands of listings.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Deployed App:&lt;/strong&gt; &lt;a href="https://job-match-v7ul.vercel.app" rel="noopener noreferrer"&gt;https://job-match-v7ul.vercel.app&lt;/a&gt; &lt;em&gt;(Replace with your live Vercel URL)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Dhiraj201226/Job-Match" rel="noopener noreferrer"&gt;https://github.com/Dhiraj201226/Job-Match&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 1: The Command Center &amp;amp; 10-Second Quick Try
&lt;/h3&gt;

&lt;p&gt;The landing screen offers instant exploration. Judges and users can upload their own resume (PDF or pasted text) or click one of the &lt;strong&gt;10-Second Judge Quick Try&lt;/strong&gt; scenarios (&lt;em&gt;Full-Stack React &amp;amp; Node MVP&lt;/em&gt; or &lt;em&gt;Senior AI Application Engineer&lt;/em&gt;) to populate real-world candidate and RFP data with a single click.&lt;/p&gt;

&lt;h2&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%2F2gp9aseopsee118lszj5.png" alt="JobMatch AI Home Screen" width="800" height="531"&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 2: 0–100 Match Calibration &amp;amp; Skill Diagnostics
&lt;/h3&gt;

&lt;p&gt;Once you click &lt;strong&gt;"Analyze Match &amp;amp; Write Proposal"&lt;/strong&gt;, Google Gemma 4 decomposes both documents, returning structured diagnostics in ~1.4 seconds:&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%2Fh7omck5g8cv7vkucbj51.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%2Fh7omck5g8cv7vkucbj51.png" alt="Match Score and Skills Diagnostics" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Calibrated Match Fit:&lt;/strong&gt; An objective 0–100 score (e.g., &lt;strong&gt;82% Match Fit&lt;/strong&gt;) with win probability classification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Executive Justification:&lt;/strong&gt; 1–2 sentences explaining why the candidate received the score based on tech stack alignment and experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Matched Skills Tags (Green):&lt;/strong&gt; Verified skills satisfying client deliverables (e.g. React 19, TypeScript, Node.js, RESTful APIs).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Step 3: 3 Concrete Things to Fix &amp;amp; Tailored Proposal Generator
&lt;/h3&gt;

&lt;p&gt;Rather than leaving candidates wondering how to improve, JobMatch AI provides three prioritized action items followed by a client-tailored proposal:&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%2Fsugd4e8rmqn5q5y50x71.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%2Fsugd4e8rmqn5q5y50x71.png" alt="Actionable Fixes and Proposal" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1. Concrete Resume Tweaks:&lt;/strong&gt; Actionable bullets telling the candidate exactly what keywords or projects to add to pass screening filters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2. Project Alignment:&lt;/strong&gt; Suggestions on how to frame past project metrics to match the client's problem.&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  Step 4: Opportunity Ranking &amp;amp; Compare Leaderboard (&lt;code&gt;/saved&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Freelancers shouldn't bid blindly. The &lt;strong&gt;Opportunity Ranking System&lt;/strong&gt; allows candidates to save multiple client RFPs into a ranked pipeline:&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%2Fuk781l1ram7mk8nbwu0n.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%2Fuk781l1ram7mk8nbwu0n.png" alt="Saved Jobs and Compare Leaderboard" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aggregates portfolio metrics: Total Saved, Top Match (e.g., 94%), Average Score, and Top Category.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Step 5: Transparent Side Hustle Economics
&lt;/h3&gt;

&lt;p&gt;Unit economics make or break a side hustle. JobMatch AI features a transparent freemium pricing structure:&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%2Fxwyfgrwbzf3eouiflybg.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%2Fxwyfgrwbzf3eouiflybg.png" alt="Pricing and Usage Tiers" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  - &lt;strong&gt;Unlimited Free Local Mode:&lt;/strong&gt; 100% on-device inference via local Ollama with zero token cost ($0.00).
&lt;/h2&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&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/Dhiraj201226" rel="noopener noreferrer"&gt;
        Dhiraj201226
      &lt;/a&gt; / &lt;a href="https://github.com/Dhiraj201226/Job-Match" rel="noopener noreferrer"&gt;
        Job-Match
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      To check job matching skills
    &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;JobMatch AI — Freelance Gig &amp;amp; Job Matcher&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;DEV Hacktoberfest Open-Source AI Challenge · Week 2 "Side Hustle"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Powered by Google's open-weight model: &lt;strong&gt;Gemma 4 31B&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://dev.to" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/846befb849aefed34787cfc1b501ad46e53ac3cc8fca9fc5eb34231527be84cc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4445562d4861636b746f626572666573745f323032362d626c75652e737667" alt="DEV Hacktoberfest"&gt;&lt;/a&gt;
&lt;a href="https://ollama.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6fe0a6de791db0cf0f7545b030ea9ebeaf1550abaa2b3d0a169012c31c91459f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6f64656c2d47656d6d615f345f3331422d707572706c652e737667" alt="Open Model"&gt;&lt;/a&gt;
&lt;a href="https://ollama.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e49013c363a143d535c51ced5af5ecefc419d8fbe8988f548dc93987f5be59a4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507269766163792d3130302532355f4f6e2d2d4465766963655f4c6f63616c2d656d6572616c642e737667" alt="Privacy Mode"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Dhiraj201226/Job-Match/./frontend/test/llm.test.js" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6eefcd4a3937e44674ddb256cfbe18f9bbc4d76a3623d266ef18bdc6ae99b4a7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f54657374732d385f5061737365642d737563636573732e737667" alt="Tests"&gt;&lt;/a&gt;
&lt;a href="https://vercel.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/b2c5a0cdfa98b1855ba584477282fb80ad99a8da7766d3f0e16af16a848f6e92/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4465706c6f792d56657263656c5f52656164792d626c61636b2e737667" alt="Deployment"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;JobMatch AI turns the tedious freelance job hunt into an unfair competitive advantage. Built around &lt;strong&gt;Google Gemma 4&lt;/strong&gt;, it analyzes candidate resumes against job descriptions or freelance gig postings, calculates a precise match score (0–100), pinpoints missing skills, provides 3 concrete actionable fixes, and crafts tailored, high-converting proposals in the candidate's chosen tone.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📸 Product Demo &amp;amp; Walkthrough&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Dhiraj201226/Job-Match/./screenshots/demo.webp"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FDhiraj201226%2FJob-Match%2FHEAD%2F.%2Fscreenshots%2Fdemo.webp" alt="JobMatch AI Demo"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Key Features&lt;/h3&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Match Score &amp;amp; Reasoning:&lt;/strong&gt; 0–100 match calibration with concise justification explaining fit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skill Gap Diagnostics:&lt;/strong&gt; Real-time extraction of matched skills vs. missing requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 Concrete Things to Fix:&lt;/strong&gt; Actionable recommendations to bridge gaps before submitting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailored Proposal Generator:&lt;/strong&gt; Custom-tailored Upwork/freelance proposal written in your persona (e.g. Persuasive Freelancer, Technical, Consultative).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save &amp;amp; Compare Ranking List:&lt;/strong&gt; Save multiple gigs to a ranked leaderboard (…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Dhiraj201226/Job-Match" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The repository is organized into a clean full-stack architecture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;frontend/&lt;/code&gt;: React 19 + Vite + Tailwind CSS with client-side PDF parsing and interactive Radar diagnostics.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;frontend/lib/llm.js&lt;/code&gt;: Core open-model provider module handling prompt construction, schema validation, and retry mechanics.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;api/&lt;/code&gt; &amp;amp; &lt;code&gt;frontend/api/&lt;/code&gt;: Vercel serverless edge functions (&lt;code&gt;/api/analyze&lt;/code&gt; and &lt;code&gt;/api/status&lt;/code&gt;) with zero cold-starts and 24/7 uptime.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;frontend/test/llm.test.js&lt;/code&gt;: Automated unit test suite verifying structured JSON parsing, error recovery, and provider switching (8/8 tests passing).&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;JobMatch AI is built around Google's flagship open-weight model: &lt;strong&gt;Google Gemma 4 31B&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture &amp;amp; Dual-Execution Engine
&lt;/h3&gt;

&lt;p&gt;To ensure both lightning-fast public evaluation and zero-data-leak privacy, JobMatch AI features a single provider layer (&lt;code&gt;frontend/lib/llm.js&lt;/code&gt;) supporting two switchable modes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cloud Mode (&lt;code&gt;gemma4:31b-cloud&lt;/code&gt;):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deployed on Vercel's global edge network.&lt;/li&gt;
&lt;li&gt;Routes inference securely via serverless backend functions to Ollama Cloud.&lt;/li&gt;
&lt;li&gt;Evaluates complex 1,500+ token resumes and client RFPs in &lt;strong&gt;~1.4 seconds&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;API keys are protected exclusively on the serverless backend (never exposed to the browser).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Local Mode (&lt;code&gt;gemma4&lt;/code&gt; on &lt;code&gt;localhost:11434&lt;/code&gt;):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;100% On-Device &amp;amp; Zero Data Leaks.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;All candidate data stays locally on your laptop without touching the internet.&lt;/li&gt;
&lt;li&gt;Automatically detects installed local Ollama models (&lt;code&gt;gemma4:12b&lt;/code&gt;, &lt;code&gt;qwen2.5:1.5b&lt;/code&gt;, etc.).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Robust JSON Schema Enforcement &amp;amp; Self-Correction
&lt;/h3&gt;

&lt;p&gt;Small and mid-sized open models can occasionally produce conversational preamble or markdown code blocks. To guarantee 100% production reliability:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A custom extraction utility (&lt;code&gt;extractJSON&lt;/code&gt;) cleans code fences and trailing commas.&lt;/li&gt;
&lt;li&gt;A validator verifies schema keys (&lt;code&gt;match_score&lt;/code&gt;, &lt;code&gt;score_reason&lt;/code&gt;, &lt;code&gt;matched_skills&lt;/code&gt;, &lt;code&gt;missing_skills&lt;/code&gt;, 3 &lt;code&gt;fixes&lt;/code&gt;, and &lt;code&gt;cover_letter&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;If validation fails, an automated &lt;strong&gt;one-time self-correction retry&lt;/strong&gt; sends the exact validation error back to Gemma 4 to correct itself before rendering.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;In high-volume job seeking and freelance bidding, the model architecture is not an implementation detail — &lt;strong&gt;open models are what make this product economically and ethically viable&lt;/strong&gt;:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Cost Per Match vs. The Proprietary API Tax
&lt;/h3&gt;

&lt;p&gt;Commercial closed models (like GPT-4) charge recurring per-token fees for input context and output generation. A thorough evaluation requires sending a full candidate resume (~1,200 tokens) alongside a lengthy client RFP (~1,000 tokens), plus generating a structured proposal (~800 tokens). At scale, proprietary API fees destroy side-hustle unit economics.&lt;br&gt;&lt;br&gt;
&lt;em&gt;With Gemma 4:&lt;/em&gt; In Local mode, the cost per match is &lt;strong&gt;$0.00&lt;/strong&gt;. In Cloud mode, open weights allow deployment on cost-effective infrastructure with predictable unit economics.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Radical Candidate Data Privacy
&lt;/h3&gt;

&lt;p&gt;Resumes contain highly confidential personal identifiable information: full legal names, contact details, employer history, salary markers, and proprietary project details.&lt;br&gt;&lt;br&gt;
With closed APIs, that data is transmitted to third-party proprietary servers. With Gemma 4's open weights, candidates can run evaluations completely &lt;strong&gt;on-device on their own hardware&lt;/strong&gt;—guaranteeing 100% confidentiality.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Freedom from Vendor Lock-In &amp;amp; Portability
&lt;/h3&gt;

&lt;p&gt;Proprietary models are black boxes subject to sudden deprecation, aggressive rate limiting, and unannounced behavioral shifts. Gemma 4's open weights allow developers to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quantize the model (GGUF 4-bit) for edge laptops.&lt;/li&gt;
&lt;li&gt;Deploy dense 31B parameters on dedicated serverless clusters for maximum reasoning.&lt;/li&gt;
&lt;li&gt;Fine-tune on winning freelance proposal corpora without third-party licensing restrictions.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href="https://dev.to/dhiraj201226"&gt;@Dhiraj201226&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>NatureQuest AI — Explore More, Scroll Less</title>
      <dc:creator>Dhiraj Shirse</dc:creator>
      <pubDate>Sun, 11 Oct 2026 21:35:39 +0000</pubDate>
      <link>https://dev.to/dhirajshirse20/naturequest-ai-explore-more-scroll-less-408n</link>
      <guid>https://dev.to/dhirajshirse20/naturequest-ai-explore-more-scroll-less-408n</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;NatureQuest AI is a full-stack, gamified outdoor exploration platform built around a single mission: Explore More, Scroll Less.&lt;/p&gt;

&lt;p&gt;Modern screen fatigue is real. Most fitness and wellness trackers only count steps or screen hours without giving people a compelling, adventurous reason to step outside and observe the real world.&lt;/p&gt;

&lt;p&gt;NatureQuest AI changes that by turning your local environment into an interactive outdoor RPG:&lt;/p&gt;

&lt;p&gt;1)Dynamic Local Micro-Quests: Procedurally generated nature quests categorized by difficulty, duration, and sensory focus (e.g., “Find tree bark moss facing north”, “Photograph an urban pollinator at work”, “Identify canopy leaf venation”).&lt;/p&gt;

&lt;p&gt;2)Anti-Cheat AI Media Forensics (NeuralEye Engine): Anyone can download a photorealistic Midjourney, DALL-E, or Gemini image from their couch. NatureQuest uses an open-weight vision transformer ensemble to inspect submitted photos for real optical camera characteristics, rejecting synthetic AI diffusion, digital screen captures, and recycled images.&lt;/p&gt;

&lt;p&gt;3)Gamified Outdoor Habits: Earn XP, level up through outdoor ranks (from Seedling Scout to Canopy Guardian), build consecutive outdoor streaks, and unlock nature badges.&lt;/p&gt;

&lt;p&gt;4)AI Dynamic Quest Generation: Generates contextual outdoor exploration missions tailored to current weather, surroundings, and seasons using open-weight local LLMs.&lt;/p&gt;

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


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://hactoberfest-touch-grass.vercel.app/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;hactoberfest-touch-grass.vercel.app&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&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/Dhiraj201226" rel="noopener noreferrer"&gt;
        Dhiraj201226
      &lt;/a&gt; / &lt;a href="https://github.com/Dhiraj201226/hactoberfest-touch-grass" rel="noopener noreferrer"&gt;
        hactoberfest-touch-grass
      &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;NatureQuest AI — Explore More, Scroll Less&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A production-grade, gamified outdoor exploration platform that rewards users for spending time in nature and documenting authentic discoveries while combating screen addiction.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌟 Core Product Vision &amp;amp; Philosophy&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;In an era saturated with endless algorithmic feeds and generative AI deepfakes, &lt;strong&gt;NatureQuest AI&lt;/strong&gt; shifts focus from the virtual world to the living, physical world.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Golden Rule:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Inspect your mission, put your phone in your pocket, and explore the living outdoors.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Users select real-world quests, step outside, record authentic photographs of their discoveries, and submit them to &lt;strong&gt;NeuralEye™&lt;/strong&gt;—a multimodal media forensics pipeline that verifies camera sensor optical capture, detects diffusion artifacts, and enforces strict cryptographic duplicate protections.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🛠️ Tech Stack &amp;amp; Architecture&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Frontend&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework:&lt;/strong&gt; React 19 + TypeScript + Vite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Styling:&lt;/strong&gt; Tailwind CSS with custom editorial nature design tokens (&lt;code&gt;forest-800&lt;/code&gt;, &lt;code&gt;forest-900&lt;/code&gt;, &lt;code&gt;lime&lt;/code&gt;, &lt;code&gt;ivory&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Icons &amp;amp; Motion:&lt;/strong&gt; Lucide Icons…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Dhiraj201226/hactoberfest-touch-grass" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Open-Weight AI Architecture
NatureQuest is built entirely on open-source, open-weight AI rather than proprietary black-box APIs:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;NeuralEye Multi-Layer Forensics (haywoodsloan/ai-image-detector-deploy):&lt;/p&gt;

&lt;p&gt;Architecture: SwinV2 (Hierarchical Shifted-Window Vision Transformer) fine-tuned for high-accuracy discrimination between physical sensor photons and synthetic diffusion artifacts.&lt;br&gt;
Ensemble Defense:&lt;br&gt;
Layer 1 (Fast-Path Provenance): Inspects binary byte arrays for C2PA cryptographic manifests (Google Imagen, Adobe Firefly), imperceptible SynthID watermarks, and visible 4-point generative corner stars in under 5ms.&lt;br&gt;
Layer 2 (Vision Transformer): Evaluates frequency domain artifacts and lighting consistency using SwinV2 running on CPU inference.&lt;br&gt;
Anti-Duplicate Hashing: Uses perceptual difference hashing (dhash) and SHA-256 to prevent users from recycling previous quest photos.&lt;br&gt;
Procedural Quest Generation (Qwen/Qwen2.5-1.5B-Instruct via Ollama):&lt;/p&gt;

&lt;p&gt;An open-weight Apache 2.0 licensed SLM (Small Language Model) generates micro-quests with structured JSON outputs specifying title, category, sensory observation guidelines, difficulty, and XP rewards.&lt;br&gt;
Runs locally or on edge containers without per-token API costs or third-party data tracking.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;High-Performance Engineering Highlights
Client-Side Image Optimization: Smartphone cameras produce 10MB+ raw files. We built an in-browser canvas compressor that scales photos to 1600px and 82% JPEG quality before transmission. This dropped upload payload sizes by 95% (from 10MB down to ~300KB), reducing verification latency from 30s to under 1s.
Background Pipeline Pre-warming: The SwinV2 PyTorch weights are pre-warmed in a background thread on application boot so end-users never experience cold-start latency.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Open innovation is the backbone of NatureQuest AI for three critical reasons:&lt;br&gt;
1)Privacy for Physical Locations &amp;amp; Personal Captures: Asking users to upload personal outdoor photos to proprietary closed-source APIs means their real-world routines, geolocation EXIF data, and surroundings could be used to train closed models. Open-weight models deployed on self-hosted infrastructure guarantee user privacy.&lt;br&gt;
2)Deterministic, Inspectable Forensics: A verification system must be transparent. If an image is rejected, open-source weights and inspectable C2PA/SynthID heuristics allow us to explain why an image failed (e.g. generative artifacts vs. resolution issues), rather than hiding behind an opaque corporate score.&lt;br&gt;
3)Zero Paywalls &amp;amp; Accessibility: Health and outdoor wellness tools should not be tied to expensive API subscription tiers that shut down when pricing doubles. Open-weight models like Qwen 2.5 and open Hugging Face vision transformers ensure anyone can run and self-host NatureQuest anywhere.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Render — Best Use of Render**
&lt;/h3&gt;

&lt;p&gt;NeuralEye uses AI-powered image detection to distinguish AI-generated images from authentic photographs, supporting our nature-exploration platform. We plan to use Render to deploy and host the backend inference API, enabling reliable access to the AI detection model for image verification.&lt;/p&gt;

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