About and methodology

How TrustIntern scores an offer

For students in India checking an internship offer. Placement-season messages, UPI fees, WhatsApp recruiters, and Aadhaar or OTP requests come first. Job offers can be checked with the same rules.

Heuristic indicator score, not a probability of fraud.

Who it is for

The live site is a free beta for students. Paid tiers for colleges and placement cells are planned. It is not a promise that every check is free for everyone.

How it was built

TrustIntern was built for DEV's Hacktoberfest Open-Source AI Challenge Week 2 in 5.5 hours and is open source under the MIT license. A teammate built the front end. The write-up is on DEV. The code is on GitHub under the MIT license.

How it works

  1. Fixed checkers look at the email domain, domain age (RDAP), website and message text.
  2. Gemma 4 plans which research agents to launch: company, recruiter, complaints, domain, document, follow-up. Only allowlisted agent types run; at most 8 agents and depth 2.
  3. Gemma 4 vision reads the offer letter (PDF or screenshot) and flags inconsistencies.
  4. Deterministic scoring (backend/app/scoring.py) adds up fixed indicator points: upfront fee 25, domain mismatch 20, sensitive data 20, young domain 15, offer conflict 15, unrelated domain 10, urgency 10, personal email 5. The total is capped at 100 and never reduced. Gemma never assigns points.
  5. Progress streams to the React desk over SSE; Gemma then writes a plain-language summary of the evidence.

On the hosted site, Gemma falls back to the Gemini API. A local install can run Gemma through Ollama, and if no model is reachable a heuristic planner finishes the investigation. The score never depends on the model. Gemma plans, reads, and summarizes, but never scores.

Recompute the score

The score runs from 0 to 100. Every point is tied to a piece of evidence. Anyone can recompute it by hand from backend/CONTRACT.md. Only those fixed weights create points. Gemma never assigns points, and the score does not call any company a scammer.

Fixed indicator points. The total is capped at 100 and never reduced.
IndicatorPoints
Upfront fee25
Email domain mismatch20
Sensitive data request20
Newly registered domain15
Offer letter conflict15
Company not in domain10
Urgency or guarantee10
Personal email provider5

Fictional composites

The built-in examples are fictional composites, not real companies or real recruiters. With live lookups off, the suspicious composite scores 90. That locked number is the arithmetic, which the tests check.