<?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: Satyam Kumar</title>
    <description>The latest articles on DEV Community by Satyam Kumar (@satyam_kumar_1229ce0b7f2c).</description>
    <link>https://dev.to/satyam_kumar_1229ce0b7f2c</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%2F4140818%2F5efedfb3-9a4f-4361-865c-0c10d88b30b3.png</url>
      <title>DEV Community: Satyam Kumar</title>
      <link>https://dev.to/satyam_kumar_1229ce0b7f2c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/satyam_kumar_1229ce0b7f2c"/>
    <language>en</language>
    <item>
      <title>InternShield — Think Before You Apply 🛡️</title>
      <dc:creator>Satyam Kumar</dc:creator>
      <pubDate>Mon, 05 Oct 2026 06:55:39 +0000</pubDate>
      <link>https://dev.to/satyam_kumar_1229ce0b7f2c/internshield-think-before-you-apply-3adl</link>
      <guid>https://dev.to/satyam_kumar_1229ce0b7f2c/internshield-think-before-you-apply-3adl</guid>
      <description>&lt;p&gt;``&lt;br&gt;
This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend&lt;/p&gt;

&lt;p&gt;What I Built&lt;br&gt;
Every semester, thousands of students receive internship offers that look legitimate — professional email, fancy job description, remote work — but turn out to be scams. My friend was nearly defrauded by a "startup" that asked for a ₹5,000 "equipment deposit" before the first day. That story stuck with me.&lt;/p&gt;

&lt;p&gt;InternShield is an open-source, AI-powered internship investigation assistant built specifically for students who encounter suspicious job or internship opportunities online.&lt;/p&gt;

&lt;p&gt;You paste in a job description or a URL, and InternShield runs a full safety investigation and produces an evidence-backed risk report — not a simple "FAKE" or "REAL" verdict, but a breakdown of every red flag, unverifiable claim, and positive signal it detected, so the student can make an informed decision.&lt;/p&gt;

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

&lt;p&gt;🔍 Dual-path analysis — a deterministic rule engine + a local open-weight LLM (Ollama) cross-check each other&lt;br&gt;
🎯 Risk Score Gauge — color-coded 0–100 score with a verdict: Safe / Needs Verification / High Risk&lt;br&gt;
🚩 Explainable Evidence Cards — every flag has a plain-English reason, not just a label&lt;br&gt;
🔗 URL investigation — fetches and parses job listing pages with SSRF protection&lt;br&gt;
🤖 Runs 100% locally — no data sent to closed APIs, no cost, no privacy risk&lt;br&gt;
Demo&lt;br&gt;
🔗 GitHub Repo: &lt;a href="https://github.com/satyam-257/Internshield" rel="noopener noreferrer"&gt;https://github.com/satyam-257/Internshield&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run it locally in 3 steps:&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;
&lt;h1&gt;
  
  
  1. Start the backend
&lt;/h1&gt;

&lt;p&gt;cd backend &amp;amp;&amp;amp; pip install -r requirements.txt&lt;br&gt;
uvicorn app.main:app --host 127.0.0.1 --port 8000&lt;/p&gt;
&lt;h1&gt;
  
  
  2. Start the frontend
&lt;/h1&gt;

&lt;p&gt;cd frontend &amp;amp;&amp;amp; npm install &amp;amp;&amp;amp; npm run dev&lt;/p&gt;
&lt;h1&gt;
  
  
  3. Open &lt;a href="http://localhost:5173" rel="noopener noreferrer"&gt;http://localhost:5173&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;The app ships with 3 pre-built demo scenarios you can trigger instantly:&lt;/p&gt;

&lt;p&gt;✅ Verified legitimate internship (Google SWE)&lt;br&gt;
⚠️ Suspicious listing (vague role, upfront fees, WhatsApp-only contact)&lt;br&gt;
🚩 High-risk scam (deposit required, no company info, salary too good to be true)&lt;br&gt;
Code&lt;br&gt;
&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/satyam-257" rel="noopener noreferrer"&gt;
        satyam-257
      &lt;/a&gt; / &lt;a href="https://github.com/satyam-257/Internshield" rel="noopener noreferrer"&gt;
        Internshield
      &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;InternShield 🛡️&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Think before you apply."&lt;/strong&gt;&lt;br&gt;
An open-source AI-powered internship investigation assistant for students who encounter suspicious job opportunities, recruiters, and training offers online.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://hacktoberfest.com/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6d291969472210478042be1c6f2574f1ae07b5cb367c5659975cd7c4fb95223f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4861636b746f626572666573742d323032362532305765656b656e642532304368616c6c656e67652d626c75652e737667" alt="Hacktoberfest 2026"&gt;&lt;/a&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://fastapi.tiangolo.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/cca0fb4154fd2516a64f44733eca7ccdcb51f740bef9ebda67862b8cf05d5a03/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4261636b656e642d466173744150492d3030393638382e7376673f6c6f676f3d66617374617069266c6f676f436f6c6f723d7768697465" alt="FastAPI"&gt;&lt;/a&gt;
&lt;a href="https://react.dev/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/b32562e822018fe0388ed67fc72ec8cecc1f4a0184246e5db9cfe8239041fcaf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46726f6e74656e642d5265616374253230253242253230566974652532302532422532305461696c77696e642d3631444146422e7376673f6c6f676f3d7265616374266c6f676f436f6c6f723d626c61636b" alt="React"&gt;&lt;/a&gt;
&lt;a href="https://ollama.com/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/ce47c12dde2e5f5ca2fc1ac5a7b822806402684a13bab2e5d87b3d204a00e011/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4149253230436f72652d4f70656e2d2d5765696768742532307669612532304f6c6c616d612d626c61636b2e7376673f6c6f676f3d6f6c6c616d61266c6f676f436f6c6f723d7768697465" alt="Ollama"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📌 Problem&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;College students searching for internships online frequently encounter questionable job listings, unsolicited WhatsApp offers, suspicious recruiter emails, and third-party application forms.&lt;/p&gt;
&lt;p&gt;Students commonly face:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Upfront registration or training fees&lt;/strong&gt; masked as "refundable security deposits"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free public email accounts&lt;/strong&gt; (e.g. &lt;code&gt;@gmail.com&lt;/code&gt;) claiming to represent major corporations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Direct selection guarantees&lt;/strong&gt; with "NO INTERVIEW REQUIRED"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Urgency tactics&lt;/strong&gt; ("today only", "only 10 seats remaining") intended to force hasty payments&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Requests for sensitive personal or financial credentials&lt;/strong&gt; (OTPs, bank account logins, UPI PINs)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unrealistic compensation promises&lt;/strong&gt; for trivial daily hours&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Students often lack an accessible, objective tool to evaluate whether an opportunity deserves their trust before they share personal information or hand over money.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🤝 Built-For-A-Friend Story&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;InternShield was created for a college student and close friend navigating…&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/satyam-257/Internshield" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Architecture at a glance:&lt;/p&gt;

&lt;p&gt;User Input (text or URL)&lt;br&gt;
        │&lt;br&gt;
        ▼&lt;br&gt;
  url_fetcher.py     ← SSRF-protected page scraper&lt;br&gt;
        │&lt;br&gt;
        ▼&lt;br&gt;
  extractor.py       ← Pulls company name, role, salary, contact, etc.&lt;br&gt;
        │&lt;br&gt;
      ┌─┴──────────────────────┐&lt;br&gt;
      ▼                        ▼&lt;br&gt;
rule_engine.py           llm_client.py&lt;br&gt;
(deterministic flags)    (Ollama local LLM)&lt;br&gt;
      └─────────┬──────────────┘&lt;br&gt;
                ▼&lt;br&gt;
          aggregator.py   ← Merges scores + evidence&lt;br&gt;
                │&lt;br&gt;
                ▼&lt;br&gt;
         JSON Risk Report&lt;br&gt;
                │&lt;br&gt;
                ▼&lt;br&gt;
       React Frontend UI&lt;br&gt;
Tech Stack:&lt;/p&gt;

&lt;p&gt;Backend: Python · FastAPI · httpx · BeautifulSoup4&lt;br&gt;
AI Inference: Ollama (qwen2.5:0.5b — runs on any laptop)&lt;br&gt;
Frontend: React · Vite · Tailwind CSS v4&lt;br&gt;
No database. No auth. No cloud dependencies.&lt;br&gt;
How I Built It&lt;br&gt;
The core insight was that a hybrid approach beats a pure LLM approach for safety-critical tools.&lt;/p&gt;

&lt;p&gt;The Rule Engine (Deterministic)&lt;br&gt;
risk_engine.py checks for well-known scam patterns:&lt;/p&gt;

&lt;p&gt;Upfront payment requests (deposits, training fees)&lt;br&gt;
Vague or missing company identity&lt;br&gt;
Salary figures that are statistically impossible for the role/location&lt;br&gt;
WhatsApp/personal email as the only contact method&lt;br&gt;
Missing HTTPS on company website&lt;br&gt;
Mismatched domain-to-company-name signals&lt;br&gt;
Each rule contributes a weighted score and produces a human-readable evidence string.&lt;/p&gt;

&lt;p&gt;The Local LLM (Open-Weight)&lt;br&gt;
llm_client.py sends the extracted job details to Ollama running qwen2.5:0.5b (a 500M parameter open-weight model that runs on CPU in under 2 seconds). It's prompted to return structured JSON:&lt;/p&gt;

&lt;p&gt;json&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "risk_score": 72,&lt;br&gt;
  "summary": "...",&lt;br&gt;
  "red_flags": [...],&lt;br&gt;
  "positive_signals": [...]&lt;br&gt;
}&lt;br&gt;
A short 4-second timeout + safe JSON parsing ensures the UI never hangs if Ollama is unavailable — it gracefully falls back to the rule engine alone.&lt;/p&gt;

&lt;p&gt;Why not GPT-4 / Claude?&lt;br&gt;
Because students shouldn't have to pay per query, share sensitive job listings with third-party APIs, or rely on rate-limited cloud services. The open-weight model runs on a 5-year-old laptop with 8GB RAM. That matters for the people this tool is built for.&lt;/p&gt;

&lt;p&gt;Why Does Open Innovation Matter?&lt;br&gt;
InternShield wouldn't exist in its current form with a closed API stack.&lt;/p&gt;

&lt;p&gt;Privacy: Students paste internship descriptions that may contain personal context — their name, college, city. With a local LLM, none of that ever leaves the machine.&lt;/p&gt;

&lt;p&gt;Cost: The target users are students — many can't afford $20/month API subscriptions. Ollama + qwen2.5:0.5b is free, forever.&lt;/p&gt;

&lt;p&gt;Trust: A safety tool that sends your data to a black-box API to decide if something is "safe" is deeply ironic. Open-weight models let anyone audit what's being run.&lt;/p&gt;

&lt;p&gt;Customization: The rule engine and LLM prompt are fully open. A college student council could fork this, add their region's known scam patterns, and deploy it for their campus — no vendor lock-in, no permission required.&lt;/p&gt;

&lt;p&gt;Open innovation turned a weekend project into something genuinely deployable and trustworthy for the people who need it most.&lt;/p&gt;

&lt;p&gt;My Agent Session&lt;br&gt;
Built with the help of an AI coding agent that:&lt;/p&gt;

&lt;p&gt;Scaffolded the full FastAPI + React project structure&lt;br&gt;
Wrote and debugged the SSRF-protected URL fetcher&lt;br&gt;
Designed the dual-path analysis pipeline&lt;br&gt;
Iterated on the risk scoring weights against real scam patterns&lt;br&gt;
Debugged UTF-8 encoding issues on Windows for ₹ symbol rendering&lt;br&gt;
Set up the git repository and pushed the final code&lt;br&gt;
Prize Categories&lt;br&gt;
Ollama — built entirely on local open-weight inference via Ollama&lt;br&gt;
General Open-Source AI — uses open-weight models, open-source frameworks throughout&lt;br&gt;
Built with ❤️ for every student who almost clicked "Apply" on something that didn't feel right.&lt;/p&gt;

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