{"slug": "i-got-tired-of-losing-good-jobs-to-timing-so-i-built-a-pipeline-that-scores-my", "title": "I got tired of losing good jobs to timing, so I built a pipeline that scores LinkedIn listings against my CV and emails me the best matches", "summary": "A developer built SnapplAI, a pipeline that scrapes fresh LinkedIn job listings, uses Google's Gemini to score each against the user's CV, and emails only the top matches. The tool runs locally, via Docker, or as a scheduled GitHub Actions cron, and is available under an MIT license.", "body_md": "A job posting gets 200+ applicants in 48 hours. By the time LinkedIn's daily digest hits your inbox, the window is already closing.\n\nI kept finding great matches days after they were posted. So I built SnapplAI: it scrapes fresh LinkedIn listings, sends each one to Gemini to score it against your CV, and emails you only the top matches, before the crowd even sees them.\n\n**How it works**\n\nFour steps, one pandas DataFrame, no frameworks:\n\nScrape — fresh listings from LinkedIn based on your filters\n\nSummarize — Gemini extracts structured fields as JSON\n\nAnalyze — each listing scored against your CV (chain-of-thought enforced: reasoning before judgment)\n\nDeliver — top matches emailed to your inbox\n\nRuns locally, via Docker, or as a scheduled GitHub Actions cron. Full setup takes 5 minutes.\n\n**Why no framework**\n\nI wanted a clean data pipeline with LLM calls where they matter, not an agent framework. Python orchestrates, AI evaluates. Each Gemini call retries with exponential backoff and falls back through a model chain, so a throttled API doesn't crash the run.\n\n**Try it**\n\nMIT-licensed. Issues, PRs, and forks are welcome.", "url": "https://wpnews.pro/news/i-got-tired-of-losing-good-jobs-to-timing-so-i-built-a-pipeline-that-scores-my", "canonical_source": "https://dev.to/tdk99/i-got-tired-of-losing-good-jobs-to-timing-so-i-built-a-pipeline-that-scores-linkedin-listings-5p8", "published_at": "2026-09-07 19:06:54+00:00", "updated_at": "2026-09-07 19:32:27.170602+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence", "natural-language-processing"], "entities": ["SnapplAI", "LinkedIn", "Gemini", "GitHub Actions"], "alternates": {"html": "https://wpnews.pro/news/i-got-tired-of-losing-good-jobs-to-timing-so-i-built-a-pipeline-that-scores-my", "markdown": "https://wpnews.pro/news/i-got-tired-of-losing-good-jobs-to-timing-so-i-built-a-pipeline-that-scores-my.md", "text": "https://wpnews.pro/news/i-got-tired-of-losing-good-jobs-to-timing-so-i-built-a-pipeline-that-scores-my.txt", "jsonld": "https://wpnews.pro/news/i-got-tired-of-losing-good-jobs-to-timing-so-i-built-a-pipeline-that-scores-my.jsonld"}}