Skip to main content
Glama
pwislowski

resume-coverletter-mcp

by pwislowski

Resume and Cover Letter Generator

Reproducible, evidence-based CV and cover-letter builds from private local career inputs. The repository includes a command-line builder and an MCP server for drafting, validating and reviewing applications.

Setup

Install uv, then create local inputs from the fictional examples:

mkdir -p profile applications/baseline
cp -n stubs/career.yaml profile/career.yaml
cp -n stubs/application.yaml applications/baseline/application.yaml

Replace the fictional evidence before building an application:

uv run cv-mcp build baseline
# or
just build
just check

The first build downloads Python and Typst dependencies. The included Typst binding supplies the compiler; no separate Typst or LaTeX installation is required. Outputs are written to build/<slug>/<timestamp>_<version>/ with PDFs, previews, extracted text, an input snapshot and a report.

Configure an application

  1. Copy applications/baseline/ to a lowercase slug containing only letters, numbers and hyphens, for example company-role.

  2. Add the vacancy URL and any tracking ID to application.yaml.

  3. Select evidence with achievement_ids and project_ids, and add truthful tailored wording under overrides.

  4. Complete the cover letter, then set letter.is_sample to false.

  5. Build and review both the extracted text and every PDF page.

Dates use British English. Set letter.date to a quoted ISO date such as "2026-09-05", or leave it empty to use the current date in Europe/London. Use folded YAML blocks (>-) for long paragraphs, and quote dates and phone numbers.

Environment variables

Local defaults are suitable for the checked-out layout. Override them with a .env file or the shell when needed:

Variable

Purpose

CV_MCP_ROOT

Project root.

CV_MCP_PROFILE

Career profile YAML path.

CV_MCP_APPLICATIONS

Applications directory.

CV_MCP_OUTPUT

Build output directory.

CV_MCP_FONTS

Optional directory containing the Suisse fonts.

CV_MCP_BUILD_TIMEOUT_SECONDS

Build timeout; defaults to 120.

CV_MCP_LOG_LEVEL

Log level; defaults to INFO.

CV_MCP_DOWNLOAD_BASE_URL / CV_MCP_DOWNLOAD_SIGNING_SECRET

Required when serving signed artifact download links. Keep the secret private.

For Compose, CV_MCP_DATA_DIR selects the mounted private data directory. The tunnel container uses these variables:

Variable

Purpose

CONTROL_PLANE_ORGANIZATION_ID

OpenAI organization identifier.

CONTROL_PLANE_TUNNEL_ID

Tunnel identifier.

CONTROL_PLANE_API_KEY

Tunnel runtime key; keep it private.

MCP_SERVER_URL

Internal MCP endpoint: http://cv-mcp:8000/mcp.

TUNNEL_CLIENT_IMAGE

Optional replacement for the default tunnel-client image.

See the official OpenAI Secure MCP Tunnel documentation for tunnel setup and configuration details.

Example workflow

A typical workflow is to track roles, stages and next actions in Notion, keep verified career evidence and application drafts in this repository, use the MCP server to tailor and build documents, then review the generated PDFs before saving an approved release. Notion or another tracker can link to the resulting files; the repository remains the source for document inputs and builds.

The public repository contains only code, templates, tests, lockfiles and fictional stubs. Personal files under profile/ and applications/, generated build/ output, and research material are ignored. Keep private career data and submitted releases in a separate private deployment or storage location.

Typography uses Suisse Works and Suisse Intl Mono; install both locally for the intended rendering. The public baseline is a fictional layout sample.

Licensed under the MIT License.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pwislowski/resume-coverletter-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server