Skip to content

About

πŸ”πŸ’Ό Real-time remote job aggregator from multiple public APIs (FastAPI + vanilla JS)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JobHunt App πŸ”πŸ’Ό

Real-time remote job aggregator from multiple public APIs

Python FastAPI CI License

Features

  • 🌐 Multi-source aggregation β€” Remotive, Arbeitnow, RemoteOK
  • πŸ” Real-time search β€” Filter by title, company, tags, or description
  • πŸ“‚ Category filtering β€” Software dev, data science, AI/ML, design, etc.
  • 🏷️ Source badges β€” See where each job was sourced from
  • πŸ”– Save/bookmark jobs β€” Persisted in localStorage
  • πŸŒ— Dark / Light theme β€” Toggle with preference saved
  • πŸ“₯ Export to CSV β€” Download filtered results
  • πŸ“‹ Job detail modal β€” Click any card to view full details
  • πŸ“„ Pagination β€” Load more without refreshing
  • πŸ”ƒ Sorting β€” By date, title, or company
  • ⚑ Backend caching β€” 5-minute LRU cache to reduce API calls
  • πŸ§ͺ Test suite β€” Unit tests for helpers and API endpoints
  • πŸš€ CI pipeline β€” Automated tests on push (Python 3.9–3.12)

Tech Stack

Layer Technology
Backend FastAPI (Python)
Frontend Vanilla HTML/CSS/JS
HTTP httpx (async)
Testing pytest + pytest-asyncio
CI/CD GitHub Actions
Styling Custom CSS (dark + light themes)
Fonts Inter (Google Fonts)

Quick Start

1. Start the backend

cd backend
pip install -r requirements.txt
python main.py

API runs at http://localhost:8000

2. Open the frontend

cd frontend
python -m http.server 3000
# Open http://localhost:3000

Or just open frontend/index.html directly in your browser.

API Endpoints

Method Endpoint Description
GET /api/jobs Get aggregated jobs (with filters + pagination)
GET /api/jobs/export Export as CSV or JSON
GET /api/categories List available categories
GET /api/stats Live stats from all sources
GET /api/health Health check + version info
POST /api/cache/clear Clear the response cache

Query Parameters

GET /api/jobs?category=software-development&search=python&source=Remotive&sort=date&page=1&per_page=30
  • category β€” Filter by job category
  • search β€” Search in title, company, description, tags
  • source β€” Filter by specific source
  • sort β€” Sort by date, title, or company
  • page β€” Page number (default: 1)
  • per_page β€” Items per page (default: 30, max: 100)

Categories

  • All Jobs
  • Software Development
  • Data Science
  • Design
  • Marketing
  • DevOps
  • AI / ML
  • Data Annotation
  • Customer Support

Job Sources

Source Auth Coverage
Remotive None Remote jobs across categories
Arbeitnow None Remote & EU jobs
RemoteOK None Global remote jobs

Project Structure

job-hunt-app/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ main.py              # FastAPI server + aggregators + cache
β”‚   └── requirements.txt     # Python dependencies
β”œβ”€β”€ frontend/
β”‚   └── index.html           # Single-page app (dark/light theme)
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── test_main.py         # Unit + integration tests
β”œβ”€β”€ .github/
β”‚   └── workflows/
β”‚       └── ci.yml           # CI pipeline (test + lint)
β”œβ”€β”€ pyproject.toml           # Project metadata
β”œβ”€β”€ LICENSE                  # MIT
└── README.md                # This file

Running Tests

cd backend
pip install -r requirements.txt pytest pytest-asyncio
cd ../tests
python -m pytest -v

License

MIT β€” see LICENSE for details.

Built by Antorm

About

πŸ”πŸ’Ό Real-time remote job aggregator from multiple public APIs (FastAPI + vanilla JS)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages