Lord Kelvin

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.