JobSpy
JobSpy is a Python library for collecting job postings. A single scrape_jobs() call queries LinkedIn, Indeed, Glassdoor, ZipRecruiter, Google, Bayt, Naukri, BDJobs and HelloWork concurrently and returns one pandas DataFrame with title, company, location, job type, salary range, URL and description. Filters cover search term, location and distance, job type, remote, easy-apply and how many hours old a posting is.
Beyond the library it now installs a jobspy command that streams one JSON line per job, which suits shell pipelines, and an MCP server, mcp-jobspy, that runs with uvx so an AI assistant can search listings directly. Proxies rotate round-robin per board, with SOCKS support on LinkedIn, Indeed and BDJobs.
Scraping job boards depends on their markup and blocking behavior, so results vary by site: some boards need fetch_description for full text, Glassdoor filters by whole days, and heavy use needs proxies. Check each board's terms before collecting at scale.
Features
Why choose it
Trade-offs
Maintenance check
- Last commit
- 2026-10-22
- Commits, last 90 days
- 37
- Releases, last 90 days
- 5
- Latest release
- v1.4.0 (2026-10-19)
- Open issues
- 33
- Recent issues with at least one comment
- 0/1
Oldest week on the left; the latest four weeks are orange. Source: GitHub commit activity.
Status rule: archived on GitHub = Archived; last commit within 90 days = Active; 91 to 365 days = Slowing; older = Stale. All figures come from the GitHub API on the date shown.
Most discussed open issues
- #284 Google Jobs is currently unavailable6 comments · 2025-06-06
- #253 Is it possible to get job benefits and expiration date from indeed6 comments · 2025-03-02
- #238 [FEATURE REQUEST] Easy Apply Platforms3 comments · 2025-01-28
- #368 Feature: Scrape directly from company career website2 comments · 2026-06-23
- #242 Async Support2 comments · 2025-02-08
Issue titles are quoted from GitHub. Open the link to check whether a problem still applies to the version you use.
Compatibility
Quick start
Use cases
Alternatives
Comments
No comments yet. Be the first!