job-crawler API
On-demand job search across Craigslist, Indeed & Monster. Hybrid ranking: pay/location filters + semantic similarity (OpenAI embeddings). All endpoints return JSON; a failing source degrades to a diagnostic, never an error.
POST/search
Search jobs
Crawls the selected sources live, normalizes + dedupes, then ranks. Returns 200 even
if every source fails (see diagnostics).
| Field | Type | Description |
|---|---|---|
| queryrequired | string | Keyword search; also the default semantic-match text. |
| description | string | Richer text for semantic ranking (overrides query for embeddings). |
| location.postal | string | ZIP. Geocoded server-side for the radius search. |
| location.city | string | "City, ST" (alternative to postal). |
| location.radius_mi | int 1–500 | Search radius. Default 30. |
| sources | string[] | craigslist·indeed·monster. Default ["craigslist"]. |
| limit | int 1–100 | Max results returned. Default 25. |
sources
none checked →
"sources": [] · remove the field → all enabled
Request body
Response
Pick a preset, then Send (⌘/Ctrl+Enter).
GET/health
Liveness
DB connectivity, enabled sources, embedding backend.
loading…
GET/health/sources
Source health
Per-source circuit state, last success, rolling ok/err counts.
loading…