<?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: ryxonix</title>
    <description>The latest articles on DEV Community by ryxonix (@ryxonix).</description>
    <link>https://dev.to/ryxonix</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%2F3946529%2F2138df73-be42-4652-864c-65d025f798ca.jpeg</url>
      <title>DEV Community: ryxonix</title>
      <link>https://dev.to/ryxonix</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ryxonix"/>
    <language>en</language>
    <item>
      <title>We Built an Agent That Flags Fake Internships #kryx</title>
      <dc:creator>ryxonix</dc:creator>
      <pubDate>Fri, 22 May 2026 17:24:04 +0000</pubDate>
      <link>https://dev.to/ryxonix/we-built-an-agent-that-flags-fake-internships-kryx-cm</link>
      <guid>https://dev.to/ryxonix/we-built-an-agent-that-flags-fake-internships-kryx-cm</guid>
      <description>&lt;p&gt;Every placement season, students receive internship offers that look legitimate on the surface but fall apart the moment you inspect them closely.&lt;/p&gt;

&lt;p&gt;Some ask for “training fees.”&lt;br&gt;
Some guarantee placements before interviews even happen.&lt;br&gt;
Some companies barely exist online.&lt;br&gt;
Others hide behind generic Gmail accounts and flashy marketing.&lt;/p&gt;

&lt;p&gt;The worst part is that many students can’t easily distinguish between a real opportunity and a well-designed scam.&lt;/p&gt;

&lt;p&gt;So my teammates and I built a system that tries to score internship legitimacy before students commit time or money.&lt;/p&gt;

&lt;p&gt;We call it ShieldIntern.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Core Idea
&lt;/h2&gt;

&lt;p&gt;We wanted a system that behaves less like a chatbot and more like an auditor.&lt;/p&gt;

&lt;p&gt;Instead of simply asking an LLM whether an internship is “fake,” we structured the analysis around four specific evaluation pillars:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Financial transparency&lt;/li&gt;
&lt;li&gt;Digital footprint&lt;/li&gt;
&lt;li&gt;Recruitment authenticity&lt;/li&gt;
&lt;li&gt;Marketing credibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system takes internship ads, screenshots, emails, company descriptions, and URLs as input. It then analyzes the content and generates a legitimacy score between 0 and 100.&lt;/p&gt;

&lt;p&gt;But the important part wasn’t generating a score.&lt;/p&gt;

&lt;p&gt;The difficult part was making the scoring explainable.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Rule That Changed Everything
&lt;/h2&gt;

&lt;p&gt;One design decision became the foundation of the entire system:&lt;/p&gt;

&lt;p&gt;If a company asks students to pay upfront fees, the legitimacy score is automatically capped below 30.&lt;/p&gt;

&lt;p&gt;That single rule solved multiple problems at once.&lt;/p&gt;

&lt;p&gt;Without it, the LLM occasionally produced high scores for suspicious internships simply because the company had a polished website or strong marketing language.&lt;/p&gt;

&lt;p&gt;In reality, legitimate internships rarely require students to pay to work.&lt;/p&gt;

&lt;p&gt;So instead of relying purely on probabilistic reasoning, we introduced deterministic penalties for critical red flags.&lt;/p&gt;

&lt;p&gt;That hybrid approach produced much more reliable outputs.&lt;/p&gt;

&lt;h2&gt;
  
  
  How The System Works
&lt;/h2&gt;

&lt;p&gt;The frontend was built using React, Vite, and Tailwind CSS.&lt;/p&gt;

&lt;p&gt;Students can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload screenshots&lt;/li&gt;
&lt;li&gt;Paste internship descriptions&lt;/li&gt;
&lt;li&gt;Add company details&lt;/li&gt;
&lt;li&gt;Submit emails or URLs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The backend uses Express.js and Multer for request handling and file uploads.&lt;/p&gt;

&lt;p&gt;The analysis pipeline sends structured prompts to Groq running LLaMA 3 70B.&lt;/p&gt;

&lt;p&gt;Instead of asking broad questions, the prompt forces the model to evaluate internships through individual categories.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the company use a corporate domain?&lt;/li&gt;
&lt;li&gt;Is the recruitment process realistic?&lt;/li&gt;
&lt;li&gt;Does the offer use urgency tactics?&lt;/li&gt;
&lt;li&gt;Are responsibilities clearly defined?&lt;/li&gt;
&lt;li&gt;Is there evidence of a real digital footprint?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each category contributes to the final score independently.&lt;/p&gt;

&lt;p&gt;That structure made the outputs significantly more consistent.&lt;/p&gt;

&lt;h2&gt;
  
  
  One Unexpected Problem
&lt;/h2&gt;

&lt;p&gt;The first versions of the system were too optimistic.&lt;/p&gt;

&lt;p&gt;The model often interpreted professional-looking language as credibility.&lt;/p&gt;

&lt;p&gt;That became a serious issue because scam internships are usually designed to appear highly professional.&lt;/p&gt;

&lt;p&gt;We had to redesign the scoring logic so that suspicious financial behavior outweighed surface-level presentation quality.&lt;/p&gt;

&lt;p&gt;This became one of the biggest lessons we learned while building the project:&lt;/p&gt;

&lt;p&gt;LLMs are good at pattern recognition, but trust systems still need hard constraints.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Explainability Matters
&lt;/h2&gt;

&lt;p&gt;One thing we intentionally avoided was producing only a final verdict.&lt;/p&gt;

&lt;p&gt;A simple “fake” or “real” label isn’t very useful to students.&lt;/p&gt;

&lt;p&gt;Instead, the system returns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;positive indicators&lt;/li&gt;
&lt;li&gt;red flags&lt;/li&gt;
&lt;li&gt;category breakdowns&lt;/li&gt;
&lt;li&gt;actionable recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That way, students understand &lt;em&gt;why&lt;/em&gt; an internship appears suspicious.&lt;/p&gt;

&lt;p&gt;In practice, explainability matters more than raw scoring accuracy because users need confidence in the reasoning process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the Frontend
&lt;/h2&gt;

&lt;p&gt;We wanted the interface to feel less like an academic tool and more like a modern product.&lt;/p&gt;

&lt;p&gt;So we added:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;drag-and-drop uploads&lt;/li&gt;
&lt;li&gt;animated score gauges&lt;/li&gt;
&lt;li&gt;color-coded verdicts&lt;/li&gt;
&lt;li&gt;responsive layouts&lt;/li&gt;
&lt;li&gt;dark mode support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to make the analysis feel immediate and intuitive.&lt;/p&gt;

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

&lt;p&gt;Frontend:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React 18&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;Axios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Backend:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;Express.js&lt;/li&gt;
&lt;li&gt;Multer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI Layer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Groq API&lt;/li&gt;
&lt;li&gt;LLaMA 3 70B&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What We Learned
&lt;/h2&gt;

&lt;p&gt;Building this project changed the way we think about AI-assisted trust systems.&lt;/p&gt;

&lt;p&gt;A few lessons stood out:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Pure LLM reasoning is not enough for fraud detection.&lt;br&gt;
Critical rules still need deterministic enforcement.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explainability matters more than confidence scores.&lt;br&gt;
Users trust systems that show reasoning transparently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scam detection is largely behavioral analysis.&lt;br&gt;
Many fake internships reveal themselves through recruitment patterns rather than obvious technical signals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Small prompt structure changes drastically affect consistency.&lt;br&gt;
Breaking scoring into categories improved output quality significantly.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Internship scams are becoming increasingly sophisticated, especially in online hiring spaces.&lt;/p&gt;

&lt;p&gt;We don’t think AI alone can solve that problem.&lt;/p&gt;

&lt;p&gt;But we do think systems that combine structured rules with language models can help students make safer decisions faster.&lt;/p&gt;

&lt;p&gt;That was the goal behind ShieldIntern.&lt;/p&gt;

&lt;p&gt;GitHub Repository:&lt;br&gt;
&lt;a href="https://github.com/ryxonix/HackWithBangalore" rel="noopener noreferrer"&gt;https://github.com/ryxonix/HackWithBangalore&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>career</category>
      <category>security</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
