$ cat ~/work/work-search.case

Work Search.
Full-stack product · Shipped
// LangGraph-orchestrated job search with concurrent fan-out across 6 portals, a 5-dimension LLM scoring pipeline, and ATS-optimized resumes and cover letters in under 30 seconds.
// Impact at a glance
- - LangGraph fan-out across 6 portals (Greenhouse, Lever, Ashby, LinkedIn, Indeed) with 5-dimension LLM scoring
- - ATS-optimized resumes and cover letters in under 30 seconds — 100+ applications processed by 40+ users
- - Three.js globe for location filtering, Kanban pipeline, and Clerk auth — deployed on Vercel and Hugging Face Spaces
// summary
Work Search is a LangGraph-orchestrated job search platform with concurrent fan-out across 6 portals (Greenhouse, Lever, Ashby, LinkedIn, Indeed), a 5-dimension LLM scoring pipeline, and ATS-optimized resume and cover letter generation in under 30 seconds — used by 40+ users with 100+ applications processed.
// problem
Job search spreads across boards, ATS portals, and spreadsheets. Resumes, skill matching, and apply links are rarely in one place.
// what I built
I built a unified app: Clerk auth, Neon Postgres for users and applications, a Python service layer for search/scoring/conversion, and automation for recurring job ingestion—with direct-apply URL handling for Lever, Greenhouse, and Ashby.
// core experience
- - Upload or paste a resume and get structured skills, domains, and match scores against stored jobs
- - Search and filter listings from many sources with quality gates and embedding-based matching
- - Track applications, export tailored outputs (including LaTeX resume paths), and optional LinkedIn flows via Nango
// architecture
- - Next.js 16 + Clerk on the frontend; FastAPI orchestrating search, storage, and AI services
- - Services: job_search, resume_converter, skill_extractor, embedding_matcher, ats_scorer, scoring_engine, pipeline_scheduler, job_store
- - Neon/Postgres for users and application history; background pipelines for ongoing discovery
// ai involvement
LLMs and embeddings power resume parsing, tailoring, domain classification, and match explanations—not a generic chat box on top of a job board.
// challenges
- - Normalizing heterogeneous job feeds and improving direct-apply links per ATS
- - Making resume extraction reliable enough for scoring and filters
- - Balancing automated pipelines with clear UX when matches update
// outcome
Deployed demo with a documented backend repo—an end-to-end example of product UX plus Python orchestration for real job-search workflows.
// why this matters
Recruiters can see full-stack delivery: typed frontend, serious Python backend, auth, persistence, and applied AI in one shipped project.
// reflection
Job search is a workflow problem. The win is matching, persistence, and automation—not another wrapper around a single API.
// capabilities
// links