mirror of
https://github.com/Bunsly/JobSpy.git
synced 2026-03-04 11:34:47 -08:00
369b1cffd66095f838628abd37113fd871c03f99
JobSpy AIO Scraper
Features
- Scrapes job postings from LinkedIn, Indeed & ZipRecruiter simultaneously
- Returns jobs with title, location, company, description & other data
- Optional JWT authorization
API
POST /api/v1/jobs/
Request Schema
Example
{
"site_type": ["linkedin", "indeed"],
"search_term": "software engineer",
"location": "austin, tx",
"distance": 10,
"job_type": "fulltime",
"results_wanted": 10
}
Parameters:
Required
- site_type: List[str] -
linkedin,zip_recruiter,indeed - search_term: str
Optional
- location: int
- distance: int
- job_type: str -
fulltime,parttime,internship,contract - is_remote: bool
- results_wanted: int (per
site_type) - easy_apply: bool (only for
linkedIn)
Response Schema
Example
JobResponse
-
success: bool - Indicates if the request was successful
-
error: str
-
jobs: list[JobPost]
-
JobPost
- title: str
- company_name: str
- job_url: str
- location: object - (country, city, state, postal_code, address)
- description: str
- job_type: str -
fulltime,parttime,internship,contract - compensation: object - Contains:
interval,min_amount,max_amount,currency - date_posted: str
-
-
total_results: int
-
returned_results: int
Installation
Python >= 3.10 required
- Clone this repository
git clone https://github.com/cullenwatson/jobspy - Install the dependencies with
pip install -r requirements.txt - Run the server with
uvicorn main:app --reload
Usage
To see the interactive API documentation, visit localhost:8000/docs.
For Postman integration:
- Import the Postman collection and environment JSON files from the
/postman/folder.
FAQ
I'm having issues with my queries. What should I do?
Broadening your filters can often help. Additionally, try reducing the number of results_wanted.
If issues still persist, feel free to submit an issue.
How to enable auth?
Change AUTH_REQUIRED in /settings.py to True
The auth uses supabase. Create a project with a users table and disable RLS.
Add these three environment variables:
SUPABASE_URL: go to project settings -> API -> Project URLSUPABASE_KEY: go to project settings -> API -> service_role secretJWT_SECRET_KEY- typeopenssl rand -hex 32in terminal to create a 32 byte secret key
Use these endpoints to register and get an access token:
Description
Jobs scraper library for LinkedIn, Indeed, Glassdoor & ZipRecruiter
glassdoorindeedinternshipjob-scraperjob-searchjobs-scraperjobs-searchjobsearchjobseekerlinkedinlinkedin-scraperremote-jobremote-jobsremote-workziprecruiter
Readme
MIT
4.3 MiB
Languages
Python
100%