Sign inSign up

madtomy/jobscraper-api

By madtomy

โ€ขUpdated about 1 month ago

FastAPI-based microservice for scraping and storing jobs

Image
Web servers
0

6.4K

madtomy/jobscraper-api repository overview

โ ๐Ÿง  JobScraper API

Build & Push Docker Pulls Image Size License

A FastAPI-based microservice for scraping and storing job listings from major job platforms like Indeed, LinkedIn, ZipRecruiter, and Google Jobs.


โ ๐Ÿš€ Quick Start

Run directly from Docker Hub:

docker run -d \
  --name jobscraper-api \
  -p 8000:8000 \
  -e DB_HOST=127.0.0.1 \
  -e DB_PORT=3306 \
  -e DB_USER=jobs \
  -e DB_PASSWORD=jobs_pw \
  -e DB_NAME=jobsdb \
  -e LOG_LEVEL=info \
  -e LOG_JSON=true \
  madtomy/jobscraper-api:latest

Access Swagger UI at: ๐Ÿ‘‰ http://localhost:8000/docsโ 


โ โš™๏ธ Environment Variables

VariableDescriptionDefault
APP_PORTApplication port8000
LOG_LEVELLogging level (debug, info, warning, error)info
LOG_JSONOutput structured JSON logstrue
DB_HOSTMySQL database hostโ€“
DB_PORTMySQL port3306
DB_USERMySQL usernameโ€“
DB_PASSWORDMySQL passwordโ€“
DB_NAMEDatabase namejobsdb
DB_POOL_SIZESQLAlchemy pool size10
DB_POOL_MAX_OVERFLOWConnection overflow limit20

โ ๐Ÿงฉ Features

  • ๐Ÿ” Multi-source job scraping
  • ๐Ÿ—„๏ธ Persistent MySQL storage (SQLAlchemy ORM)
  • ๐Ÿ“˜ Auto-generated Swagger UI (/docs)
  • โš™๏ธ Database migrations (Alembic)
  • ๐Ÿงพ Structured JSON logging (Loguru)
  • ๐Ÿณ Fully containerized (Docker & Compose support)

โ ๐Ÿงฑ Example Docker Compose

version: "3.9"

services:
  api:
    image: madtomy/jobscraper-api:latest
    container_name: jobscraper-api
    ports:
      - "8000:8000"
    environment:
      APP_ENV: production
      DB_HOST: 127.0.0.1
      DB_PORT: 3306
      DB_USER: jobs
      DB_PASSWORD: jobs_pw
      DB_NAME: jobsdb
      LOG_JSON: "true"
    restart: unless-stopped

Start it:

docker compose up -d

โ ๐Ÿง  Example API Usage

โ POST /scrape

Trigger a new scraping task:

{
  "site_name": ["indeed", "linkedin", "google"],
  "search_term": "software engineer",
  "google_search_term": "software engineer jobs near Berlin Germany since yesterday",
  "location": "Berlin",
  "results_wanted": 20,
  "hours_old": 72,
  "country_indeed": "Germany",
  "linkedin_fetch_description": true
}

โ ๐Ÿงพ License

Released under the MIT License ยฉ 2025 Madevโ 

Tag summary

Content type

Image

Digest

sha256:7b575fb0bโ€ฆ

Size

440.8 MB

Last updated

about 1 month ago

docker pull madtomy/jobscraper-api