<?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: Dhruv Jani</title>
    <description>The latest articles on DEV Community by Dhruv Jani (@dj29).</description>
    <link>https://dev.to/dj29</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%2F3743406%2F227d53d3-1443-4ceb-9fb8-98c02ff9e60f.jpg</url>
      <title>DEV Community: Dhruv Jani</title>
      <link>https://dev.to/dj29</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dj29"/>
    <language>en</language>
    <item>
      <title>FinePrint — An AI Pocket Lawyer That Decodes Predatory Contracts Using Gemma 4</title>
      <dc:creator>Dhruv Jani</dc:creator>
      <pubDate>Sun, 24 May 2026 17:40:40 +0000</pubDate>
      <link>https://dev.to/dj29/fineprint-an-ai-pocket-lawyer-that-decodes-predatory-contracts-using-gemma-4-9n6</link>
      <guid>https://dev.to/dj29/fineprint-an-ai-pocket-lawyer-that-decodes-predatory-contracts-using-gemma-4-9n6</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;p&gt;&lt;strong&gt;## What We Built&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Last placement season, a friend came to me with a job offer letter. He was excited — first real offer. I read clause 3. It said if he quit before 3 years, he owed the company ₹2,00,000. He had no idea it was there. He nearly signed it. He would have been locked in for 3 years with no way out. He's a developer. That's his entire early career.&lt;/p&gt;

&lt;p&gt;He's not alone. Every year, thousands of students sign employment bonds, internship agreements, and rental leases without understanding what they're agreeing to. The language is deliberately dense. The penalties are buried in clause 4, clause 7, clause 11. And most people — especially fresh graduates — don't have a lawyer to call.&lt;/p&gt;

&lt;p&gt;That's why we built FinePrint.&lt;/p&gt;

&lt;p&gt;FinePrint is an open-source AI contract protection tool powered by Gemma 4. Upload a photo, PDF, or paste any contract text. FinePrint reads it, finds every trap, and tells you exactly what's dangerous, what to negotiate, and what to never sign.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you get:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔴 &lt;strong&gt;Risk Score (0–100)&lt;/strong&gt; — objective danger level of the contract&lt;/li&gt;
&lt;li&gt;🟡 &lt;strong&gt;Compatibility Score&lt;/strong&gt; — how well the contract matches your personal goals&lt;/li&gt;
&lt;li&gt;⚖️ &lt;strong&gt;Final Verdict&lt;/strong&gt; — ACCEPT / NEGOTIATE / REJECT with direct reasoning&lt;/li&gt;
&lt;li&gt;Plain English explanation of every red flag&lt;/li&gt;
&lt;li&gt;A safer suggested rewrite for every dangerous clause&lt;/li&gt;
&lt;li&gt;Actionable negotiation tips per clause&lt;/li&gt;
&lt;li&gt;A ready-to-send personalized negotiation email&lt;/li&gt;
&lt;li&gt;Shareable report link + downloadable PDF&lt;/li&gt;
&lt;li&gt;Contract comparison — upload v1 and v2, see what changed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't a document reader. It's a contract protection engine. Reading a document tells you what it says. FinePrint tells you what it means for your specific situation, what the company is trying to take from you, and exactly what to say back.&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.amazonaws.com%2Fuploads%2Farticles%2Fphcb4u11iu8diank9tpe.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2Fphcb4u11iu8diank9tpe.jpeg" alt="The FinePrint homepage — upload a contract or try a built-in example" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## Demo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🔗 Live: &lt;a href="https://tarkashlabs-fineprint.vercel.app" rel="noopener noreferrer"&gt;https://tarkashlabs-fineprint.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Want to try it yourself? Go to the live app and click "Campus Bond" under Try an example. Fill in your requirements and hit Analyze.&lt;/p&gt;

&lt;p&gt;Here's what FinePrint returned on a real predatory internship contract:&lt;br&gt;
🔴 Risk Score:        98 / 100  — Dangerous&lt;br&gt;
🔴 Compatibility:     20 / 100  — Low Match&lt;br&gt;&lt;br&gt;
❌ Verdict:           REJECT&lt;/p&gt;

&lt;p&gt;"The contract violates every user requirement — unpaid position, &lt;br&gt;
IP ownership of personal projects, ₹1,00,00,000 bond penalty, &lt;br&gt;
mandatory overtime, and an 18-month non-compete."&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.amazonaws.com%2Fuploads%2Farticles%2Fdntjayp99qmhw7o20edw.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2Fdntjayp99qmhw7o20edw.jpeg" alt="The FinePrint homepage — upload a contract or try a built-in example" width="800" height="450"&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.amazonaws.com%2Fuploads%2Farticles%2Fcforgwcxag9tckr5c5at.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2Fcforgwcxag9tckr5c5at.jpeg" alt="Every red flag comes with a plain English explanation, negotiation tip, and a safer clause rewrite with space for asking a follow-up question" width="800" height="450"&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.amazonaws.com%2Fuploads%2Farticles%2Fngdewubiq1czp8tfyxqg.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2Fngdewubiq1czp8tfyxqg.jpeg" alt="Gemma 4 Dense 31B drafts a personalized negotiation email — ready to send to HR" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;FinePrint also has a &lt;strong&gt;Compare Mode&lt;/strong&gt; — upload the original and revised contract, and Gemma 4 tells you exactly what improved, what's still dangerous, and what's new.&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.amazonaws.com%2Fuploads%2Farticles%2F7bjqkc41xu42rxaeiay2.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2F7bjqkc41xu42rxaeiay2.jpeg" alt="FinePrint Compare Mode — upload two versions of a contract and see exactly what changed, what was resolved, and what red flags remain" width="800" height="450"&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.amazonaws.com%2Fuploads%2Farticles%2Flkcqqsod208v229wmkvv.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2Flkcqqsod208v229wmkvv.jpeg" alt="FinePrint Compare Mode — Expanded clause comparison analysis" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## Code&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;🐙 GitHub: &lt;a href="https://github.com/Tarkash-Labs/FinePrint" rel="noopener noreferrer"&gt;https://github.com/Tarkash-Labs/FinePrint&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend:  React + Vite + Tailwind CSS
Backend:   Python + FastAPI + async SSE streaming  
AI:        Gemma 4 via Google AI Studio
Deploy:    Vercel + Render
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The backend is ~650 lines of async Python. Results stream clause by clause as Gemma 4 processes them — red flags appear in real time, not after a long wait. All report state is preserved in a stateless shareable URL using gzip compression — no database, no server-side storage.&lt;br&gt;
Here's the core of what makes FinePrint work — the prompt that sends both the contract AND the user's personal goals to Gemma 4 simultaneously:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;_build_analysis_prompt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;contract_label&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;focus_areas&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;requirements&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="n"&gt;requirements_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requirements&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;None provided.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
You are a ruthless, detail-oriented legal expert specializing in &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;contract_label&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; contracts. Your job is to protect the user.
Analyze this contract and return a JSON with exactly these fields:
{{
  &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;risk_score&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &amp;lt;integer 0-100&amp;gt;,
  &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;compatibility_score&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &amp;lt;integer 0-100&amp;gt;,
  &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;verdict&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ACCEPT&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; | &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;NEGOTIATE&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; | &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;REJECT&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;,
  &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;verdict_reason&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;1-2 sentence explanation referencing requirements and clauses&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;,
  &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;requirement_breakdown&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: [
    {{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;requirement&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;specific user requirement&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;met&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: true/false, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;explanation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;why it was or wasn&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;t met&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;}}
  ],
  &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;red_flags&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: [
    {{
      &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;clause_title&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, 
      &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;clause_text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;EXACT text from the contract&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, 
      &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;plain_english_explanation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;Briefly state the risk&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, 
      &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;negotiation_tip&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;Actionable advice on what the user should ask to change&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;,
      &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;suggested_rewrite&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;Provide a safer, alternative 1-2 sentence rewrite for this clause that the user can propose&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;,
      &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;severity&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;high|medium|low&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;
    }}
  ],
  &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;safe_clauses&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: [{{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;clause_title&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;plain_english_explanation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;}}]
}}

CRITICAL RULES:
1. Return ONLY valid JSON. No preamble. No markdown blocks.
2. DETECT ALL RED FLAGS. Do not summarize them into one. If there are 5 bad clauses, list 5 red flags.
3. You MUST extract the exact original text for &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;clause_text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;. 
4. The &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;risk_score&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; is objective based on standard legal risks. Focus heavily on: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;focus_areas&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;.
5. The &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;compatibility_score&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; MUST directly reflect the User Requirements below. If a requirement is completely violated, score drops.

User Requirements to evaluate against:
&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;requirements_text&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;

Verdict guidance:
- ACCEPT when risk &amp;lt;= 30 and compatibility &amp;gt;= 70.
- REJECT when risk &amp;gt;= 61 or compatibility &amp;lt;= 30.
- Otherwise NEGOTIATE.
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This single prompt is why FinePrint's output is personalized and not generic. Gemma 4 reads the contract and the user's life goals at the same time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## How We Used Gemma 4&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The model routing was a deliberate decision made after real testing — not a default choice.&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.amazonaws.com%2Fuploads%2Farticles%2Fxkwuzh3p3pqufeg1tmbu.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.amazonaws.com%2Fuploads%2Farticles%2Fxkwuzh3p3pqufeg1tmbu.png" alt="The Architecture" width="781" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 — Gemma 4 MoE → Multimodal OCR&lt;/strong&gt;&lt;br&gt;
When a user uploads a photo or PDF, the MoE model reads the document image directly and extracts the raw text. A user can photograph a physical contract — an actual printed piece of paper — with their phone and upload it. Gemma 4's native multimodal vision handles the rest. No manual copy-paste. No fragile third-party OCR library.&lt;/p&gt;

&lt;p&gt;This step doesn't need legal reasoning. It needs fast, accurate image reading. The MoE architecture is the right fit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 — Gemma 4 Dense 31B → Everything that requires thinking&lt;/strong&gt;&lt;br&gt;
All legal reasoning runs on the Dense 31B — clause classification, risk scoring, compatibility analysis, plain English explanations, suggested rewrites, negotiation tips, and the personalized negotiation email.&lt;/p&gt;

&lt;p&gt;We explicitly tested the MoE for legal analysis. On a contract with 5 critical violations, it returned 1 generic red flag. The Dense 31B returned all 5 — with exact clause text, severity ratings, negotiation tips, and suggested rewrites.&lt;/p&gt;

&lt;p&gt;Legal reasoning needs the most capable model. We use it where it matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The compatibility score — what makes FinePrint different from every other document AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before analyzing, FinePrint asks for the user's personal requirements — how long they plan to stay, whether they need side projects, minimum compensation, relocation preferences. This goes into the Dense 31B prompt alongside the contract text.&lt;/p&gt;

&lt;p&gt;The model reads both simultaneously and judges alignment. The same IP assignment clause scores very differently for someone planning to leave in 6 months versus someone planning a 5-year career. A rule-based system can't do this. Gemma 4 can.&lt;/p&gt;

&lt;p&gt;The output isn't "this clause is risky." It's "this clause is risky &lt;strong&gt;for you specifically.&lt;/strong&gt;"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The problem FinePrint is actually solving&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The legal literacy gap is structural. People with money have lawyers. Everyone else signs whatever they're handed.&lt;/p&gt;

&lt;p&gt;Harvey AI proved that LLMs can transform legal analysis — they're valued at $715M serving elite law firms. FinePrint takes that same capability and makes it free for the people those firms will never serve.&lt;/p&gt;

&lt;p&gt;Campus placement bonds in India affect hundreds of thousands of students every year. Most of them have never read a legal document before. Many sign bonds they legally cannot afford to break — and only find out years later when they try to leave a job they hate.&lt;/p&gt;

&lt;p&gt;FinePrint is the first line of defense for people who don't have a lawyer on speed dial. It doesn't replace legal advice — there's a disclaimer at the bottom of every analysis for that reason — but it gives people the awareness they need to ask the right questions before they sign anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Next&lt;/strong&gt;&lt;br&gt;
FinePrint today protects students and junior developers from predatory contracts. The same Gemma 4 architecture scales to rental leases, freelance NDAs, and VC term sheets — we already support all seven contract types. Long term: a browser extension that flags red flags on any document you open, and an API that other apps can integrate. The legal literacy gap is massive. We're just getting started.&lt;/p&gt;

&lt;p&gt;Built by Tarkash Labs&lt;br&gt;
&lt;a class="mentioned-user" href="https://dev.to/dj29"&gt;@dj29&lt;/a&gt; &amp;amp; &lt;a class="mentioned-user" href="https://dev.to/yug_vasava"&gt;@yug_vasava&lt;/a&gt; &lt;/p&gt;

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