Case

AI-Powered LinkedIn Job Scraping & Ranking Pipeline

Multi-stage orchestrator that reviews ~1,000 LinkedIn job listings daily with Playwright, filters and ranks them with DeepSeek against a professional profile, leaving ~300 ready by rating.

active Apr 2026 filtered
Cover for AI-Powered LinkedIn Job Scraping & Ranking Pipeline

Step 01

Problem

Finding relevant job postings on LinkedIn takes hours of manual browsing: filtering through hundreds of listings, reading descriptions, evaluating fit. There's no efficient way to prioritize opportunities without massive time investment.

Step 02

Context and constraints

I built a 4-stage automated pipeline that navigates LinkedIn with Playwright, extracts job listings, filters by relevance with AI, retrieves full descriptions, and ranks them by compatibility with a professional profile.

Role: Pipeline architect and developer: scraper with persistent session, AI integration for filtering and ranking, multi-stage orchestration with error handling and structured data output.

Step 03

Key decisions

  • Playwright with Chromium and persistent session to maintain LinkedIn authentication without re-login.
  • 4-stage orchestrated pipeline: scrape → filter → detail → rank, each as its own script.
  • DeepSeek for semantic filtering: evaluates actual relevance of each listing against the candidate profile, not just keywords.
  • Full description extraction with automatic 'See more' expansion on each listing.
  • Ranking with 4-10 score and textual justification to prioritize opportunities.
  • Date-organized directory structure for traceability across runs.

Step 04

Outcomes

  • Complete pipeline reducing hours of manual search to minutes of execution.
  • Intelligent filtering that discards irrelevant listings and prioritizes the best matches.
  • Ranking with transparent justification for each score.

Metrics

  • ~1,000 job listings reviewed daily.
  • ~300 listings filtered and ranked per run.
  • 4 orchestrated stages: scrape, filter, detail, rank.
  • DeepSeek evaluates semantic compatibility, not just keywords.
  • Persistent LinkedIn session without re-authentication needed.

Step 05

Learnings and next improvement

AI-Powered LinkedIn Job Pipeline

Multi-stage orchestrator that automates job search, filtering and ranking on LinkedIn using Playwright and artificial intelligence.

Tech stack

  • Language: Python 3.11+
  • Browser: Playwright + Chromium with persistent session
  • AI: DeepSeek API for semantic filtering and ranking
  • Architecture: 4 orchestrated stages (scrape → filter → detail → rank)
  • Data: Structured JSON organized by date

Pipeline stages

StageScriptFunction
1. Scrapescraper.pyNavigates LinkedIn Jobs, paginates results, extracts title + company
2. Filterfiltrar_empleos.pyDeepSeek evaluates relevance of each listing against profile
3. Detaildetalle_empleos.pyOpens each listing, expands description, extracts full text
4. Rankrankear_empleos.pyDeepSeek scores 4-10 each listing with justification

Authentication

Uses Playwright to open LinkedIn once, saves session cookies to linkedin_auth.json and reuses them on subsequent runs without re-login.

Step 06

Project visual for AI-Powered LinkedIn Job Scraping & Ranking PipelineProject visual for AI-Powered LinkedIn Job Scraping & Ranking Pipeline