# JobSpy

Aggregates job listings from LinkedIn, Indeed, Glassdoor, and regional boards into your AI client. Helps filter search results by location and remote preference.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 4552
- Author: speedyapply
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/speedyapply/JobSpy
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/jobspy

## What it does

The server exposes the `python-jobspy` scraper to MCP-compatible environments via `uvx`. It queries several job boards concurrently, including LinkedIn, Indeed, ZipRecruiter, Glassdoor, plus international platforms such as Bayt, BDJobs, Naukri, and HelloWork. Found postings arrive structured with job titles and salary brackets.

You can tune search filters directly in prompt instructions. The scraper handles constraints for distance in miles, job type, posting age in hours, and remote availability. Vacancy descriptions can be returned as Markdown or HTML.

Fetching detailed descriptions sends an extra HTTP request for each individual post on certain boards. Without a configured list of proxies, large batch searches quickly trigger anti-scraping IP bans. Python 3.10 or newer is required to run the tool.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Works with: LinkedIn

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add jobspy -- uvx mcp-jobspy
```
uvx runs the command named after the package; if the README names another one, use uvx --from mcp-jobspy <command>

### Codex

**Platform CLI**
```bash
codex mcp add jobspy -- uvx mcp-jobspy
```
uvx runs the command named after the package; if the README names another one, use uvx --from mcp-jobspy <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "jobspy": {
            "command": "uvx",
            "args": [
                "mcp-jobspy"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from mcp-jobspy <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "jobspy": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "mcp-jobspy"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from mcp-jobspy <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add jobspy uvx mcp-jobspy
```
uvx runs the command named after the package; if the README names another one, use uvx --from mcp-jobspy <command>

## When to use it
- scrape job postings concurrently across several hiring platforms
- filter vacancies by posting age, distance, and remote availability
- retrieve full vacancy descriptions formatted as Markdown
- route scraping requests through proxies to prevent rate limiting

## Example prompts
- Find remote data analyst jobs on LinkedIn and Indeed posted within the last 72 hours.
- Collect 20 Python developer positions in Chicago from Glassdoor with salary details.
- Search ZipRecruiter for systems engineer openings and fetch full job descriptions.

## Similar
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [AIHawk](https://affpapa.org/en/nevibecode/mcp/aihawk.md) — MCP server · ★ 32221
- [Robin: AI-Powered Dark Web OSINT](https://affpapa.org/en/nevibecode/mcp/robin-ai-powered-dark-web-osint.md) — MCP server · ★ 7658
- [e2e](https://affpapa.org/en/nevibecode/mcp/e2e.md) — MCP server · ★ 11912
- [treg.to](https://affpapa.org/en/nevibecode/mcp/tregto.md) — MCP server · ★ 6026

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
