Loading Job Sentinel
Syncing the local engine and web surface.
Loading Job Sentinel
Syncing the local engine and web surface.

Job Sentinel
Local-first career automation
Open source · pip install job-sentinel
Job Sentinel watches your portals, tracks every posting and deadline, and generates ATS-ready résumés and cover letters tailored to each role by a local LLM. No API keys. No data leaving your machine.
The 2026 job market
242
applications per opening
Triple the 2021 volume. Spray-and-pray is dead — the edge is applying early, with a résumé that actually matches.
Huntr Q1 2026 ↗93%
have applied to a ghost job
Listings that were never real cost ~9 hours each. Watching real portals you already trust beats scrolling aggregators.
MyPerfectResume 2026 ↗66%
rejected by an AI, silently
Machines read your résumé before any human does. ATS-clean structure and keyword coverage aren't optional anymore.
Enhancv 2026 ↗How it works
Pluggable Playwright adapters watch your portals on a schedule — even Cloudflare-gated ones, via one-time session capture.
Every posting's lifecycle in SQLite: new → seen → applied → closed, with parsed deadlines and instant Telegram + email alerts.
Keyword + semantic-embedding ranking reorder your profile per posting; a local LLM rephrases bullets with no-fabrication guards.
One click renders an ATS-clean LaTeX résumé and cover letter as PDF — you stay in control of the final submit.
Capabilities
An Ollama-served model rewrites your bullets toward each posting under a strict no-fabrication contract — output is JSON-validated, and anything off keeps your original words. Semantic embeddings rank what leads.
resume build --ai --semanticSingle-column LaTeX compiled with Tectonic: real selectable text, standard fonts, parser-safe structure — with the .tex saved next to it.
resume build -o resume.pdfFree-form deadline parsing flags anything closing within your window, in alerts and on demand.
/deadlinesRich Telegram messages with inline commands, plus optional SMTP email digests — both fan out from one scheduler.
telegram + emailEach portal is one adapter file behind a typed interface. Gated university portals included — sessions captured once, reused headlessly.
SITE_ADAPTER=12twentyThe landscape
Trackers, builders, and auto-apply bots each solve a slice — in someone else’s cloud, with your career data as the price. Job Sentinel is the integrated loop, running entirely on your machine.
| Tool | Open source | Data stays local | Cost | Portal monitoring | The catch |
|---|---|---|---|---|---|
| Job Sentinelthis | ✓Yes | ✓Yes | Free forever | ✓Yes | One pipeline: watch → track → tailor → apply |
| Simplify / Teal / Huntr | —No | —No | Freemium | —No | Cloud SaaS — your career data lives on their servers |
| AIHawk (archived May 2026) | ✓Yes | —No | Cloud API keys | —No | Auto-apply bot — project archived; LinkedIn ToS ban risk |
| AI auto-apply bots | ✓Yes | —No | Cloud API keys | —No | Mass-submit on LinkedIn — ToS violations, account bans |
| Resume builders (OSS) | ✓Yes | —No | Free + API keys | —No | Documents only — no portal watching, no tracking |
Migrating from AIHawk?
AIHawk (29.9k stars) shut down in May 2026 after LinkedIn aggressively blocked mass auto-apply bots. Job Sentinel takes the opposite bet: quality over volume, local-first privacy, and a workflow that doesn’t risk your account.
AIHawk tried to submit hundreds of applications for you — and got burned. Job Sentinel helps you apply smarter: AI-tailored résumés, ATS scoring, and deadline radar so every application counts.
AIHawk required cloud API keys and sent your résumé data through third-party services. Job Sentinel runs entirely on your hardware — SQLite locally, Ollama locally, no cloud.
Open-source (MIT), published on PyPI, typed end-to-end, and built for longevity. No corporate dependency, no sudden shutdown — fork it, audit it, run it forever.
pip install job-sentinel— no sign-up requiredBuilt like production software
Open the repo and judge it the way a staff engineer would: typed end to end, tested, gated, documented (HLD, LLD, ADRs), released, and honest about its trade-offs.
9
CI gates on every PR
lint · types · tests ×3 · secrets · supply chain · web lint+test+build · scorecard
0
known CVEs shipped
pip-audit scans the dependency tree; strong-copyleft licenses are blocked
100%
strict-typed Python
mypy --strict across the whole src tree, pydantic v2 at every boundary
4
releases on PyPI
tag → build → GitHub Release → PyPI, fully automated and secret-gated
Private by default
Credentials live in a local .env. Sessions, history, and your profile live in local files. The AI runs on your own GPU via Ollama. There is no cloud, no telemetry, and no API key — by architecture, not by promise.
pip install job-sentinel
job-sentinel resume init # your universal profile
job-sentinel web # this web app