Skip to content

Releases: hrtips/cvx

CVX v1.5.0 — content sections + build --all

Choose a tag to compare

@ramith ramith released this 28 Jul 01:12
Immutable release. Only release title and notes can be modified.

Nothing gets dropped

Four additive content sections so a CV keeps everything it should — the fix for the real dogfood gap where a senior profile silently lost half its credentials:

  • certifications.yaml, publications.yaml, languages.yaml
  • a generalized links: array in personal.yaml (blog, portfolio, GitHub — alongside the existing LinkedIn/Facebook)

All render in both the designed two-column CV and the ATS variant. Absent files, single-item sections, and omitted optional fields all render cleanly.

cvx build --all

Validate, then produce both the designed and ATS PDFs in one command. Each variant renders in its own process, fixing a font-subset state leak in the PDF engine that could corrupt the ATS variant's text layer — invisible on screen, but exactly what ATS parsers read.

Compatibility

Fully additive under the schemaVersion: 1 promise — existing cv-content/ folders keep working unchanged. All local, no accounts, byte-reproducible.

CVX v1.4.0 — plug it into your agent

Choose a tag to compare

@ramith ramith released this 26 Jul 08:10
Immutable release. Only release title and notes can be modified.

Any agent — Claude, Cursor, VS Code, or any MCP client — now drives CVX end to end, locally. And any chat assistant can take a CV from one pasted prompt.

New

  • MCP servernpx @hrtips/cvx mcp exposes four tools (get_schema, init_cv, validate_cv, build_pdf) wrapping the same engine as the CLI. No API keys, fully offline; the server teaches the model the edit→validate→build loop and the truthfulness rules.
  • One-command client setupcvx mcp init --client claude|claude-desktop|cursor|vscode writes/merges the right config shape per client (version-pinned, never clobbers other servers).
  • The two-line front door — paste into any AI chat and you're done:
    Create my CV with https://github.com/hrtips/cvx — open that page and follow its instructions for AI assistants.
    Here is my LinkedIn profile: <your profile URL> (or attach your current CV and a photo instead).
    
    The docs carry the assistant the rest of the way: capability self-routing, the LinkedIn Save-to-PDF fallback, a non-technical handoff, and a review→brainstorm→preview step so nothing lands on your CV that you haven't seen.
  • Agent Skillskills/cvx/SKILL.md ships in the package for skill-capable agents.

Fixed

  • Silent PDF corruption on forced pagination (found by dogfooding): a page1ExperienceCount that didn't fit compressed every text box into overlapping glyphs while the build reported success. Overflow now clips visibly at the page edge, and validate/build/build_pdf warn with calibrated estimates and concrete fixes. build --json and the MCP build_pdf tool now return a warnings array.
  • Pagination semantics documented: entry N+1 starts page 2; automatic packing never overflows.

Quality gates

120 tests on ubuntu/macos/windows × Node 20/22/24; packaged E2E now includes an MCP initialize handshake against the packed tarball; reproducible builds stay byte-identical; install stays lean (tarball ~330 kB).

CVX v1.3.0 — it tells you what's wrong

Choose a tag to compare

@ramith ramith released this 25 Jul 04:55
Immutable release. Only release title and notes can be modified.

The whole content model is now a contract: exact errors in your terminal, autocomplete in your editor, structured output for your agent.

New

  • cvx validate — checks every file in cv-content/ at once and reports exact errors with file + field paths and suggested fixes (unknown key "linkdin" — did you mean "linkedin"?). Unknown keys are warnings by default; --strict (recommended for agents/CI) treats them as errors.
  • Agent-legible CLI — every command accepts --json (exactly one JSON object on stdout, logs on stderr) and uses semantic exit codes: 0 ok, 2 validation failed, 3 render failed, 64 usage error.
  • cvx list [themes|layouts] — inventory of themes and layouts, including your custom layouts, with --json.
  • Canonical JSON Schema — every content file and config.yaml is defined by schema/v1/; scaffolded files carry $schema headers, so editors with YAML support autocomplete keys and flag mistakes as you type. The previously undocumented rich-bullet form ({text, link: {href, label}, suffix}) is now part of the documented contract.
  • cvx init scaffolds agent guidanceAGENTS.md and CLAUDE.md land in your cv-content/ with the edit→validate→build loop and truthfulness rules, so coding assistants drive CVX correctly out of the box.

Compatibility promise

config.yaml now carries schemaVersion: 1. Within a schema major version, your content files never break — cvx validate on today's files will still pass on every future 1.x release.

Quality gates

Tested on ubuntu/macos/windows × Node 20/22/24; the packaged E2E now exercises the full validate/build/list contract against the packed tarball; reproducible builds remain byte-identical; install stays lean (tarball ~320 kB).

CVX v1.2.1 — new name, same tool

Choose a tag to compare

@ramith ramith released this 24 Jul 18:03
Immutable release. Only release title and notes can be modified.

makecv is now CVX — package @hrtips/cvx, command cvx.

npx @hrtips/cvx init
npx @hrtips/cvx build

Changes

  • Renamed package to @hrtips/cvx; the installed binary is cvx
  • CVX brand assets (logo, icons, lockups) in assets/brand/; README leads with the new identity
  • PDF Creator/Producer metadata is now cvxreproducible-build hashes change accordingly (builds remain byte-identical run-to-run)
  • All docs, prompts, and workflows updated; the old makecv npm package has been removed
  • Functionally identical to v1.2.0 otherwise

makecv v1.2.0 — the npx CLI debut

Choose a tag to compare

@ramith ramith released this 24 Jul 18:03
Immutable release. Only release title and notes can be modified.

The first npm release (published as makecv, since renamed — see v1.2.1).

Highlights

  • CLI: init scaffolds a complete example CV (Bruce Wayne); build [--ats] renders designed / ATS-safe PDFs — no headless browser, no LaTeX, nothing but Node
  • Reproducible builds: SOURCE_DATE_EPOCH makes output byte-identical per platform + Node version (pinned CreationDate, seeded font-subset tags, serialized PDF object writes) with a runtime guard against upstream drift
  • Lean packaging: transform-only lib/ build; tarball 3.3 MB → ~305 kB with zero user content
  • Cross-platform fixes: case-sensitive-filesystem photo probe, Windows path handling
  • AI/LLM-first docs: llms.txt, complete content schema (docs/cv-schema.md), AI guide with copy-paste prompt routes
  • CI: Linux/macOS × Node 20/22/24 + Windows, packaged E2E, byte-identical reproducibility gate; releases publish with npm provenance
  • Apache-2.0 licensed

makecv v1.1.0

Choose a tag to compare

@ramith ramith released this 24 Jul 05:15

makecv v1.1.0

Config-driven CV generator: write your content in YAML, pick a theme and layout, get pixel-perfect PDFs.

Highlights

  • Project renamed to makecv (formerly resume-cli) ahead of npm CLI distribution
  • ATS & AI-parser keywords — curated (cv-content/keywords.yaml) + auto-derived keywords embedded in the PDF's Keywords metadata field, configurable via config.yaml → atsKeywords (enabled/autoDerive/max), with comma-safe sanitisation and truthfulness-first defaults
  • Flexible profile photo — drop profile.jpg|jpeg|png|webp into cv-content/images/; auto-detected identically by the browser preview and PDF export; CVs without a photo render cleanly
  • Layout correctness — single-page CVs no longer silently drop education / competencies / referees (continuation-sidebar sections fold into page 1)
  • Test suite — Vitest with 24 unit tests (keyword building, page packing, sidebar resolution, photo picker, dependency-alignment guard) via npm test
  • Dependency upgrades — @react-pdf/renderer 4.5.1 (fixes the upstream keywords metadata prop), React 19.2.8, Vite 8.1.5; js-yaml aligned to a single 4.x across both YAML-loading paths
  • Docs — README overhauled: quick start, ATS-keywords guide, testing, updated structure
  • Ships with fictional sample content (Bruce Wayne)

Commands

npm install
npm run dev      # live preview
npm run pdf      # designed two-column PDF
npm run pdf:ats  # ATS-safe single-column PDF
npm test         # unit tests

Next up (v1.2.0): npx makecv init && npx makecv build — no clone needed.