Inspiration

Frontline hiring in Mexico (warehouses, retail, manufacturing, logistics) runs through WhatsApp and Facebook Marketplace postings that are hard to verify: fake recruiters, advance-payment scams, and offers whose commute is quietly infeasible for the shift advertised. Existing frontline-hiring platforms optimize screening and onboarding after an offer is assumed genuine - none of them verify that assumption first. Trusted Hire Mexico is that missing layer.

What it does

Given a raw job posting, it:

  1. Extracts the claimed company/RFC and flags scam-pattern red flags in the text - a real Google ADK LlmAgent on Gemini (Job Trust Agent).
  2. Independently re-reads the same posting with Gemma, a genuinely different model family, run in parallel (Gemma Verifier Agent) - any flag either model raises is kept and honestly attributed to whichever one found it, so one model's blind spot isn't the whole system's.
  3. Cross-references the claimed RFC against Mexico's official SAT Article 69-B blacklist of shell companies - real government data, never an LLM guess.
  4. Checks whether the commute from home to the job site is feasible for the stated shift, using real Google Maps Directions data - deliberately deterministic, not an LLM call.
  5. Combines everything into one persisted case state: READY, AT_RISK, or FLAGGED.

What this system does NOT claim: a clean result is not a safety guarantee. Most informal job scams in Mexico never use a real RFC at all, so absence from the SAT blacklist only means "what we could check came back clean" - this is a verifiable-evidence layer, not a certainty machine. Every flag links back to a real, checkable source so a human can verify or appeal it directly.

Features

  • Dual-model scam detection: Gemini + Gemma run in parallel on the same posting, flags merged with per-model attribution (never silently dropped)
  • Real-time progress in the UI via Server-Sent Events as each agent completes
  • Live cross-check against Mexico's official SAT Article 69-B shell-company blacklist (14,000+ real records)
  • Commute feasibility check via real Google Maps Directions data, deterministic (no LLM)
  • Persisted case state (READY / AT_RISK / FLAGGED) backed by SQLite
  • Per-IP rate limiting on the public demo endpoint to prevent quota abuse

Data sources

Mexico's SAT Article 69-B EFOS blacklist - the official government CSV of confirmed/presumed shell companies, fetched directly from omawww.sat.gob.mx.

How we built it and challenges we ran into

  • SAT publishes the Article 69-B blacklist as a plain CSV with no auth - validated against the live file (14,000+ real records across 4 status categories).
  • That SAT host times out intermittently, even from Cloud Run's own network on a cold start. Since a fresh container has no cache to fall back on, the first lookup after a deploy would otherwise hard-fail the whole pipeline. Fixed by shipping a real CSV snapshot inside the Docker image as a fallback - the live source is still tried first on every cache refresh.
  • A SAT 69-B match is real, checkable evidence; its absence is not proof an offer is safe - this distinction shaped every verdict label in the system (FLAGGED / NO_RED_FLAGS_FOUND / INSUFFICIENT_INFO, never anything implying a safety guarantee).
  • A single model can repeat the same flag twice within one response - observed live from Gemma on a real posting. The merge logic has to guard against a model double-counting itself, not just against disagreement between the two models.

What's next for Trusted Hire Mexico

Move the case store from SQLite (fine for a demo session, but Cloud Run's filesystem is ephemeral) to Firestore for real production use, without touching the orchestrator or API layer.

Google technology stack

  • Gemini 3.5 Flash-Lite (gemini-3.5-flash-lite) — accessed through the Gemini API via the google-genai SDK, wrapped in a Google ADK LlmAgent. This is the model behind the Job Trust Agent's scam-pattern extraction.
  • Google Agent Development Kit (ADK) — every LLM agent is a real google.adk.agents.LlmAgent executed through google.adk.runners.InMemoryRunner (see agents/orchestrator.py).
  • Google Cloud Run — the whole app is deployed and demoed live on Cloud Run.
  • Google Maps Directions API — real transit-time data for the deterministic Commute/Geo feasibility check.
  • Gemma (gemma-4-26b-a4b-it) — additional Google model, run as an independent second-opinion verifier agent alongside Gemini on every request.

One of four

One of four projects on the same spine — an LLM proposes structure, deterministic code decides the outcome, and the evidence comes from an independent source you can check yourself. Here it's Mexico's SAT Article 69-B shell-company blacklist; a point-in-time Wayback capture in The Promise Ledger, versioned business rules in ScopeCouncil, a cited linguistic archive in Language Recovery OS.

Built With

Share this project:

Updates