The Problem
The remote job market is broken in two directions at once.
Job seekers are drowning in fake postings. Thousands of fraudulent listings flood job boards every single day — promising high salaries, flexible hours, dream opportunities. Real people apply. Real people get scammed. They lose money, they lose weeks, and they lose confidence in the search entirely.
On the other side, recruiters are posting vague, bloated job descriptions that repel the exact candidates they are trying to attract. Rockstar ninja developers. Ten plus years of every framework. No salary. No context. Nobody wins.
This is the problem the Scale Without Borders Hackathon challenged me to solve. SafeHire is my answer.
Demo
Watch the full demo on YouTube
What I Built
SafeHire is a three-mode AI job intelligence platform powered by the Claude API.
Mode A — Job Legitimacy Analyzer
Paste any job posting and get an evidence-based fraud score from 0 to 100 across eight signal categories — salary transparency, contact method, upfront payment requests, company verifiability, grammar quality, application process legitimacy, remote work validity, and implausibility indicators. Each signal returns a verdict and a one-line explanation. Not a generic warning. A specific breakdown in seconds.
Mode B — Remote Job Advisor
Enter your skills and Claude searches Greenhouse, Lever, LinkedIn, and company career pages in real time using the Claude web search tool. Every result is scored for skill match, annotated with matched and gap skills, and fraud-screened by the same engine powering Mode A before it ever reaches the user. SafeHire is the only job search tool that guarantees every listing it surfaces has already passed a fraud check.
Mode C — Job Posting Auditor
For recruiters. Paste a job posting before it goes live and get an eight-dimension quality audit covering clarity, DEI language, requirement bloat, salary transparency, company sell, role impact, application UX, and keyword strength. Each dimension returns a score out of ten, a specific issue, and a concrete fix. Then hit AI Rewrite and Claude rewrites the entire posting incorporating every suggestion. From a grade F posting to publish-ready in under thirty seconds.
What Inspired Me
I have been through the job search myself. I know what it feels like to spend two weeks on an application for a role that turned out to be a scam. I know what it feels like to search for remote work and get buried in recycled aggregator listings that have nothing to do with my actual skill set.
The Scale Without Borders theme — scaling opportunity without borders — made the direction obvious. Remote work is the great equalizer. But only if the infrastructure around it is trustworthy. SafeHire is that infrastructure layer. I built it because I needed it myself.
How I Built It
Frontend
React with TypeScript, Vite, and Tailwind CSS. I centralized all
API calls in a single claude.ts module with a multi-strategy
JSON parser to handle Claude response variability gracefully.
AI Layer
Three distinct Claude API integrations, each with carefully engineered system prompts:
Mode A uses a structured prompt that forces Claude to return a strict JSON schema with exactly eight signal objects. I included a concrete example response in the system prompt to anchor the output format and eliminate markdown fence leakage.
Mode B uses the web_search_20250305 tool with a search strategy
prompt that targets specific job boards by domain, enforces fraud
pre-screening at the prompt level, and returns matched and gap
skills alongside each result.
Mode C uses two separate API calls — one for the audit returning scored dimensions with issue and suggestion fields, and a second for the rewrite that receives the full audit result as context so every suggestion is applied precisely.
Infrastructure
Vite dev proxy for local development. Vercel serverless function
at api/anthropic.js for production, keeping the API key
server-side at all times.
Quality
I had the project independently QA audited across 18 test cases covering fraud detection accuracy, input validation, XSS injection resistance, mobile responsiveness, and UX quality.
Overall audit score: 74/100 Fraud detection engine: 95/100 Security: 96/100
All medium severity defects were remediated before submission.
Challenges I Faced
Prompt engineering for consistent JSON
Getting Claude to return strictly structured JSON across three different analytical tasks without markdown fences, preamble, or schema drift took significant iteration. I solved it by combining explicit format instructions, a concrete example in the system prompt, and a multi-strategy client-side parser as a safety net.
CORS in production
The Anthropic API blocks direct browser requests. The Vite dev proxy solves this locally but does not carry over to Vercel. I built a lightweight serverless proxy function to handle production requests while keeping the API key server-side at all times.
Web search result quality
Claude's web search tool returns live results but without guardrails it surfaces aggregator links and expired postings. I solved this with a detailed search strategy prompt that specifies target domains, enforces fraud pre-screening at the model level, and requires real ATS links rather than search results pages.
Calibrating fraud detection
A fraud detector that flags everything is useless. I tuned the analyzer to correctly score a legitimate Shopify engineering role at 92 out of 100 while scoring a scam posting at 15 out of 100 — which required multiple prompt iterations and real world test cases across both ends of the spectrum.
What I Learned
Building SafeHire taught me that prompt engineering is real
engineering. The system prompts in claude.ts went through
more iterations than any component in the codebase. Getting
an AI to return consistent, structured, accurate output across
three completely different analytical tasks is a genuine
technical challenge — and solving it cleanly is a skill I will
carry into every AI project I build from here.
I also learned that the best AI products are not the ones that do the most — they are the ones that do one thing so well that users trust them completely. SafeHire does one thing. It tells you the truth about a job posting. Everything else is built around that.
Tech Stack
- React, TypeScript, Vite
- Tailwind CSS
- Claude API
claude-sonnet-4-20250514 - Claude
web_search_20250305tool - Vercel
Try It
Live demo: https://safe-hire-delta.vercel.app
Demo video: https://youtu.be/X2KJUP5-Ccg
GitHub: https://github.com/Aiman03at/safe-hire
SafeHire. Know before you apply.
Built With
- api
- claude
- css
- react
- tailwind
- typescript
- vercel
- vite

Log in or sign up for Devpost to join the conversation.