Skip to main content
Glama
README.md
# CompleteMCP — Self-Contained Resume MCP Server

A fully self-contained MCP server for tailoring resumes to job descriptions. Unlike a bare server, this bundle ships **everything** that drives output quality so results reproduce on any machine:

- The MCP server (scrape JD → tailor → validate → build DOCX)
- The full tailoring **rules** (`rules.md`, served by `get_tailoring_rules`)
- The candidate **base resume** (`base_resume.json`)
- The resume/JD **skills** (`skills/`, served by `list_skills` / `get_skill`)
- Seed **memory** summaries (`memory/`) and golden **examples** (`examples/`)

Requires **Node.js 20+**.

## Setup

```bash
cd CompleteMCP
npm ci                 # or: npm install
cp .env.example .env    # then edit .env and add your Firecrawl API key
```

A Firecrawl API key (https://firecrawl.dev) is only needed for scraping JDs by URL. You can also paste JD text directly via the `text` parameter with no key.

## Register with Cursor

Add to `~/.cursor/mcp.json` (or a project-level `.cursor/mcp.json`):

```json
{
  "mcpServers": {
    "resumemaker": {
      "command": "node",
      "args": ["/Users/sriman/Desktop/Code/CompleteMCP/index.js"]
    }
  }
}
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "resumemaker": {
      "command": "node",
      "args": ["/Users/sriman/Desktop/Code/CompleteMCP/index.js"]
    }
  }
}
```

### Codex CLI

```bash
codex mcp add resumemaker -- node /Users/sriman/Desktop/Code/CompleteMCP/index.js
```

## Tools (11)

| Tool | Input | Output |
|---|---|---|
| `get_jd` | `{url}` \| `{text}` \| `{file_path}` (+ optional `slug`) | JD content, slug, filter result, output paths |
| `get_base_resume` | `{}` | Base resume + per-job bullet counts |
| `set_base_resume` | `{resume_json}` | Replace the base resume (new source of truth) |
| `get_tailoring_rules` | `{}` | The full ruleset from `rules.md` |
| `list_skills` | `{}` | Bundled skills + short descriptions |
| `get_skill` | `{name}` | Full `SKILL.md` for one skill |
| `save_tailored_resume` | `{slug, resume_json}` | Save JSON to `data/` |
| `validate_resume` | `{json_path}` | Identity / fabrication / hedging / bullet-count check |
| `build_docx` | `{json_path}` | Build the DOCX |
| `list_jds` | `{}` | List saved JDs |
| `list_resumes` | `{}` | List tailored JSONs + DOCXs |

## Agent workflow

```
get_tailoring_rules()         → read the rules
get_base_resume()             → read base + bullet counts
list_skills() / get_skill()   → load technique (esp. resume-tailor-fabricator)
get_jd({url|text|file_path})  → scrape/load + filter the JD
[tailor the resume JSON]      → the AI step
save_tailored_resume({...})   → write to data/
validate_resume({json_path})  → must PASS
build_docx({json_path})       → generate DOCX
```

## Layout

```
CompleteMCP/
  index.js            MCP stdio server (11 tools)
  rules.md            Full tailoring rules (served by get_tailoring_rules)
  base_resume.json    Candidate base resume (source of truth)
  AGENTS.md           Agent startup instructions
  lib/                scraper.js, validator.js, builder.js, docx-helpers.js
  skills/             Bundled resume/JD skills (each a SKILL.md)
  memory/             Seed summaries of past tailorings
  examples/           Golden JD + tailored-JSON pairs
  jds/ data/ resumes/ Generated output (gitignored, auto-created)
```

All data stays local. `data/`, `jds/`, and `resumes/` are gitignored so every clone starts with empty output folders.

TDQS

A4.1/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a distinct, non-overlapping purpose. For example, get_jd handles JD input, list_jds lists saved JDs, and get_base_resume vs set_base_resume are clearly separate for reading vs writing the base resume.

Naming Consistency5/5

All tools use a consistent verb_noun snake_case pattern (e.g., get_jd, set_base_resume, validate_resume). Minor plural/singular variations (list_jds vs get_skill) do not detract from overall predictability.

Tool Count5/5

11 tools cover the core resume tailoring workflow without unnecessary extras. The count is well-scoped for the domain, offering enough granularity without being overwhelming.

Completeness4/5

The tool surface covers the full pipeline from JD acquisition to DOCX generation, with validation and listing. However, a tool to retrieve the content of a saved tailored resume is missing, which may force file-level access.

Maintenance

ActivityStale
ResponsivenessNo issues