Stop manually scrolling LinkedIn like everyone else. This tool pulls real job leads automatically using Playwright + TypeScript.
Built by Himesh Dua Powered by vibe coding ⚡
-
Scrapes real LinkedIn job listings
-
Applies advanced filters (not basic search)
-
Extracts:
- 🧠 Job Title
- 🏢 Company
- 🌍 Location
- 🔗 Apply Link
-
Saves everything into
data.json(ready to use)
👉 This is not a toy. It’s your client acquisition starting point.
-
🔐 Session Persistence → Login once, reuse forever
-
🧩 Smart Selectors → Survives LinkedIn DOM changes
-
🎯 Advanced Filters
- ⏰ Last 24h / week / month
- 🎓 Experience level targeting
- 💼 Job type filtering
- 🏠 Remote / Hybrid / Onsite
- 📊 Sort by latest jobs
-
🧪 Debug Mode → Auto screenshot when things break
-
📦 Clean JSON Output → Plug into your next system
git clone https://github.com/himeshdua/linkedin-job-scraper.git
cd linkedin-job-scraper
bun install
bunx playwright installbun run loginWhat happens:
- Browser opens
- You log into LinkedIn
- Press ENTER
- Session saved →
linkedin-session.json
👉 No repeated logins. No friction.
bun run scrapeBoom. You get:
data.jsonEdit this:
const searchParams = {
keywords: 'Next.js Developer',
location: 'United States',
timeFilter: 'r86400',
experienceLevel: '2,3',
jobType: 'F',
remoteFilter: '2',
sortBy: 'DD',
salaryInsight: true,
};👉 Target:
- Specific tech stacks
- Remote-only jobs
- Fresh listings (high intent)
[
{
"title": "Frontend Developer",
"company": "Startup Inc",
"location": "Remote",
"link": "https://linkedin.com/jobs/view/..."
}
]LinkedIn is hostile to bots.
If it fails:
- 🔁 Re-run
bun run login - 📸 Check
debug-screenshot.png - 🧠 Update selectors (DOM changes often)
This is NOT:
- ❌ A mass spam bot
- ❌ A “get rich quick” tool
This IS:
- ✅ A lead source
- ✅ A data pipeline
- ✅ Step 1 of a real client system
"login": "bun run ./save-session.ts",
"scrape": "bun run ./scrape-linkedin.ts"If you’re serious:
- AI lead scoring
- Personalized outreach generator
- Auto DM system (carefully)
👉 That’s where money is. Not scraping.
- LinkedIn DOM changes = things break
- No pagination (yet)
- No emails/contact extraction
- Can get blocked if abused
Built by Himesh Dua Vibe coded, battle tested, and meant to be extended.