1
Shipped: An AI Job Matcher Agent — paste a job URL + your resume, get a match score, skill gaps, and a cover letter
Applying for jobs is the same loop every time: read the posting, compare it with your resume, guess your chances, then write a cover letter from scratch. I built an agent that does all of it in one request.
Flow: paste a job posting URL → upload your resume PDF → get the analysis back.
Output:
-
match_score (0-100) — how well the profile fits the role
- skill_gaps — what the job asks for that the resume doesn't have
- strengths — what actually lines up
- cover_letter — personalized, ready to send
Stack:
- FastAPI — async API, two endpoints: /analyze (JSON, local resume path) and /analyze-upload (multipart file upload). Auto Swagger docs at /docs.
- OpenAI GPT — the reasoning layer. Single structured prompt, JSON-only output, validated with Pydantic before it ever reaches the response.
- httpx + BeautifulSoup — scrapes the job page, pulls the title and hunts for requirement lists (looks for requirements / responsibilities / you will headings, falls back to the first bullet lists on the page).
- pdfplumber — page-by-page text extraction from the resume PDF.
- Jinja2 + vanilla CSS — drag-and-drop UI, no frontend framework.
- Docker — python:3.12-slim, single container, runs anywhere.
Two things I'd call out:
1. Graceful degradation. If there's no API key or the LLM call fails, it doesn't 500 — it falls back to a keyword-based scorer that intersects job skills with resume skills and returns a real score. The app is always usable.
2. Scraping is the hard part, not the AI. Every job board renders differently, and half of them are JS-heavy. The heuristic parser works on plain HTML postings but site-specific parsers (LinkedIn, Indeed) are the obvious next step.
Next up: semantic matching with embeddings instead of keyword overlap, batch mode for multiple postings at once, and swapping temp-file handling for in-memory PDF parsing.
Happy to answer anything about the scraping heuristics or the fallback design.
I mostly build AI agents and automation for businesses — chatbots, workflow automation, the boring repetitive stuff that shouldn't be manual. If you're working on something similar, DMs are open.
Portfolio: https://danish614.github.io/danish-portfolio/Add a comment
0/2000