MCP server that renders a YAML CV into a one-page PDF via notboringresume.cloud (local Chromium).
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"not-boring-resume-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# not-boring-resume-mcp [](https://github.com/gouzmi/not-boring-resume-mcp/actions/workflows/ci.yml) [](https://pypi.org/project/not-boring-resume-mcp/) MCP server that renders a YAML CV into a one-page PDF via [notboringresume.cloud](https://notboringresume.cloud) (local headless Chromium). Optionnaly it can also generate a cover letter adapted to the resume and the offer. ## Installation Requires [uv](https://docs.astral.sh/uv/). First download the browser Playwright uses to render PDFs (one-time): ```bash uvx --from not-boring-resume-mcp playwright install chromium ``` **Claude Code:** ```bash claude mcp add not-boring-resume -- uvx not-boring-resume-mcp ``` **Claude Desktop** — add to `claude_desktop_config.json`: ```json { "mcpServers": { "not-boring-resume": { "command": "uvx", "args": ["not-boring-resume-mcp"] } } } ``` ## Usage Run Claude from a folder that holds your `cv.yaml` (and, optionally, a `cover-letter-template.md`). Then call one of the prompts: - `/mcp__not-boring-resume__tailor_cv` — tailor the CV and render `cv.pdf` - `/mcp__not-boring-resume__tailor_cv_and_letter` — also write and render the cover letter ### The offer argument Both prompts take the job **offer** as their argument — pass it right after the prompt name, either as **plain text** (paste the whole job description) or as a **URL**: ``` /mcp__not-boring-resume__tailor_cv https://example.com/jobs/data-engineer /mcp__not-boring-resume__tailor_cv_and_letter <paste the full offer text here> ``` When you give a URL, the server fetches the page and extracts its visible text before tailoring. The offer is what the CV (and letter) get adapted to, so the more complete it is, the better the result. Both prompts also accept optional path arguments if your…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.