HunterStahl: CV Generation Platform
AI-augmented professional positioning platform — users own their data, bring their own AI keys, and forge role-targeted resumes with snapshot share links, branded PDFs, and an admin command center.

Most resume tools lock work inside a proprietary editor, charge for every PDF export, and slap a generic AI Assistant button on top of an opaque vendor API. HunterStahl is the alternative: an AI-augmented professional identity platform where the user owns the data, brings their own AI keys, and ships role-targeted resumes with snapshot share links, recruiter-side view analytics, and an admin command center the operator controls end-to-end.
The problem it solves
Resume.io and Canva-style builders run on a familiar economic model — $24.95/month for the privilege of exporting your own work, with the formatting trapped inside a proprietary editor. Cancel the subscription and the carefully tuned layout becomes a screenshot. A typical mid-career operator pays $300+/year for tooling that owns their CV more than they do, and re-tunes the same six bullets four times a year because every job description needs a different angle.
The AI bolt-ons make this worse, not better. A Tailor-to-JD button on a hosted SaaS sends opaque prompts to an opaque model on the vendor's account, with zero visibility into what is being sent, no choice of provider, and no way to bring an enterprise OpenAI key already paid for. For anyone serious about their professional positioning — founders pitching three different identities, senior product leaders changing roles every 24 months, contractors hunting six-figure engagements — those tools are a bottleneck dressed up as a service. HunterStahl removes both problems at once by treating each resume as a JSON block tree the user owns, and treating AI as plumbing the user controls.
Who needs this most
Three personas with the same underlying pain point: their professional identity is plural, they iterate it weekly, and they refuse to trade data ownership for convenience.
- Senior product, engineering, and growth leaders who manage 3-5 role-targeted CVs at once — the operator who needs a Founder, Head of Growth, and Senior PM version side-by-side, with shared base content and per-version tailoring. They re-export PDFs for every recruiter conversation.
- Solo founders and consultants pitching outside hiring cycles — when the audience is investors, partners, or premium clients, the document is a pitch, not a resume. Branded share links with view analytics matter more than templates.
- Boutique recruiting agencies and small talent teams — outfits that need to host candidate resumes under their own brand, annotate them, and forward them to clients without exporting a static PDF. The Phase 4 Team tier targets this segment directly.
The moment this hurts: any week when an operator updates the same three bullets in three places, exports three PDFs, attaches them to three emails, and has no idea who actually opened them.
The solution — in plain terms
HunterStahl is a self-hosted (or operator-managed) platform built around three ideas.
First, the resume is a structured document. Every block — header, summary, experience entries, skills, projects — is a node in a JSON tree the user fully owns. The same tree drives the live editor, the print-perfect PDF, the AI mutation pipeline, the snapshot-frozen share view, and the version history. One data shape, five rendering paths, no proprietary lock-in.
Second, AI is wired in deliberately, not bolted on. Users connect their own OpenAI, Anthropic, Mistral, or Ollama keys, encrypted at rest with AES-256-GCM. The platform never proxies through a HunterStahl-paid account in the default plan, so token costs go directly to the user's provider bill. Five launch Actions — Tailor to JD, Bullet Rewriter, Summary Generator, ATS Score, Cover Letter Draft — run on a prompt library the operator can edit and version from the admin panel. AI proposes mutations; the user accepts or rejects each one.
Third, sharing is a first-class product surface. A share link is a frozen snapshot of a specific resume version with optional custom slug, password protection, expiration, view caps, PDF-download toggle, and recruiter-side analytics. The viewer is mobile-first and Stahl-branded — every external read becomes brand surface, not a bare PDF.
Value delivered — what you get
- Replaces a $300/year resume SaaS subscription — own the JSON, own the renderer, own the data. No vendor lock-in, no watermark, no per-export gate.
- Cuts AI costs to provider rate, not platform markup — bring an existing OpenAI or Anthropic key the team already pays for. Five Actions are wired and prompts are operator-editable.
- Ships three role-targeted resumes from one base — the schema-driven block tree means a Founder and Head of Growth variant share the same source of truth and diverge only where it matters.
- Recruiter-side analytics on every share — see who opened, how long they stayed, from what country. Pull a link offline the moment a target hire goes quiet.
- Branded share links with password, expiration, and view caps — a HunterStahl link looks like equipment, not a Google Drive download. A subtle Forged-with-HunterStahl footer doubles as discovery surface.
- An admin command center for every operational lever — limits, tiers, prices, AI providers, feature flags, audit log, settings registry. Edit from the panel, no redeploy.
- Self-hostable end-to-end — Docker Compose, six shell scripts, one VPS. Production deploy is a single command behind Traefik + Let's Encrypt.
Where it delivers outsized value
Four business contexts where the architecture lands hardest. Solo operators running multiple professional identities concurrently — founders, fractional executives, multi-domain consultants — get a platform whose strength is plural identity management, not one-and-done CV generation. Boutique recruiting agencies and talent platforms get a self-hostable substrate for branded candidate hosting, with annotation and forwarding features arriving in the Phase 4 Team tier. AI-first SMBs that already pay for an enterprise OpenAI or Anthropic key get to turn that existing spend into platform leverage through BYOK — no per-seat AI markup, no vendor lock-in on the inference path. Cybersecurity, legal, and other data-sensitive professionals who refuse to upload CV content to a public SaaS get a stack that runs on a private VPS, with no provider call-out unless the user opts into it.
Distinctive features — why this over the alternatives
- Schema-driven block tree as the single source of truth — editor, AI runner, PDF renderer, share viewer, and version history all read and write the same JSON. Adding a new template or AI action does not touch the data model.
- Capability-based RBAC, not role flags — the platform never checks role-equals-admin. It checks whether the user holds the relevant capability. Capabilities and roles are editable from the admin panel without redeploy.
- BYOK AI with four providers plus operator-controlled Ollama — OpenAI, Anthropic, Mistral, and a server-side Ollama endpoint that the admin can grant per user. AI cost shifts to the user's account by default; the operator pays nothing for inference in the launch tier.
- Snapshot share links with mobile-first branded viewer — a shared link is a frozen resume version, not a live mirror. Recruiters see a stable document; the user keeps editing without leaking drafts.
- Settings registry as a first-class service — every limit, price, quota, AI provider toggle, CORS origin, and reserved slug is a row in admin.settings. The operator tunes the platform from a panel, not by redeploying.
- Polyglot service mesh with a Python payment service — NestJS for nine TypeScript services, FastAPI for the payment service so existing crypto wallet code reuses verbatim. The contract between services is HTTP + Kafka; language is implementation detail.
Under the hood — built to last
The platform runs on proven, boring foundations: Next.js 15 on the web, NestJS for nine TypeScript services, FastAPI for the payment service, PostgreSQL 16 as the system of record, Prisma as the ORM, Redis for sessions and queue state, Apache Kafka for the cross-service event bus, MinIO/S3 for object storage, Puppeteer for PDF rendering, and Traefik as the gateway. Everything ships in Docker; the entire stack stands up on a single VPS via a single deploy script. Schema-per-service in a shared Postgres instance keeps the migration path to one-DB-per-service open without a rewrite. Six shell scripts handle setup, daily start/stop, monitoring, cleanup, and production deploy — no proprietary control plane, no hidden SaaS dependency on the critical path.
Current maturity
Phases 1, 2, and 3 are code-complete as of 2026-04-30, against a written five-phase roadmap. The mesh boots cleanly — 17 containers healthy on the monitor script, every /api/* endpoint returns 200, the editor renders all nine block types with autosave and undo/redo, Stripe Checkout and Customer Portal are wired with webhook idempotency, the crypto payment service generates per-payment BTC/ETH/TRON receiving addresses with on-chain confirmation monitors, the share viewer enforces all four terminal states (revoked, expired, view-capped, password-gated), and the AI runner executes five launch Actions against four BYOK providers. Roughly 83,800 lines of TypeScript and Python under active development; 18 Vitest and Pytest specs across the services. Honest current state: smoke verification and a Phase 2.5 cleanup pass (admin refund flow, Tailor-to-JD diff view UI) are the immediate next steps before public launch.
Roadmap — what's next
Phase 4 opens the platform from a single-user product into a network: public profile at /u/:slug as a recruiter-facing landing page with multiple role-targeted versions, personal API tokens with scoped permissions for external job platforms, OAuth-style resume-access flow so partner platforms can request data with user approval, multi-version role library UX, and the Team tier for recruiting agencies and consultancies. Cover letter generation linked to a resume and a job description lands in the same phase.
Phase 5 turns the AI layer into a revenue line — a Stahl AI managed tier where the platform supplies provider keys for users who don't want to manage their own — alongside LinkedIn ZIP and existing-PDF imports, additional templates, an affiliate program, and white-label / custom-domain support for enterprise customers.
Working with the architect
Three engagement modes apply to this project. A B2B operator can commission a custom build of a vertical-specific identity platform on the same microservice methodology — capability-based RBAC, settings registry, schema-driven document tree, BYOK AI, snapshot sharing all transferable to other content domains. A team already running a content or hiring platform can extend their own codebase with the share-link, BYOK AI runner, or PDF pipeline pieces, integrated into their existing stack. And founders or CTOs designing an equivalent platform can engage in strategic advisory on the architecture itself — polyglot service boundaries, capability-based RBAC, prompt library design, Kafka event topology. Reach out via sintegrium.io or LinkedIn for a 30-minute scoping call.
Built by Yurii Staryk · Solution Ecosystem Architect
HunterStahl Screenshots
Related Posts

Audio & Video-to-Text Converter
Self-hosted YouTube-to-text pipeline — faster-whisper runs on a home GPU inside Docker, callable from any laptop on the LAN. Own your transcripts, no API fees, no rate limits, 99+ languages.

LANpaster: Secure Local Network Sharing
Self-hosted LAN clipboard for engineers running multiple machines on one network — paste text or files on one device, grab on another, with auto-expiring slots for API keys and zero internet dependency.

