A company was going through layoffs. I built the job search tool they needed.
When a company I was close to went through a round of layoffs, I built a free AI-powered job search platform for the people affected. It scores every job against each person's unique profile, generates tailored application materials, and gives a small community the tools to land on their feet together.

Layoffs hit and suddenly everyone needs the same thing at once
When a company goes through layoffs, every affected person faces the same problem simultaneously: hundreds of job boards, no way to know which roles actually fit, and the emotional weight of starting from scratch. People were pasting job descriptions into ChatGPT one at a time, manually tracking applications in spreadsheets, and writing cover letters from scratch for every role.
I'd worked with these people. I knew their skills, their ambitions, what kind of roles they were actually good for. The tools available to them were either too generic (Indeed, LinkedIn) or too expensive (paid AI resume services). Nobody was building something that understood each person individually and helped them at every step, from discovering the right roles to landing them.
Three layers, built in sequence
The first working version was live by the end of the first afternoon. The full platform shipped in under three days: scoring engine, document generation, company signals, community features, kanban tracker.
Shared Job Discovery
An n8n pipeline scrapes career pages from 1,356+ companies daily across five ATS platforms (Greenhouse, Lever, Ashby, Recruitee, Workable). Jobs land in a shared database with 7-day dedup to catch reposts. Every user sees the same pool. No one has to go find listings.
Per-User AI Scoring
Each user builds a profile: target roles, technical stack, industries, salary range, hard disqualifiers, positive signals, warning signals. When they score a job, Claude evaluates it across five weighted dimensions and returns a 0-100 score with a recommendation: Priority Apply, Strong Fit, Worth a Look, or Skip. Users bring their own API key so scoring costs stay with them.
The Toolkit Around It
Scoring is just the start. The app generates targeted resumes, cover letters, and cold outreach using the user’s real experience and the actual job description. A kanban tracker moves roles through Saved, Applied, Interviewing, Offer, Hired. Company signals surface funding rounds, leadership changes, and hiring momentum. Interview prep produces tailored talking points. Weekly email digests keep people engaged without constant notifications.

Discover: jobs from 1,356+ companies, scored against your profile.
Tracker: kanban board from Saved to Hired.

Signals: hiring predictions, funding rounds, and company-level intelligence.
What powers it
3-Layer Scoring Funnel
SQL pre-filter narrows the pool by role keyword and location. Haiku triage (cached and shared across users) eliminates obvious mismatches for pennies. Sonnet does the full 5-component score only on jobs that pass. This keeps LLM costs minimal even at scale.
5-Component Score Breakdown
Responsibilities, Title & Level, Industry Fit, Compensation, and Culture & Impact. Each dimension is independently weighted per user. Hard disqualifiers (wrong seniority, below comp floor, relocation required) override the numeric score. Every score includes per-component reasoning so users understand why.
Company Signal Engine
Webhook-driven signal ingestion detects funding, hiring surges, acquisitions, and leadership changes. Each signal carries a timing score bonus (0-20 points) that decays linearly over the estimated hiring window. Multiple signals stack. The bonus gets added to a job’s AI score so timely opportunities float to the top.
Document Generation
Resume, cover letter, and outreach generators use the user’s profile and the target job description. Anti-slop voice rules are injected into every prompt: no em dashes, use contractions, vary sentence length, lead with outcomes. Users can upload an existing resume as a DOCX and the app extracts the layout blueprint (fonts, margins, section order) so the generated version matches their format.
Community Layer
Activity feed shows peer progress (scored, applied, hired). When 2+ members score the same job 80+, it surfaces as a Community Pick. Member directory with opt-in visibility and peer recommendations. Accountability partners for weekly goal-setting. Milestone badges auto-trigger on first score, first app, 10 apps, first offer.

Resume Builder: generate, edit inline, export as DOCX.

Cover Letters: tailored to each job, grounded in your real resume.
Four problems that shaped the architecture
Scoring has to be cheap enough to run on every job
The naive approach sends every job description to Sonnet. At 1,000+ jobs per user, that costs real money. The 3-layer funnel (SQL pre-filter, Haiku triage, Sonnet score) cuts token spend by 80%+. Triage results are cached by role keyword and shared across all users, so the same job doesn’t get re-evaluated for the same role type. Users see their token spend in a usage dashboard with per-model breakdowns.
Every user’s definition of a good job is different
A 5-component scoring model with user-defined weights handles this. One person cares mostly about responsibilities and comp. Another weights culture and industry. Users define custom disqualifiers ("no management roles over 5 reports"), positive signals ("mentions Clay or n8n"), and warning signals ("requires security clearance"). The scoring prompt is rebuilt per-user with their specific criteria injected.
Generated documents that don’t sound like AI wrote them
23 banned words, 19 banned phrases, and a hard rule against em dashes. Every generation prompt includes anti-slop voice rules that enforce contractions, varied sentence length, concrete examples over generic claims, and outcome-first framing. Resume bullets get specific verb variety requirements. Cover letters skip projects not found in the user’s actual profile instead of fabricating them.
Building for people mid-crisis without making it feel heavy
The users are recently laid off. The UX had to be encouraging without being patronizing. Confetti on "Hired" milestones. A support chat with Claude Haiku that knows the entire product. Weekly digests that surface progress, not pressure. The whole thing is free and invite-only because these are real people I worked with, not a growth experiment.
Shared discovery, personal scoring
The core design separates shared work from personal work. Job discovery is centralized: n8n pipelines scrape 1,356+ company career pages daily, deduplicate against a 7-day window, and write to a shared PostgreSQL database. Signal detection runs on the same cadence, ingesting company-level events via webhooks.
Scoring is personal. Each user's profile, weights, disqualifiers, and signals define a unique scoring prompt. The 3-layer funnel (SQL pre-filter, Haiku triage, Sonnet score) ensures expensive LLM calls only happen on relevant jobs. Triage results are cached by role keyword and shared across users. Users bring their own Anthropic API key, so scoring costs distribute naturally.
Document generation (resumes, cover letters, outreach, interview prep) injects anti-slop voice rules into every prompt. The resume generator can extract layout blueprints from uploaded DOCX files and reproduce the formatting. Everything saves to the database and is editable inline via a Tiptap rich text editor with DOCX export.
Full Stack
Built for people, not metrics
I built this because people I cared about needed it, not as a product launch. The app is free, invite-only, and designed for a specific group of people going through a specific moment. No growth loops, no monetization, no waitlist theater.
The system processes jobs from 1,356+ companies across five ATS platforms. Each user gets personalized AI scoring, document generation, company signal tracking, and a community of peers in the same situation. 18 database migrations track the evolution from a simple scorer to a full job search platform with activity feeds, accountability partners, and an ops agent that auto-triages support tickets.
Scope Touched
Interested in a similar project?
Let's Talk