Skip to content
ZenGrowth

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.

Read the R&D brief: grounding as a hard gate

active

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.

Capability 303 automated tests enforced in CI
Capability ~10-dimension explainable scoring + expected-value formula
Capability PBKDF2-SHA256 password hashing at 600,000 iterations
Stack
  • Python
  • FastAPI
  • SQLModel
  • React 19
  • Claude
  • Tavily
  • SQLite
  • Docker
Why ZenGrowth

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.

A single public edge (nginx) sits in front of an internal-only FastAPI app that fails closed without operator credentials

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

How it works

A staged loop from discovery to a finalized application.

Each stage is cost-aware and audited, so results stay inspectable and grounded.

Step 01

Discover

Pull roles from public ATS feeds or paste a job description directly.

Step 02

Dedup and precheck

Drop duplicates and stale rows, and archive obvious non-targets with no LLM cost.

Step 03

Score

One strict-JSON Claude call returns per-dimension scores, a rationale, and expected value.

Step 04

Generate

Produce a structure-preserving CV and cover letter grounded in approved evidence.

Step 05

Review and finalize

Preview, request plain-language changes, and mark final — every step audited.

Differentiation

Grounded, auditable, and local by design.

The emphasis is on refusing to fabricate, keeping decisions reconstructable, and keeping personal data on your machine.

Grounding

Grounded by construction

Generated claims must map to verified evidence — unsupported figures and entities are blocked, not softened.

Audit

Auditable end to end

Every ingest, score, and edit is logged and streamed live, so decisions can be reconstructed.

Privacy

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.

Architecture and ecosystem

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.

Core architecture

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.

Ecosystem
  • Anthropic
  • OpenAI
  • Tavily
  • Greenhouse
  • Lever
  • Docker
  • nginx
  • GitHub Actions
Governance and operations

Privacy, compliance, and reliability are first-class.

The system enforces hard limits on data, spend, and fabrication, and keeps every run inspectable.

Guardrails

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
Operational signals
  • 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
Disclaimer

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.