{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_spgvpfrmffu8","handle":"not-boring-resume-mcp","url":"https://wellknown.network/agents/not-boring-resume-mcp","links":{"self":"https://wellknown.network/agents/not-boring-resume-mcp/record.json","html":"https://wellknown.network/agents/not-boring-resume-mcp","markdown":"https://wellknown.network/agents/not-boring-resume-mcp/record.md","api":"https://wellknown.network/api/v1/agents/not-boring-resume-mcp","status":"https://wellknown.network/api/v1/agents/not-boring-resume-mcp/status","claim":"https://wellknown.network/agents/not-boring-resume-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/not-boring-resume-mcp/claim.json","badge":"https://wellknown.network/agents/not-boring-resume-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/not-boring-resume-mcp/history","tools":"https://wellknown.network/api/v1/agents/not-boring-resume-mcp/tools"},"ard":{"identifier":"urn:air::server:not-boring-resume-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"not-boring-resume-mcp","summary":"MCP server that renders a YAML CV into a one-page PDF via notboringresume.cloud (local Chromium).","description":"# not-boring-resume-mcp\n\n[![Build Status](https://github.com/gouzmi/not-boring-resume-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/gouzmi/not-boring-resume-mcp/actions/workflows/ci.yml)\n[![PyPI Versions](https://img.shields.io/pypi/v/not-boring-resume-mcp?style=plastic&label=pypi-version)](https://pypi.org/project/not-boring-resume-mcp/)\n\nMCP server that renders a YAML CV into a one-page PDF via\n[notboringresume.cloud](https://notboringresume.cloud) (local headless Chromium).  \nOptionnaly it can also generate a cover letter adapted to the resume and the offer.\n\n## Installation\n\nRequires [uv](https://docs.astral.sh/uv/). First download the browser Playwright\nuses to render PDFs (one-time):\n\n```bash\nuvx --from not-boring-resume-mcp playwright install chromium\n```\n\n**Claude Code:**\n\n```bash\nclaude mcp add not-boring-resume -- uvx not-boring-resume-mcp\n```\n\n**Claude Desktop** — add to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"not-boring-resume\": {\n      \"command\": \"uvx\",\n      \"args\": [\"not-boring-resume-mcp\"]\n    }\n  }\n}\n```\n\n## Usage\n\nRun Claude from a folder that holds your `cv.yaml` (and, optionally, a\n`cover-letter-template.md`). Then call one of the prompts:\n\n- `/mcp__not-boring-resume__tailor_cv` — tailor the CV and render `cv.pdf`\n- `/mcp__not-boring-resume__tailor_cv_and_letter` — also write and render the cover letter\n\n### The offer argument\n\nBoth prompts take the job **offer** as their argument — pass it right after the\nprompt name, either as **plain text** (paste the whole job description) or as a\n**URL**:\n\n```\n/mcp__not-boring-resume__tailor_cv https://example.com/jobs/data-engineer\n/mcp__not-boring-resume__tailor_cv_and_letter <paste the full offer text here>\n```\n\nWhen you give a URL, the server fetches the page and extracts its visible text\nbefore tailoring. The offer is what the CV (and letter) get adapted to, so the\nmore complete it is, the better the result.\n\nBoth prompts also accept optional path arguments if your…","publisher":null,"homepage":null,"repository":null,"version":"1.1.1","license":null,"protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:not-boring-resume-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","summary":"pypi","version":"pypi","description":"pypi"}},"derived":{"capabilities":[{"slug":"productivity.hr","name":"HR & Recruiting","confidence":1,"provenance":"derived"},{"slug":"infra.browser-automation","name":"Browser Automation","confidence":1,"provenance":"derived"}],"categories":["infra","productivity"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"not-boring-resume-mcp","registry":"pypi","observedAt":"2026-11-09T22:23:31.566Z","publishedAt":"2026-08-07T07:45:21.452931Z","latestVersion":"1.1.1"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"not-boring-resume-mcp","url":"https://pypi.org/project/not-boring-resume-mcp/","firstSeenAt":"2026-09-10T08:25:28.449Z","fetchedAt":"2026-11-09T22:21:52.162Z","normalizedAt":"2026-11-09T22:21:52.162Z"}]},"firstSeenAt":"2026-09-10T08:25:28.449Z","updatedAt":"2026-11-09T22:23:31.567Z"}