<?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: Aadarsh Praveen</title>
    <description>The latest articles on DEV Community by Aadarsh Praveen (@aadarsh_praveen).</description>
    <link>https://dev.to/aadarsh_praveen</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3914652%2F1897c7dd-66d0-4544-9149-895b5c6b927b.png</url>
      <title>DEV Community: Aadarsh Praveen</title>
      <link>https://dev.to/aadarsh_praveen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aadarsh_praveen"/>
    <language>en</language>
    <item>
      <title>PaySnap - AI Powered Wage Theft Detector</title>
      <dc:creator>Aadarsh Praveen</dc:creator>
      <pubDate>Wed, 20 May 2026 23:54:33 +0000</pubDate>
      <link>https://dev.to/aadarsh_praveen/paysnap-ai-powered-wage-theft-detector-e0o</link>
      <guid>https://dev.to/aadarsh_praveen/paysnap-ai-powered-wage-theft-detector-e0o</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-gemma-2026-05-06"&gt;Gemma 4 Challenge: Build with Gemma 4&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;PaySnap is an AI-powered wage theft detector that helps workers &lt;br&gt;
understand their paystubs and recover stolen wages in their language.&lt;/p&gt;

&lt;p&gt;Every year, $50 billion is stolen from American workers through wage &lt;br&gt;
theft. Construction workers, restaurant staff, and farmworkers are hit hardest. They don't know their rights. They can't read their paystub. Many are afraid to report.&lt;/p&gt;

&lt;p&gt;PaySnap changes that. A worker uploads a paystub photo — or describes &lt;br&gt;
their situation in Hindi, Spanish or Chinese and PaySnap tells them &lt;br&gt;
exactly what they're owed, which law was broken, and how to report it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it live:&lt;/strong&gt; paysnap.vercel.app&lt;/p&gt;

&lt;p&gt;Key features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gemma 4 E2B fine-tuned on 365,393 real DOL enforcement cases&lt;/li&gt;
&lt;li&gt;Native Gemma 4 function calling — truly agentic AI&lt;/li&gt;
&lt;li&gt;Reads paystub photos via Gemma 4 vision (llama.cpp)&lt;/li&gt;
&lt;li&gt;Explains violations in 11 languages&lt;/li&gt;
&lt;li&gt;Detects overtime, illegal deductions, minimum wage violations&lt;/li&gt;
&lt;li&gt;Always provides DOL hotline: 1-866-487-9243 (free, confidential)&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;🎥 &lt;a href="https://youtu.be/3x7loeEy6-M?si=gEObY1IIiuel82la" rel="noopener noreferrer"&gt;Watch 3-minute demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live app:&lt;/strong&gt; &lt;a href="https://paysnap.vercel.app/" rel="noopener noreferrer"&gt;https://paysnap.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scenario 1 — Texas construction worker:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Input: 52 hours, $15/hour, Texas, no overtime shown&lt;/li&gt;
&lt;li&gt;PaySnap detects: 12 unpaid overtime hours&lt;/li&gt;
&lt;li&gt;Result: $90 owed under FLSA 29 USC 207(a)(1)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scenario 2 — New York restaurant worker (Hindi):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Input: 48 hours, $16/hour, NY, UNIFORM $35 + BREAKAGE $50 deductions&lt;/li&gt;
&lt;li&gt;PaySnap detects: overtime violation + 2 illegal deductions&lt;/li&gt;
&lt;li&gt;Result: $149 owed — full explanation in Hindi&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Aadarsh-Praveen/Paysnap" rel="noopener noreferrer"&gt;https://github.com/Aadarsh-Praveen/Paysnap&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fine-tuned model (GGUF):&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://huggingface.co/Aadarsh-Praveen/paysnap-gemma4-gguf" rel="noopener noreferrer"&gt;https://huggingface.co/Aadarsh-Praveen/paysnap-gemma4-gguf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LoRA weights:&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://huggingface.co/Aadarsh-Praveen/paysnap-gemma4-lora" rel="noopener noreferrer"&gt;https://huggingface.co/Aadarsh-Praveen/paysnap-gemma4-lora&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Training notebook:&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://kaggle.com/code/aadarshpraveen/paysnap-gemma4-finetuning" rel="noopener noreferrer"&gt;https://kaggle.com/code/aadarshpraveen/paysnap-gemma4-finetuning&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset (365,393 DOL cases):&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://kaggle.com/datasets/aadarshpraveen/paysnap-labor-law-dataset" rel="noopener noreferrer"&gt;https://kaggle.com/datasets/aadarshpraveen/paysnap-labor-law-dataset&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Used Gemma 4
&lt;/h2&gt;

&lt;p&gt;I chose Gemma 4 E2B for three specific reasons:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Edge deployment&lt;/strong&gt; — Workers PaySnap serves often use older &lt;br&gt;
devices. E2B runs at 63 tokens/second on Apple M3 Pro and fits &lt;br&gt;
in 3.4GB as a Q4_K_M GGUF. A larger model would not run locally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Fine-tuning efficiency&lt;/strong&gt; — I fine-tuned E2B on 365,393 real &lt;br&gt;
DOL enforcement cases using Unsloth LoRA on a Kaggle T4 GPU. &lt;br&gt;
Training loss reached 0.009. A 31B model would have been &lt;br&gt;
impossible on free compute.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Multilingual capability&lt;/strong&gt; — Despite its small size, E2B &lt;br&gt;
generates coherent responses in Hindi, Spanish, Chinese, and 8 &lt;br&gt;
other languages — critical for reaching vulnerable workers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Four ways Gemma 4 powers PaySnap:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vision — reads paystub photos via llama.cpp multimodal API&lt;/li&gt;
&lt;li&gt;Native function calling — Gemma 4 autonomously decides which 
tools to call (calculate_overtime, check_deductions, 
get_applicable_statutes, get_dol_contact)&lt;/li&gt;
&lt;li&gt;Fine-tuned knowledge — learned real DOL enforcement patterns 
from 365,393 cases, +11.7% improvement on LLM-as-Judge eval&lt;/li&gt;
&lt;li&gt;Multilingual explanation — explains violations in worker's 
language with exact statute citations&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Evaluation (LLM-as-Judge, base Gemma 4 E2B as judge):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Base Gemma 4 E2B:  8.12/10&lt;br&gt;
PaySnap fine-tuned: 9.07/10&lt;br&gt;
Improvement:        +11.7%&lt;/p&gt;

&lt;p&gt;All 5 dimensions improved: Legal Accuracy +1.73, Statute Quality &lt;br&gt;
+1.33, Actionability +0.73, Dollar Accuracy +0.67, Worker Clarity +0.27&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Team&lt;/strong&gt;&lt;br&gt;
This project was built by:&lt;/p&gt;

&lt;p&gt;Aadarsh Praveen Selvaraj Ajithakumari — &lt;a class="mentioned-user" href="https://dev.to/aadarsh_praveen"&gt;@aadarsh_praveen&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Suriya Kasiyalan Siva — &lt;a class="mentioned-user" href="https://dev.to/suriya_ks_0902"&gt;@suriya_ks_0902&lt;/a&gt; &lt;/p&gt;




</description>
      <category>devchallenge</category>
      <category>gemmachallenge</category>
      <category>gemma</category>
      <category>gemma4e2b</category>
    </item>
  </channel>
</rss>
