Skip to main content
Glama

tailor_resume_tool

Destructive

Tailor a resume to a SPECIFIC job — TWO steps. STEP 1 (default; action omitted or 'prepare'): the server returns the job's full JD, its must-have skills/requirements, and the candidate's current resume, plus tailoring instructions. YOU (the model) then WRITE the tailored resume as JSON Resume, following the instructions — weave JD keywords into existing bullets only where the candidate genuinely has the experience, never fabricate experience/titles/dates/employers, keep all dates and company names, and flag any keyword you couldn't honestly add. STEP 2: call this tool again with action:'save', tailored_resume:, and job_id — the server renders a PDF and saves it to the candidate's Workopia dashboard (requires sign-in). Use whenever the user references a specific job to tailor for: 'tailor for #1', 'for Morgan Stanley', 'tailor my resume for this role: '. Resolving job_id (same rules as job_detail_tool): from the most recent prior search/refine result — (a) numeric/ordinal → the Nth job; (b) company name → Company-field match; (c) role/title phrase → Job-Title match — then pass that job's Job Id value VERBATIM. Do NOT use placeholders like 'JOB_1' or '#1'. For STEP 1 supply ONE of job_id (preferred — server fetches the JD from Mongo) OR job_description, plus the candidate's resume via resume_text / resume_content / resume_data. For general 'improve my resume' (no specific job), do NOT call this tool — call resume_tool action=improve instead. Note: the tailored resume is written by your AI client's own model — the assistant you are already using — so it works out of the box with nothing to configure; Workopia runs no LLM of its own and never charges for the AI.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionNoOmit or 'prepare' = STEP 1 (server returns JD + resume + instructions for you to tailor). 'save' = STEP 2 (pass tailored_resume; server renders a PDF and saves it to the dashboard; requires sign-in).
job_idNoID of a job from a prior search/refine result. Use the **Job Id** value from the prior search result's content text VERBATIM. Server fetches full JD from Mongo.
companyNo
job_titleNo
parametersNo
session_idNo
user_emailNo
resume_dataNoPREFERRED shape — structured resume per utils/tailor/types.ts ResumeTree. Server, widget, and main-site PDF template all consume this exact shape. Collect these fields from the user before calling when possible.
resume_textNoUser's resume content (plain text or JSON Resume as string). Fallback when resume_data is not provided.
user_profileNoOptional main-site profile object; used as a fallback source for name/title/contact/experience when resume_data and resume_text are both absent.
tailor_resumeNoOptional wrapper containing the same fields above (legacy shape).
resume_contentNo
job_descriptionNoFull JD text when the user pastes it directly (alternative to job_id).
tailored_resumeNoSTEP 2 only: the tailored resume you generated, as a JSON Resume object (or a JSON string). The server renders it to PDF and stores it on profile.applications[job_id].resumeTailor.
customization_levelNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses the two-step process, the fact that the AI writes the resume, that STEP 2 requires sign-in, and that the server saves a PDF. Annotations indicate destructiveHint=true, which aligns with the save step. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed and front-loaded with the two-step overview, but somewhat verbose. However, every sentence adds necessary context for a complex multi-step tool, so it earns a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 15 parameters, no output schema, and nested objects, the description covers all essential aspects: steps, parameter usage, resolution rules, prerequisites, and constraints. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 53% schema description coverage, the description adds significant value by explaining job_id resolution rules, the preferred shape for resume_data, action enum semantics, and fallback options. It compensates for the medium coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Tailor a resume to a SPECIFIC job — TWO steps.' It distinguishes from siblings by specifying when to use resume_tool instead and mentions cover_letter_tool implicitly through context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage guidance: 'Use whenever the user references a specific job to tailor for' and 'For general improve my resume (no specific job), do NOT call this tool — call resume_tool action=improve instead.' Also provides clear rules for job_id resolution.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct responsibility: dashboard overview, job detail rendering, job search/refine/save, and resume tailoring. The job_tool description explicitly routes detail requests to job_detail_tool, preventing overlap.

Naming Consistency4/5

All tool names use snake_case with a _tool suffix, giving a recognizable pattern. The mix of noun-based names (dashboard_tool, job_tool) and verb-based names (tailor_resume_tool) is a minor inconsistency, and job_tool is more generic than its siblings.

Tool Count5/5

Four tools is well-scoped for a focused job-search and resume-tailoring assistant, and each tool covers a meaningful user workflow. There are no redundant or excessive tools.

Completeness3/5

The core search → detail → save → tailor → dashboard loop is covered, but the descriptions reference resume_tool and cover_letter_tool that are not exposed in the server, creating dead ends for those requests. There are also no unsave/delete or direct apply actions for saved jobs.

Resources