Overview
JobHunt is a desktop job intelligence platform built to automate the full job search pipeline — from multi-source scraping and YAML-driven scoring to AI-assisted application form filling. It runs as a native desktop app (Tauri 2) with a Go engine backend, React frontend, and SQLite storage, designed for correctness and repeatability across scheduled runs.
JobHunt Architecture
JobHunt connects multi-source job ingestion through a Go engine backend, scoring pipeline, and REST/SSE API layer to a Tauri desktop client — with an Auto Apply pipeline that drives Playwright-based form filling via Groq AI.
sources
Job Sources
Greenhouse, Lever, Workday, SmartRecruiters, IMAP/LinkedIn email.
engine
Go Engine
Core backend: ingestion, normalization, dedup, company discovery.
score
Scoring & Filtering
YAML-configurable rules rank and filter jobs per user criteria.
db
SQLite Storage
Canonical job and application records with safe reprocessing.
api
REST + SSE API
Local API server with SSE live-update stream (no polling).
apply
Auto Apply Pipeline
Playwright scrapes real form fields; Groq AI fills them; user reviews and submits.
keyring
OS Keyring / Secrets
Groq API key and IMAP credentials stored in the OS keyring.
client
Tauri Desktop Client
React 19 + TypeScript frontend; optional browser extension for Greenhouse/Lever.
Service / Data Flow
What I built
- Multi-source scraping across Greenhouse, Lever, Workday, SmartRecruiters, and IMAP/LinkedIn email with per-host rate limiting via a token-bucket algorithm
- Idempotent ingestion with normalization, deduplication, and safe reprocessing designed for repeatable scheduled runs
- YAML-driven scoring and filtering engine that ranks jobs against configurable criteria
- Company discovery layer supporting name search, Lever sitemap crawl, Greenhouse seed lists, and URL extraction
- REST API with SSE live-update stream so the frontend receives real-time pipeline events without polling
- Auto Apply pipeline: Playwright scrapes real application form fields, Groq AI (llama-3.3-70b) generates fill values, user reviews before Playwright injects and submits
- OS keyring integration for secure storage of the Groq API key and IMAP credentials
- Optional browser extension for assisted form filling on Greenhouse and Lever postings
- SQLite-backed storage with a clean store layer shared across the ingestion, scoring, and apply pipelines