mirror of https://github.com/Bunsly/JobSpy
glassdoorindeedinternshipjob-scraperjob-searchjobs-scraperjobs-searchjobsearchjobseekerlinkedinlinkedin-scraperremote-jobremote-jobsremote-workziprecruiter
d48778838e | ||
---|---|---|
api | ||
postman | ||
.gitignore | ||
README.md | ||
main.py | ||
requirements.txt | ||
settings.py |
README.md
JobSpy Scraper
Features
- Scrapes job postings from LinkedIn, Indeed, ZipRecruiter
- Returns jobs with title, location, company, and other data
- JWT authorization
Endpoints
Jobs Endpoint
Endpoint: /api/v1/jobs/
Parameters:
- site_type: str (Required) - Options:
linkedin
,zip_recruiter
,indeed
- search_term: str (Required)
- location: int
- distance: int
- job_type: str - Options:
fulltime
,parttime
,internship
,contract
- is_remote: bool
- results_wanted: int
- easy_apply: bool (Only for LinkedIn)
Installation
Python >= 3.10 required
- Clone this repository
- Install the dependencies with
pip install -r requirements.txt
- Add
.env
with variables from above - Run the server with
uvicorn main:app --reload
Usage
Visit http://localhost:8000/docs to see the interactive API documentation.
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 32
in terminal to create a 32 byte secret key