explaingit

davidalecrim1/chameleon

23PythonAudience · developerComplexity · 2/5ActiveLicenseSetup · easy

TLDR

Claude Code and Codex skill that tailors a master resume YAML to a specific job posting and renders it to PDF via RenderCV, without inventing experience.

Mindmap

mindmap
  root((chameleon))
    Inputs
      Master CV YAML
      Job URL or description
      PDF resume import
    Outputs
      Tailored YAML
      Rendered PDF
    Use Cases
      Per-job resume tailoring
      Bulk applications
      Multiple career angles
    Tech Stack
      Python
      YAML
      RenderCV
      Claude Code
      Codex

Things people build with this

USE CASE 1

Tailor one master resume to many job applications without rewriting from scratch

USE CASE 2

Render YAML resumes to styled PDFs via RenderCV

USE CASE 3

Keep multiple master CVs for different career angles and pick per application

USE CASE 4

Run resume rewriting as slash commands inside Claude Code or Codex

Tech stack

PythonYAMLRenderCVClaude CodeCodexMake

Getting it running

Difficulty · easy Time to first run · 30min

Needs Python 3.10+ and either Claude Code or Codex installed locally to drive the slash-command workflow.

MIT license, you can use, modify, and distribute freely with attribution.

In plain English

Chameleon is a small project for adapting a single master CV to many different job applications, run through either Claude Code or Codex, the two AI coding assistants from Anthropic and OpenAI. You keep one truthful version of your resume in a text file, and the tool produces a separate tailored copy each time you apply for a job, then turns it into a PDF. The master CV lives as a YAML file, a simple text format with labelled fields, in a folder called templates. Whenever you start a new application, Chameleon copies the master, rewrites the wording so it matches the language used in the target job description, and saves the result as a new YAML file named after the company and role. The original master is never changed. The README is firm about the limits: only rewording, reordering, and changes of emphasis are allowed. The tool is not supposed to invent skills, job titles, dates, or metrics that are not already in the master. It uses a separate tool called RenderCV to turn the YAML into a styled PDF. RenderCV gets installed automatically the first time you run make install-tools, which sets up a Python virtual environment and pulls in the dependency. Python 3.10 or higher is required. Once that is done, all the day to day commands are run as slash commands inside Claude Code or Codex. The three main ones are slash init-cv to import your existing resume from a PDF or YAML, slash chameleon to tailor it against a job URL or pasted description, and slash render-cv to render any tailored YAML to PDF again after manual edits. The workflow for a single application is fetch the job description, rewrite the summary, reorder the experience highlights and the skills list, save the new YAML, and run make render to produce a PDF in the output folder. If you keep several master CVs for different career angles, you can pass --cv followed by the filename stem to pick one. The .claude folder holds the shared agent prompts and skill definitions that drive the workflow. The licence is MIT.

Copy-paste prompts

Prompt 1
Install chameleon locally and run /init-cv against my existing PDF resume to create a master YAML
Prompt 2
Use /chameleon with a pasted job description to produce a tailored YAML and rendered PDF
Prompt 3
Show me the YAML schema chameleon expects and how RenderCV maps it to PDF sections
Prompt 4
Add a second master CV variant for a data-engineering angle and switch with --cv
Prompt 5
Modify the chameleon skill to also produce a one-page cover letter alongside the resume
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.