Web & backend
JobPulse
One place for the whole job search.
The problem
Finding openings and keeping track of applications often happen in disconnected tools. A small self-hosted application can unify those workflows without needing a large infrastructure footprint.
The approach
- Build on the vendored jobhive / ats-scrapers library, scheduling ingestion and normalizing results into a local SQLite database.
- Use WAL mode, FTS5 full-text search, and synchronization triggers. Preserve application history separately from the expiring job feed.
- Serve JSON endpoints and an interactive FastAPI, Jinja2, and HTMX interface for browsing, applying, filtering, and reviewing scrape logs.
How it fits together
ATS scrapers
Ingestion
SQLite + FTS5
FastAPI
HTMX dashboard
The result
A cohesive self-hosted workflow for job discovery and application tracking, with per-run audit records and a searchable feed.
The engineering decision
SQLite and server-rendered interactions keep the application small. The project builds on an existing scraper library rather than claiming every connector as original work.