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.
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
| Stage | Script | Function |
|---|---|---|
| 1. Scrape | scraper.py | Navigates LinkedIn Jobs, paginates results, extracts title + company |
| 2. Filter | filtrar_empleos.py | DeepSeek evaluates relevance of each listing against profile |
| 3. Detail | detalle_empleos.py | Opens each listing, expands description, extracts full text |
| 4. Rank | rankear_empleos.py | DeepSeek 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