Skip to main content
Once you’ve set up the JobSpy MCP server, you can use it to search for jobs and fetch job details directly from your AI assistant.

Available Tools

JobSpy exposes two MCP tools:

scrape_jobs

Scrape job listings from multiple job boards (LinkedIn, Indeed, Glassdoor, Google, ZipRecruiter, Bayt, Naukri, BDJobs). Parameters:
ParameterTypeDefaultDescription
site_namestring[]all sitesJob boards to scrape (optional)
search_termstringJob title or search query
google_search_termstringOverride search term for Google Jobs only
locationstringJob location (e.g., “San Francisco, CA”)
distancenumber50Search radius in miles
is_remotebooleanfalseFilter for remote jobs only
job_typestringFilter by type: fulltime, parttime, contract, internship
results_wantednumber10Number of results to return per site
country_indeedstring"usa"Country for Indeed/Glassdoor (e.g., usa, uk, canada)
hours_oldnumberFilter jobs posted within last N hours
description_formatstring"markdown"Format: markdown, html, or plain
linkedin_fetch_descriptionbooleanfalseFetch full LinkedIn descriptions (slower)
indeed_fetch_descriptionbooleanfalseFetch full Indeed job pages/descriptions
Returns: A formatted list of jobs with titles, companies, locations, URLs, salaries, and posting dates.

fetch_job

Fetch full details for a single job by its provider-specific ID. Parameters:
ParameterTypeRequiredDescription
sitestringYesJob board: linkedin, indeed, zip_recruiter, glassdoor, google, bayt, naukri, bdjobs
job_idstringYesProvider-specific job ID
description_formatstringNoFormat: markdown (default), html, or plain
Returns: Full job details as JSON, including complete description, requirements, benefits, and metadata.

Usage Examples

Simply ask Claude to search for jobs using natural language:
Find me 20 software engineer jobs in Seattle
Claude will automatically call the scrape_jobs tool with appropriate parameters and return formatted results.

Advanced Searches

Find contract software engineer positions in San Francisco within 25 miles
Claude will use:
  • search_term: "software engineer"
  • location: "San Francisco, CA"
  • job_type: "contract"
  • distance: 25

Fetching Job Details

After getting search results, you can ask Claude to fetch full details for specific jobs:
Get the full job description for LinkedIn job ID 4127292817
Claude will call fetch_job with:
  • site: "linkedin"
  • job_id: "4127292817"
This returns the complete job posting including:
  • Full description (with formatting)
  • Company information
  • Salary details
  • Job requirements
  • Benefits
  • Application instructions

Example Workflow

1
Search for relevant jobs
2
Find 15 senior backend engineer positions in San Francisco on LinkedIn and Indeed
3
Claude returns a list of jobs with titles, companies, and URLs.
4
Review and select
5
Claude presents results like:
6
1. **Senior Backend Engineer**
   Company: Stripe
   Location: San Francisco, CA
   URL: https://linkedin.com/jobs/view/4127292817
   Posted: 2026-03-04
   Salary: $150,000 - $220,000 (yearly)
   Type: fulltime

2. **Backend Software Engineer (Senior)**
   Company: Airbnb
   Location: San Francisco, CA (Remote)
   URL: https://indeed.com/viewjob?jk=abc123
   ...
7
Get full details
8
Show me the full description and requirements for the Stripe position (job #1)
9
Claude extracts the job ID from the URL and fetches complete details.
10
Compare or analyze
11
Compare the salary ranges and requirements for the first three positions
12
Claude can analyze and summarize information across multiple jobs.

Supported Job Boards

Sitesite_name ValueNotes
LinkedInlinkedinHTML scraping; may require credentials for high volume
IndeedindeedGraphQL API; supports 60+ countries
GlassdoorglassdoorGraphQL API; uses same country parameter as Indeed
Google JobsgoogleRequires Playwright; use clean residential IP
Google Careersgoogle_careersJobs at Google the company specifically
ZipRecruiterzip_recruiterWeb scraping
BaytbaytMiddle East job board
NaukrinaukriIndia job board (REST API)
BDJobsbdjobsBangladesh job board (REST API)

Response Format

The scrape_jobs tool returns formatted text with job listings:
Found 15 jobs:

1. **Software Engineer**
   Company: Example Corp
   Location: San Francisco, CA
   URL: https://linkedin.com/jobs/view/123456
   Posted: 2026-03-05
   Salary: $120,000 - $180,000 (yearly)
   Type: fulltime

2. **Senior Software Engineer**
   Company: Tech Startup
   Location: Remote
   URL: https://indeed.com/viewjob?jk=abc123
   Posted: 2026-03-04
   Type: fulltime

...
The fetch_job tool returns complete job details as structured JSON:
{
  "id": "4127292817",
  "site": "linkedin",
  "title": "Senior Software Engineer",
  "company": "Stripe",
  "location": "San Francisco, CA",
  "job_type": ["fulltime"],
  "date_posted": "2026-03-04",
  "job_url": "https://linkedin.com/jobs/view/4127292817",
  "job_url_direct": "https://jobs.stripe.com/o/senior-software-engineer",
  "description": "## About the role\n\nWe're looking for...",
  "company_industry": "Financial Services",
  "job_level": "mid-senior level",
  "min_amount": 150000,
  "max_amount": 220000,
  "currency": "USD",
  "interval": "yearly",
  "is_remote": false
}

Tips and Best Practices

Begin with a general search across multiple sites, then refine:
  1. “Find software engineer jobs in Seattle”
  2. Review results and identify patterns
  3. “Now search only LinkedIn for senior backend engineer positions in Seattle with salaries above $150k”
When actively searching for jobs, use hours_old to see only fresh postings:
Find jobs posted in the last 24 hours for "frontend developer" in NYC
This helps you apply early before positions get flooded with applications.
Full job fetches are slower (especially on LinkedIn). Only request full details for jobs that look promising from the initial search results.
Get full details for jobs 1, 3, and 5 from the previous search
Different sites have different strengths:
  • LinkedIn: Tech jobs, networking opportunities, company culture
  • Indeed: Broad coverage, all industries
  • Glassdoor: Salary data, company reviews
  • Google Jobs: Aggregates from multiple sources
  • ZipRecruiter: Quick apply options
Target specific sites based on your needs:
Search LinkedIn and Glassdoor for "data analyst" jobs so I can see salaries and reviews
If you get rate-limited (especially on LinkedIn):
  1. Reduce results_wanted to 10-15 per site
  2. Wait a few minutes before trying again
  3. Use credentials if available (see Setup)
  4. Consider using a proxy
Ask Claude to adjust parameters:
Try that search again but only get 10 results per site

Common Patterns

Job Hunt Automation

I'm looking for remote senior software engineer positions focused on Python and AWS.
Search the major job boards for recent postings (last 48 hours), filter for remote only,
and show me positions with salary information. Then get full details for the top 3 matches.

Market Research

Search for "machine learning engineer" jobs in San Francisco, Seattle, and New York.
Tell me which location has the most openings and what the salary ranges look like.

Company-Specific Searches

While you can’t directly filter by company in the MCP tools, you can ask Claude to search and filter:
Find software engineer jobs on LinkedIn in Seattle, then show me only positions at 
Amazon, Microsoft, or Google.

Follow-up Queries

Claude maintains context, so you can refine searches iteratively:
Search for "frontend developer" jobs in Austin

[results returned]

Now narrow that to React-specific roles posted in the last week

[results returned]

Get full details for the first two positions

Limitations

  • Rate limiting: Job boards may rate-limit requests. If you get errors, reduce results_wanted or wait before retrying.
  • Google Jobs: Requires Playwright and a clean IP address. May not work behind some VPNs or from datacenter IPs.
  • LinkedIn: Frequent rate limiting for anonymous users. Consider adding credentials via environment variables.
  • Dynamic content: Some job descriptions may not render perfectly in markdown format. Try html or plain format instead.

Next Steps

SDK Usage

Use JobSpy programmatically in your own applications

CLI Usage

Run JobSpy from the command line

Build docs developers (and LLMs) love