Case study · Automation & AI · Private repository
JobHunter: turning job feeds into structured, actionable signals.
A personal pipeline for collecting opportunities, extracting relevant information, checking eligibility, and prioritizing job leads.
The problem
Remote job listings often include inconsistent location restrictions, ambiguous eligibility language, and incomplete structured fields. Manual review becomes repetitive and time-consuming.
Engineering approach
- Ingest postings from configured sources and normalize their fields.
- Extract salary, work arrangement, skills, and location constraints using structured processing and LLM-based evaluation.
- Apply eligibility rules before prioritizing opportunities.
- Keep the pipeline testable with recorded fixtures and blocked live HTTP requests during automated tests.
- Persist pipeline state across scheduled runs.
Current architecture
The repository includes a Python package named jobhunter_daily with commands for running source adapters and generating digests. Its documented scheduled workflow persists state through a separate Git branch. Cloudflare-backed judge integration and optional Notion synchronization are configurable.
Tradeoffs and next improvements
The project is under active development. Relevant design decisions include choosing durable state storage, distinguishing rule-based eligibility from probabilistic extraction, and evaluating repeatability across LLM judgments. Any future benchmark outcomes will be added only after measurement.
What it demonstrates
Practical automation, API integration, resilient data processing, evaluation discipline, and awareness of failure modes in AI-assisted systems.