Automation
AI Job Matching Workflow
Job boards don't have a discovery problem. They have a filtering problem. Every manual search session is mostly noise. This pipeline replaces that process with a decision engine: scraping, keyword filtering, AI scoring, and delivering only high-match opportunities as structured notifications.
Summary
- BuiltDesigned a 6-stage pipeline: scraping → deduplication → keyword filtering → AI scoring → threshold filtering → HTML email delivery.
- ProblemManual job searching is a volume problem disguised as a visibility problem.
- ImpactReplaced manual job board browsing entirely — only genuinely strong opportunities trigger action.
Problem
Manual job searching is a volume problem disguised as a visibility problem.
Manual job searching is a volume problem disguised as a visibility problem. Refreshing boards, scanning duplicates, and trying to evaluate fit manually creates decision fatigue without improving decision quality.
The real problem was filtering — separating strong opportunities from noise before spending attention on them.
Without a system, quantity overwhelms quality and the best roles get buried.
What I Built
6 key contributions that defined the build
- Designed a 6-stage pipeline: scraping → deduplication → keyword filtering → AI scoring → threshold filtering → HTML email delivery.
- Built a cron-driven scraper polling every 5 minutes with Google Sheets-backed deduplication to prevent repeated alerts.
- Created a two-pass keyword filter (strong-match and avoid-keywords) to remove obvious mismatches before reaching the AI layer — logic first, AI second.
- Integrated OpenAI scoring that evaluates each listing against skills, salary, workload preferences, and stack fit — returning a match score, pros, cons, and a shouldApply recommendation.
- Set a strict threshold: only listings where score ≥ 75 and shouldApply = true continue to notification, protecting alert signal quality.
- Generated structured HTML emails with full AI analysis, application reasoning, and a direct job link — turning a notification into an immediate action.
Key Decisions
Tradeoffs and approaches that shaped the final outcome
Challenge
Routing everything through AI would make the pipeline slow, expensive, and unreliable — filtering logic had to come before AI, not after.
Approach
Built keyword filtering as a pre-AI gate — strong candidates are pre-qualified by logic before LLM evaluation, which cuts token cost and improves response quality.
Challenge
Notification trust is fragile: one week of noise trains a user to ignore alerts entirely, breaking the system's core value.
Approach
Enforced a strict match threshold so the system says no far more often than yes — signal quality beats volume.
Impact
Replaced manual job board browsing entirely — only genuinely strong opportunities trigger action.
- Replaced manual job board browsing entirely — only genuinely strong opportunities trigger action.
- Reduced job search time and decision fatigue while improving application quality by concentrating effort on pre-qualified matches.