LangGraph StateGraph Typst Vector Typesetter Python 3.11+ MIT License Active Repository

Autonomous Agentic Resume Fit & ATS State-Machine.

A deterministic open-source developer tool that fits your verified master profile to any target job description. Truthful keyword alignment, automated gap logging, and minimal hallucinations.

Star on GitHub Quickstart Guide
$ git clone https://github.com/FranciscoOssian/cveck.git
LangGraph CLI Stream (cveck) ● RUNNING
✔ [1/6]term_extractor: 14 keywords parsed (ISO: en)
⚠ [2/6]gap_finder: 1 hard gap [Kafka] -> doc/GAPS.md
✔ [3/6]cv_generator: STAR narrative & bold front-loading
✔ [4/6]typst_compiler: Vector PDF compiled (0 errors)
✔ [5/6]ats_validator: Score 92.4/100 (Stuffing: 0.8% < 2%)
⚡ committer:Committed output/cv-senior-en.pdf
Factual Grounding & Output output/cv-senior-en.typ

// Single Source of Truth: doc/USER_PROFILE.md

*Distributed Architecture:* Led migration of auth services to Go, reducing p99 latency by 32% across 4.2M daily requests.
*DETECTED_GAP:* Apache Kafka omitted from resume. Saved to study backlog in doc/GAPS.md.

Core Invariants

Why Cveck Exists

Designed for objective profile-to-job fit rather than chatbot guesswork. It treats resume alignment as a strict constraint-satisfaction problem bounded by your verified career history.

Zero-Hallucination Physical Barrier

Your master career profile in doc/USER_PROFILE.md is the absolute truth. The state-machine is physically prevented from inventing unverified metrics or tools.

Self-Healing Typst Compiler

If Typst code fails compilation, a dedicated syntax fixer analyzes compiler stderr and repairs braces, imports, and escaping in a closed loop without user intervention.

Deterministic ATS Scoring

Mathematical regex boundary matching validates mandatory vs. optional requirements and enforces an anti-stuffing density threshold (< 2%) to prevent keyword penalties.

Automated Skill-Gap Backlog

When a target job requires skills missing from your profile, Cveck writes them into doc/GAPS.md and doc/gaps.json to build your study roadmap.

Pluggable Multi-Provider Hub

Route requests to DeepSeek, NVIDIA NIM, Claude, OpenAI, or any custom OpenAI/Anthropic-compatible endpoint (including local backends like Ollama, vLLM, or LM Studio) with real-time token tracking.

Native GNU gettext (i18n)

First-class localization across English (en), Brazilian Portuguese (pt_BR), and Mandarin Chinese (zh) via compiled Babel catalogs.

StateGraph Workflow

Cyclic LangGraph Architecture

A cyclic state graph executing deterministic nodes with automated retry loops.

term_extractor

Parses job posting into canonical skills and mandatory criteria.

gap_finder

Isolates unmatched skills against USER_PROFILE.md.

gaps_updater

Atomically writes gaps into study backlog (JSON/MD).

cv_generator

Generates STAR Typst source respecting strict budget (14-17 bullets).

typst_compiler

Compiles vector PDF and extracts plain text via pdftotext.

ats_validator

Evaluates keyword coverage, passing score to committer or cv_refiner.

Community & Contribution

Contributing to Cveck

Cveck is 100% open source under the MIT License. Contributions across templates, translations, scoring rules, and providers are welcome.

✦ Ways You Can Help the Project

Pick an area that fits your skills and submit a pull request:

1. Typst Templates

Design and submit new localized Typst resume layouts in templates/ (e.g., Spanish, German, French, Japanese, or alternative design themes).

Add Template PR →

2. i18n & Translations

Add new language catalogs or refine existing GNU gettext translations in src/locales/ using Babel.

Submit Translation PR →

3. Provider Presets

Add new LLM providers, local inference backends, or tested open models into src/presets.json.

Add Provider PR →

4. ATS Scorer & Parser

Improve keyword boundary matching, regex edge cases, and token optimization in src/tools/ and LangGraph nodes.

Open Engine Issue / PR →

Repository Contributors

Loading contributors...

Local Setup

Getting Started in 3 Steps

Prerequisites: Python 3.11+, Typst CLI in system PATH, and Poppler (pdftotext).

# 1. Clone repository & install in editable mode git clone https://github.com/FranciscoOssian/cveck.git cd cveck pip install -e .
# 2. Add API keys to .env (or select Ollama for 100% offline local inference) cp .env.example .env
# 3. Fill doc/USER_PROFILE.md and launch interactive CLI cveck

Reference

Frequently Asked Questions

Is this a SaaS or a hosted platform?

No. cveck is 100% free and open-source software (FOSS) licensed under MIT. It runs locally on your machine with zero telemetry, zero accounts, and zero cloud lock-in.

Can I run it completely offline without paying for API keys?

Yes. cveck supports any local OpenAI-compatible server (such as Ollama, vLLM, or LM Studio). You can run open-weight models locally (e.g. llama3.1:8b, qwen2.5:7b) via the interactive /provider menu with zero API costs.

Why Typst instead of LaTeX or Markdown-to-PDF?

Typst compiles in milliseconds, produces clean vector typography, supports programmatic layouts with reliable column breaking, and eliminates fragile LaTeX macro errors.