An evidence-grounded, local-first co-pilot for the senior job search.
ZenGrowth ingests roles from public ATS feeds, scores each one with Claude using an explainable expected-value formula, and turns a job description into a tailored CV and cover letter grounded in your own verified evidence. It runs locally — your data stays on disk and leaves only on the LLM calls you trigger — and writes every ingest, score, and edit to an audit log.
Product framing
Senior job hunting is high-effort and low-signal: roles are scattered across ATS feeds, descriptions are noisy, and generic applications waste the short window where applying matters. Most AI writing tools also invent claims. ZenGrowth narrows the loop — discover, score, tailor — while refusing to fabricate facts and keeping personal data local.
Built to narrow the loop without inventing facts.
ZenGrowth combines compliant discovery, explainable scoring, evidence-grounded generation, and end-to-end auditability in one local-first system.
Compliant discovery from public Greenhouse and Lever JSON feeds only — no scraping
Explainable per-dimension scoring resolves to an expected-value ranking signal
Evidence-grounded generation with hard anti-fabrication gates
Reliability guards: ingestion heartbeat, readiness probe, default-off spend cap, and a k-anonymized public view
A staged loop from discovery to a finalized application.
Each stage is cost-aware and audited, so results stay inspectable and grounded.
Discover
Pull roles from public ATS feeds or paste a job description directly.
Dedup and precheck
Drop duplicates and stale rows, and archive obvious non-targets with no LLM cost.
Score
One strict-JSON Claude call returns per-dimension scores, a rationale, and expected value.
Generate
Produce a structure-preserving CV and cover letter grounded in approved evidence.
Review and finalize
Preview, request plain-language changes, and mark final — every step audited.
Grounded, auditable, and local by design.
The emphasis is on refusing to fabricate, keeping decisions reconstructable, and keeping personal data on your machine.
Grounded by construction
Generated claims must map to verified evidence — unsupported figures and entities are blocked, not softened.
Auditable end to end
Every ingest, score, and edit is logged and streamed live, so decisions can be reconstructed.
Local-first and fail-closed
SQLite and local files keep data on your machine; it leaves only on explicit LLM or discovery calls, with keys encrypted at rest.
A fail-closed app behind a single public edge.
ZenGrowth pairs a small, internal-only FastAPI core with discovery and LLM tooling, kept compliant and inspectable.
Compliant discovery, explainable scoring, grounded generation.
The system reads only public ATS JSON, scores each role with a deterministic, explainable call, and grounds every generated line in approved evidence. Nothing ships to production unprotected, and nothing is published that the evidence cannot support.
Privacy, compliance, and reliability are first-class.
The system enforces hard limits on data, spend, and fabrication, and keeps every run inspectable.
Hard limits sit above model output.
- Internal API fails closed without operator credentials
- Discovery limited to public ATS JSON — no scraping
- Default-off daily spend cap on LLM usage
- Generated text blocked when it introduces unverified numbers or entities
- k-anonymized public view for any shared data
- 303 automated tests with ruff, pytest, and frontend checks in CI
- Docker Compose deployment behind an nginx edge
- Audit log streamed live over SSE
- Readiness probe and ingestion heartbeat
- Secrets hashed with PBKDF2-SHA256 and keys encrypted at rest
Early beta, drafts for review.
ZenGrowth assists the work; it does not replace your judgment or guarantee outcomes.
ZenGrowth is an early beta (v0.1.0). It assists discovery and drafting — it does not promise interviews, offers, or job outcomes. Generated materials are drafts for human review, any performance or cost figures are project targets rather than benchmarks, and the example names and companies in the public repo are synthetic fixtures.