Install JobSpy
If you haven’t installed JobSpy yet, install it with pip:Python 3.10 or higher is required. See Installation for full details.
Import and call scrape_jobs()
Import
scrape_jobs from the jobspy package and run your first search:scrape_jobs() runs all specified boards concurrently and returns a single Pandas DataFrame.View results
Print a summary and preview the first few rows:The DataFrame contains the following key columns:
| Column | Description |
|---|---|
id | Platform-specific job identifier |
site | Job board the posting came from (e.g. indeed, linkedin) |
job_url | URL to the job posting |
job_url_direct | Direct employer application URL, when available |
title | Job title |
company | Company name |
location | City, state, and/or country as a display string |
date_posted | Date the job was posted |
job_type | Employment type: fulltime, parttime, internship, contract |
salary_source | direct_data or description (where salary was found) |
interval | Salary pay period: yearly, monthly, weekly, daily, hourly |
min_amount | Minimum salary amount |
max_amount | Maximum salary amount |
currency | Currency code (e.g. USD) |
is_remote | Whether the job is remote |
description | Full job description (Markdown by default) |
Export results
Save your results to CSV or Excel for further analysis.
Use
quoting=csv.QUOTE_NONNUMERIC and escapechar="\\" when exporting to CSV. Job descriptions often contain commas, quotes, and newlines that will break a plain CSV export.Your job results are now saved and ready for filtering, analysis, or loading into a database.
Complete example
Here is the full working script from start to finish:Next steps
scrape_jobs() reference
Full parameter reference for
scrape_jobs(), including filtering, proxy, and LinkedIn optionsJob board guides
Per-board usage notes, rate limit behavior, and country support
