resume-kit-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@resume-kit-mcpscore my acme resume against its posting and flag real gaps"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
resume-kit
Tailored resume versions from one fact library, with guardrails that keep them honest.
You keep every confirmed fact about your career in one file. Each job gets a short version file that picks and orders those facts, with its own headline and summary. resume-kit renders a version to .docx and .pdf and checks that it hits your page target. It won't build anything that breaks one of your guardrails: claims you've ruled out, or facts that must always appear. It can also score a version against a job posting with shortlist-ai, the way a screener would read it.
All of this is also available as an MCP server, so an AI assistant can tailor, build, and score resumes for you without making things up.
Why
Tailoring a resume for every job tends to produce a dozen near-copies that drift apart. A number gets corrected in one copy but not the others. A claim you walked back reappears. Page 3 appears without anyone noticing. With resume-kit:
Each fact lives in one place. Versions refer to facts by id and never restate them, so a correction reaches every version.
Guardrails fail the build.
guardrails.yamllists claims that must never appear (with the reason) and facts that must. They're checked on every build, which also makes it safe to let an AI assistant write versions.The page count is checked. The build fails unless the PDF hits its target, and it prints the text that spilled over, so you know what to trim.
Gaps get sorted.
resume scorelists the must-haves a posting asks for that the resume doesn't show. A gap that matches a guardrail is labeled as a real gap, not a wording problem to paper over.
Related MCP server: WebMCP
Setup
git clone https://github.com/vinayvobbili/resume-kit && cd resume-kit
python3 -m venv .venv && .venv/bin/pip install -e '.[dev]'
npm install # docx-js, used by the renderer
brew install --cask libreoffice && brew install poppler # PDF conversion and page checksTry it on the bundled example (a fictional candidate):
resume --content examples/content build --all --out /tmp/resumesYour content
Content lives outside this repo, so your personal data never ends up in it:
cp -R examples/content ~/resume-content # then replace the facts with yours
mkdir -p ~/.config/resume-kit && ln -s ~/resume-content ~/.config/resume-kit/contentresume-kit looks for content in the --content flag, then $RESUME_KIT_CONTENT, then ~/.config/resume-kit/content. If none of those exist, it falls back to the example and says so. Keep your content in its own private repo if you want history. Keep answers.yaml out of version control.
profile.yaml every fact that can appear, keyed by id; `pages:` sets the page target
variants/<name>.yaml one resume version: headline, summary, and which ids in what order
guardrails.yaml forbidden claims and required facts, each with its reason
postings/ saved job descriptions, for `resume score`
answers.yaml your standard application-form answers (copy answers.example.yaml)A tailored version inherits everything it doesn't set:
# variants/acme.yaml
extends: base
title: Acme Corp — Staff Detection Engineer
output: Alex_Rivera_Resume_Acme_Detection
posting: postings/acme-detection-engineer.md
headline: Staff Detection Engineer • Detection-as-Code, Threat Hunting & Incident Response
summary: >-
...
skills: [detection, cloud_security, engineering, appsec]
roles:
northwind: [detection_as_code, ir_lead, iam_guardrails, paved_road] # only the roles you change
drop: [iam_diff] # remove ids from any listCLI
resume list # versions, the content dir in use, and applied dates
resume show acme # plain text of a version
resume diff base acme # what a version changes
resume check # guardrails on every version
resume build acme --preview # -> ~/Downloads/<output>.{docx,pdf}; page JPEGs go to ~/.cache/resume-kit/previews
resume build --all --out /tmp/x # RESUME_KIT_OUT also sets the default directory
resume score acme # score against the version's posting (or pass posting files)
resume answers eeo # standard form answers
resume ats jobs.ashbyhq.com --js # quirks of the ATS behind a URL, with JS helpersScoring
resume score builds the version and runs shortlist jobs on the PDF. shortlist-ai turns each posting into must-have and nice-to-have requirements, judges each one with quotes that it checks against the resume, and computes the score in code:
Real output for the bundled example (resume --content examples/content score acme, local backend):
Staff Detection Engineer: 79/100, must-haves 4/5
Gaps (must-haves not fully met):
- Production Kubernetes security experience
real gap, don't add it; guardrail kubernetes: Only tutorial-level Kubernetes; nothing production.
Requirements:
✅ years_experience (must-have) “Senior Security Engineer at Northwind Traders (5 yrs 6 mos, current role)”
✅ python (must-have) “Automated phishing triage with a Python and SOAR pipeline”
✅ sigma_or_siem_query (must-have) “Moved 300+ detections to detection-as-code: Sigma rules with unit tests ...”
✅ aws_security (must-have) “Designed organization-wide IAM guardrails (SCPs, permission boundaries) for 140 AWS accounts”
❌ kubernetes_security (must-have)
✅ giac_certifications (nice-to-have) “Certifications: AWS Certified Security – Specialty, GIAC Certified Incident Handler (GCIH)”
🟡 open_source_tooling (nice-to-have) “Moved 300+ detections to detection-as-code”A gap without a guardrail note usually means the experience is there but the resume doesn't show it clearly. That's worth a wording fix, backed by a fact in profile.yaml.
Install shortlist-ai separately (pip install 'shortlist-ai[local]'; drop [local] if you'll only use --backend claude), or point RESUME_KIT_SHORTLIST at its shortlist executable. --backend local, the default, runs an MLX model on Apple Silicon so the resume never leaves your machine. --backend claude uses the Anthropic API.
MCP server
claude mcp add resume-kit -s user -- /path/to/resume-kit/.venv/bin/resume-kit-mcpThe server has these tools:
list_versionsshow_versioncheck_factsbuild_version(optionally with preview images)score_versionapplication_answersats_playbook
Its instructions tell the assistant never to add unconfirmed facts, and never to "close" a gap that a guardrail marks as real.
Applicant tracking systems
resume_kit/ats.yaml collects quirks of Greenhouse, Ashby, Taleo, Workday, LinkedIn, and Eightfold, learned while filling in real applications. It also has JavaScript helpers for mapping an unfamiliar form's fields (labels, required flags, choices), setting React-controlled inputs and native selects, and listing required fields that are still empty. It's meant for an assistant filling in a form under your supervision, and its first rule is to stop before Submit.
Tests
pytest -m "not render" # fast: resolution, guardrails, scoring (with a fake shortlist), ATS lookup, MCP
pytest # also renders the examples and checks page targets and overflow reportsTests only ever use the fictional example content.
License
MIT
Available Tools
7 toolsapplication_answersB
Standard answers for application forms: contact, work_authorization, experience_years, screening, salary, defaults, eeo. Omit section for everything.
| Name | Required | Description | Default |
|---|---|---|---|
| section | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose whether this is a read-only operation, what permissions are needed, or what the return format looks like. The implication that it returns static answers is weak and not an explicit behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the data categories and then the parameter behavior. It is compact with no wasted words, though the lack of an explicit verb makes it slightly less immediately clear. Overall, it is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no annotations or output schema, the description covers the parameter behavior and the data categories. However, it omits any mention of read-only status, return format, or error handling, which would be valuable given the absence of structured metadata. It is minimally adequate but leaves clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it explains that the optional 'section' parameter filters results and that omitting it returns everything. It also lists the likely section values (contact, work_authorization, etc.), effectively documenting the parameter's domain. A small gap remains because it does not explicitly say those strings are the accepted values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource clearly: standard answers for application forms, and lists the categories (contact, work_authorization, etc.). It does not use an explicit verb like 'get' or 'retrieve', but the purpose is readily inferable and specific. No sibling differentiation is provided, which keeps it at a 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is 'Omit section for everything,' which explains parameter usage but not when to choose this tool over alternatives. There is no context about when this tool is appropriate versus the version-related siblings. The tool's usage is implied by its domain but never stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ats_playbookC
Quirks, shared rules, and JavaScript helpers for an applicant tracking system (greenhouse, ashby, taleo, workday, linkedin, eightfold) or a job-page host.
| Name | Required | Description | Default |
|---|---|---|---|
| system | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral-disclosure burden. It states the tool’s domain and content types but does not say whether it is read-only, what permissions are required, whether it has side effects, or what the response format is. Some read-only nature can be inferred from 'playbook,' but nothing is explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler, and the system examples are useful for the parameter. It is front-loaded and appropriately sized, though it omits core usage and behavioral details that would make it more structurally complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and zero schema-description coverage, the description is too thin. It does not explain what the tool returns, how to use it, or what a 'job-page host' value looks like. For an agent to select and invoke it confidently, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter, 'system,' with 0% description coverage. The description partially compensates by naming example ATS values (greenhouse, ashby, taleo, workday, linkedin, eightfold) and mentioning 'job-page host,' which clarifies expected input. However, it does not specify exact accepted values, formatting, or how to identify a job-page host.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names content categories—quirks, shared rules, and JavaScript helpers—and lists applicable systems, so an agent can infer the tool returns ATS-related playbook data. However, it lacks a specific verb and does not distinguish itself from siblings such as list_versions, show_version, or application_answers. Purpose is therefore vague but not tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The description implies usage by naming content types, but gives no conditions, prerequisites, or exclusions. An agent must guess when ats_playbook is preferable to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_versionC
Render .docx and .pdf (default ~/Downloads), check the page target, report overflow text.
| Name | Required | Description | Default |
|---|---|---|---|
| out_dir | No | ||
| version | Yes | ||
| with_preview | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose useful behavior: default output path, page-target checking, and overflow reporting. However, it omits side effects like file overwrites, permissions, whether rendering is destructive, and how with_preview changes behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that packs three actions with zero filler. It is appropriately sized, though its telegraphic style leaves some terms ('page target') less clear than they could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% schema description coverage, the description is incomplete for a three-parameter tool. It does not explain the required version parameter, the with_preview option, the meaning of 'page target,' or what the overflow report contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three parameters, so the description must compensate. It explains only the out_dir default (~/Downloads), leaving required version and the with_preview boolean completely undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Render') and names concrete artifacts ('.docx and .pdf'), then adds two additional actions ('check the page target, report overflow text'). It does not distinguish this tool from siblings like check_facts or score_version, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives. The only directional hint is the default output location (~/Downloads), which is behavioral rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_factsC
Run the fact guardrails (forbidden claims, required facts) on one version or all of them.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states what is checked (forbidden claims, required facts) but not whether the operation is read-only, what it returns (pass/fail, violation list), or whether a failed check errors out. For a validation tool with zero annotation coverage, this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is efficient, though brevity here partly comes at the cost of the missing behavioral and parameter detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations mean the description must explain the result shape and safety profile, and it does neither. An agent cannot tell what a successful or failed check yields, which is a notable gap for a validation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'version' parameter has no schema description (0% coverage), but the phrase 'one version or all of them' usefully conveys that the parameter is optional and that omitting it scopes the check to every version. It still omits the version identifier format (ID vs. name) and how to target a specific one.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (run) and resource (fact guardrails) and clarifies what those guardrails cover: forbidden claims and required facts. It is distinguishable from siblings like score_version or build_version, though it never explicitly contrasts itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance beyond the implicit 'run this to check facts'. No alternatives are named (e.g., score_version for scoring vs. check_facts for compliance), and there is no mention of prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_versionsB
List resume versions with their title and applied date, and the content directory in use.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses what data comes back (title, applied date, content directory), which implies a read-only listing, but it says nothing about pagination, ordering, or result volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause contributes information about the resource and its return fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema or annotations, the description partially compensates by naming the returned fields, but omits pagination, ordering, and total count, leaving the return contract only partially specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies; the schema is empty and there is nothing for the description to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (List) and resource (resume versions) and even enumerates the returned fields (title, applied date, content directory). It is clear enough to distinguish from show_version or build_version, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives no when-to-use guidance and does not route the agent between this and show_version (single-version retrieval) or build_version (creation). Usage is only implied by the verb 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_versionA
Score the built resume against job postings (file paths; default: the version's posting) with shortlist-ai. Returns per-job score, must-haves met, gaps, and per-requirement verdicts with quotes. gap_notes marks gaps that a guardrail says are real, which must not be papered over.
| Name | Required | Description | Default |
|---|---|---|---|
| backend | No | local | |
| version | Yes | ||
| postings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It does disclose the return shape (per-job score, must-haves met, gaps, per-requirement verdicts with quotes) and an important semantic about gap_notes being guardrail-confirmed gaps, but says nothing about side effects, cost, or that it dispatches to an external scoring backend.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with purpose then returns then a caveat; every sentence adds information. The first sentence is slightly overloaded with parenthetical defaults, which costs a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does describe the return payload, which is valuable. However, for a tool with no annotations and a 0%-documented schema, gaps remain around the backend parameter and operational behavior (cost, side effects, prerequisites).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It usefully explains that postings are file paths and default to the version's posting, but never mentions the backend parameter or clarifies the version parameter's role, leaving one of three parameters completely opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Score the built resume against job postings') and is immediately distinguishable from siblings like build_version and check_facts. The scope ('the built resume', 'with shortlist-ai') makes clear what is scored and by what.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is only implied: 'the built resume' hints that build_version should run first, and the postings default implies a version must exist. There is no explicit when-to-use versus alternatives (e.g., check_facts) and no stated exclusions or preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_versionD
The resolved resume as plain text (what the PDF will say).
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits, but it only mentions that the output is plain text. It does not state whether the operation is read-only, what happens if the version does not exist, or any other side effects or requirements. This leaves significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a very short single sentence, but it is under-specified rather than appropriately concise. It fails to front-load the action or any essential information. The sentence does not earn its place because it omits key details about what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter, no annotations, and an output schema, the description is critically incomplete. It does not explain how to invoke the tool, what the version parameter means, or when to use it. The presence of an output schema only covers return values, but the description fails on all other fronts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter 'version' with 0% description coverage, and the description never mentions it. The description says 'The resolved resume' without indicating it takes a version argument. It provides no meaning or format for the parameter, leaving the schema alone to define it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun phrase describing the output ('The resolved resume as plain text') rather than stating what the tool does. It lacks a verb and does not distinguish this tool from siblings like list_versions or build_version. An agent cannot confidently infer the action from this text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as list_versions or build_version. The description gives no context, prerequisites, or exclusions. It merely describes the output format without any usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.1.0- First observed
application_answers - First observed
ats_playbook - First observed
build_version - First observed
check_facts - First observed
list_versions - First observed
score_version - First observed
show_version
TDQS
Scored across 7 tools
Most tools target clearly distinct actions: list_versions (enumerate), show_version (preview text), build_version (render files), check_facts (guardrails), score_version (job matching), application_answers (form data), ats_playbook (reference). There is mild conceptual overlap between show_version/build_version (both produce the resume) and between check_facts/score_version (both validate against requirements), but the descriptions distinguish internal guardrails from external scoring well enough.
Five of seven tools follow a clean verb_noun pattern (list_versions, show_version, check_facts, build_version, score_version). The remaining two (application_answers, ats_playbook) are noun phrases rather than verb-led, a minor deviation that still reads clearly.
Seven tools is well-scoped for a resume-tailoring workflow, and each tool maps to a distinct step (list, preview, validate, build, score, form answers, ATS guidance). No redundant or filler tools.
The surface covers the consume/validate/build/score lifecycle plus application-form and ATS support, which is strong for the stated purpose. The main gap is authoring: there is no create/update/delete for versions or content, so resume editing must happen outside the server (implied by the 'content directory' model), a minor workaround.
Maintenance
Related MCP Connectors
Resume builder with native MCP — create and edit resumes from your AI assistant.
Tailored, graded job applications: a CV, cover letter and form answers built per vacancy.
Career assistant: resumes, job-match analysis, interview results and career memory.
AI resume triage for recruiters. Query your candidate pool from Claude or ChatGPT.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables evidence-grounded resume tailoring by generating ATS-readable LaTeX/PDF resumes from a user-curated experience bank, with every bullet traceable to evidence and inferred wording flagged for user approval.MIT
- AlicenseNot gradedqualityBmaintenanceEnables an AI agent to work inside a resume workspace where it can search job postings and propose edits grounded in user-recorded facts, while the interface constrains its tools and requires human approval before any change or application is prepared.9 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to tailor a resume to any job description by extracting keywords, analyzing gaps and ATS compliance, managing versions, and compiling PDF/LaTeX outputs entirely locally without external API keys.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to run deterministic job-application workflows—fit-checking job descriptions, generating gap analyses, resumes, cover letters, LinkedIn/GitHub copy, and learning-plan PDFs—while refusing document generation when skill match is below Good.1MIT