> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/speedyapply/JobSpy/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> JobSpy is a Python library that scrapes job postings concurrently from LinkedIn, Indeed, Glassdoor, Google, ZipRecruiter, and more.

<img src="https://github.com/cullenwatson/JobSpy/assets/78247585/ae185b7e-e444-4712-8bb9-fa97f53e896b" alt="JobSpy" width="400" />

## What is JobSpy?

JobSpy is a powerful job scraping library with the goal of aggregating job postings from all the popular job boards with a single tool. It scrapes concurrently and returns results as a clean Pandas DataFrame — ready to filter, analyze, or export.

<CardGroup cols={2}>
  <Card title="Quick Start" icon="rocket" href="/quickstart">
    Get up and running in under 5 minutes with a working example
  </Card>

  <Card title="Installation" icon="download" href="/installation">
    Install JobSpy via pip — requires Python 3.10+
  </Card>

  <Card title="API Reference" icon="code" href="/reference/scrape-jobs">
    Full reference for the `scrape_jobs()` function and all parameters
  </Card>

  <Card title="Job Boards" icon="briefcase" href="/job-boards/linkedin">
    Per-board usage notes, limitations, and tips
  </Card>
</CardGroup>

## Key features

<CardGroup cols={2}>
  <Card title="8 job boards" icon="globe">
    Scrape LinkedIn, Indeed, Glassdoor, Google, ZipRecruiter, Bayt, Naukri, and BDJobs from one function call
  </Card>

  <Card title="Concurrent scraping" icon="bolt">
    All boards are scraped simultaneously using `ThreadPoolExecutor` for maximum speed
  </Card>

  <Card title="Pandas DataFrame output" icon="table">
    Results are returned in a structured DataFrame — filter, sort, export to CSV/Excel with ease
  </Card>

  <Card title="Proxy support" icon="shield">
    Round-robin proxy rotation to bypass rate limiting on restrictive job boards
  </Card>

  <Card title="60+ countries" icon="map">
    Indeed and Glassdoor support country-specific searches across 60+ countries worldwide
  </Card>

  <Card title="Salary normalization" icon="dollar-sign">
    Automatically extract and normalize salaries to annual amounts across all pay intervals
  </Card>
</CardGroup>

## Supported job boards

| Job Board    | Site Name       | Coverage                    |
| ------------ | --------------- | --------------------------- |
| LinkedIn     | `linkedin`      | Global                      |
| Indeed       | `indeed`        | 60+ countries               |
| Glassdoor    | `glassdoor`     | 20+ countries               |
| Google Jobs  | `google`        | Global                      |
| ZipRecruiter | `zip_recruiter` | US & Canada                 |
| Bayt         | `bayt`          | Middle East & International |
| Naukri       | `naukri`        | India                       |
| BDJobs       | `bdjobs`        | Bangladesh                  |

## Installation

```bash theme={null}
pip install -U python-jobspy
```

<Note>
  Python 3.10 or higher is required. See [Installation](/installation) for full setup details.
</Note>

## Basic usage

```python theme={null}
import csv
from jobspy import scrape_jobs

jobs = scrape_jobs(
    site_name=["indeed", "linkedin", "zip_recruiter", "google"],
    search_term="software engineer",
    location="San Francisco, CA",
    results_wanted=20,
    hours_old=72,
    country_indeed="USA",
)
print(f"Found {len(jobs)} jobs")
jobs.to_csv("jobs.csv", quoting=csv.QUOTE_NONNUMERIC, escapechar="\\", index=False)
```

## License

JobSpy is open source under the [MIT License](https://github.com/speedyapply/JobSpy/blob/master/LICENSE).
