Job Fit Analyzer
AI-powered tool that analyzes how well I fit a given job role — paste a job URL, get a match score, dimension breakdown, and strengths/gaps.
Instead of sending a generic CV and hoping for the best, what if a recruiter could instantly see how well I actually fit their role — scored, broken down, and honest about the gaps?
That’s what Job Fit Analyzer does. Paste a job URL or description, and a pipeline of AI agents reads the posting, compares it against my real experience, and returns a structured analysis in seconds.
The Idea #
Job searching is a matching problem. Recruiters skim CVs trying to connect dots between a role and a candidate. I wanted to flip that — give them a tool that does the matching for them, transparently showing where I’m strong and where I’d need to ramp up.
The result is honest by design. A score of 58 doesn’t try to spin itself as a great fit. It tells you exactly what matches, what doesn’t, and lets you decide.
What You Get #
- Match score (0-100) — An overall fit number, not inflated.
- Five dimensions scored independently — Technical stack, seniority, domain, soft skills, and location/logistics. Each tells its own story.
- Strengths — Specific things I bring to the role, citing real projects and experience.
- Gaps — Concrete missing pieces, never vague. “No professional Go experience” rather than “some areas for growth.”
- Summary — A recruiter-facing paragraph with a clear recommendation.
- Outreach message (private mode) — A LinkedIn cold DM draft that adapts its tone to the match score — confident when the fit is strong, upfront about gaps when it isn’t.
How It Works #
Three AI agents process the job posting in sequence, streamed to the UI in real time:
flowchart TD
A[Job URL] --> B[Web Scraper<br/>extract content]
B --> C[Agent 1: JD Analyst<br/>extract structured JD]
C --> D[Agent 2: Profile Matcher<br/>score fit against CV]
D --> E{Outreach mode?}
E -->|Yes| F[Agent 3: Outreach Writer<br/>generate LinkedIn cold DM]
E -->|No| G[SSE Stream]
F --> G
G --> H[React UI<br/>results]
style A fill:#1a1a2e,stroke:#e94560,color:#fff
style B fill:#1a1a2e,stroke:#0f3460,color:#fff
style C fill:#1a1a2e,stroke:#16213e,color:#fff
style D fill:#1a1a2e,stroke:#16213e,color:#fff
style F fill:#1a1a2e,stroke:#16213e,color:#fff
style G fill:#1a1a2e,stroke:#0f3460,color:#fff
style H fill:#1a1a2e,stroke:#e94560,color:#fff
- JD Analyst — Reads the raw posting and extracts structured data: title, company, tech stack, required vs. nice-to-have skills, seniority, domain, remote policy.
- Profile Matcher — Scores my fit against the extracted JD across five dimensions, pulling strengths from real projects and flagging honest gaps.
- Outreach Writer (optional) — Drafts a LinkedIn message calibrated to the match score.
Tech Stack #
- Next.js, React, Tailwind CSS
- OpenAI GPT-4o with structured JSON outputs
- Server-Sent Events for real-time streaming
- Deployed on Vercel