Jobs scraper library for LinkedIn, Indeed, Glassdoor & ZipRecruiter
Go to file
Cullen a6379110c2
docs: update README.md
2023-08-23 18:07:55 -05:00
api feat: optional auth 2023-08-19 20:31:10 -05:00
postman chore: update postman 2023-08-19 19:05:02 -05:00
.gitignore feat(auth): add auth to jobs endpoint 2023-07-10 22:23:05 -05:00
README.md docs: update README.md 2023-08-23 18:07:55 -05:00
main.py chore: clean up 2023-08-19 18:46:03 -05:00
requirements.txt feat(users): add register route 2023-07-10 22:23:16 -05:00
settings.py feat: optional auth 2023-08-19 20:31:10 -05:00

README.md

JobSpy Scraper

Features

  • Scrapes job postings from LinkedIn, Indeed, ZipRecruiter
  • Returns jobs with title, location, company, and other data
  • JWT authorization

jobspy

Endpoints

image

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)

Example

image

Response

Schema

JobResponse

  • success: bool - Indicates if the request was successful.
  • error: str - Any error messages, null if no error.
  • jobs: list[JobPost] - A list of job postings.
  • total_results: int - Total number of results found.
  • returned_results: int - Number of results returned in this request.

JobPost

  • title: str - Title of the job.
  • company_name: str
  • job_url: str
  • location: object - (country, city, state, postal_code, address)
  • description: str
  • job_type: str - Options: fulltime, parttime, internship, contract
  • compensation: object - Contains: interval, min_amount, max_amount, currency
  • date_posted: str

Example

image

Installation

Python >= 3.10 required

  1. Clone this repository
  2. Install the dependencies with pip install -r requirements.txt
  3. 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 URL
  • SUPABASE_KEY: go to project settings -> API -> service_role secret
  • JWT_SECRET_KEY - type openssl rand -hex 32 in terminal to create a 32 byte secret key