Skip to main content
Glama

Workopia — Job Search

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.4/5.0
Behavior4/5

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

Annotations show destructiveHint=true; the description confirms step 2 saves a PDF and requires sign-in. Adds critical context that the AI client writes the tailored resume (no external LLM) and that Workopia never charges for AI. Clearly states never to fabricate experience. Lacks full detail on what happens to existing resume data but is largely transparent.

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

Conciseness3/5

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

Well-structured with numbered steps and clear sections, but verbose. Repeats some points (e.g., instructions for job_id resolution appear twice). Could be tightened while retaining clarity.

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

Completeness4/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 complex two-step workflow, the description covers key aspects: workflow, parameter resolution, usage boundaries, and the AI's role. Lacks explicit mention of return values but is sufficient for correct usage.

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?

Description adds significant meaning beyond schema: explains action enum ('prepare' vs 'save'), how to resolve job_id via prior search, and that resume_data is the preferred structured shape used by server/UI. Job_description is described as alternative to job_id. Fallback fields (resume_text, user_profile) are clarified. Schema coverage is 53%, and the description compensates well.

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 explicitly states the tool tailors a resume to a specific job in a two-step process, using specific verbs ('Tailor', 'prepare', 'save') and clearly identifies the resource (resume). It distinguishes from sibling tool resume_tool for general improvement.

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?

Provides explicit when-to-use (user references a specific job) and when-not-to-use (general improvement, pointing to resume_tool). Includes detailed instructions for resolving job_id from prior search results with matching rules (numeric/ordinal, company, title) and warns against placeholders. Offers alternatives like job_description.

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.1/5.0
Disambiguation4/5

The four tools serve clearly distinct purposes: dashboard overview, job search/refine/save, job detail rendering, and resume tailoring. job_tool and job_detail_tool could be confused by name alone, but the descriptions explicitly route detail requests to job_detail_tool.

Naming Consistency3/5

All names use snake_case and share the '_tool' suffix, but there is no consistent verb_noun pattern: dashboard_tool, job_detail_tool, and job_tool are noun phrases while tailor_resume_tool is the only verb-led name. The pattern is readable but mixed.

Tool Count5/5

Four tools is well-scoped for a job-search assistant. Each tool covers a distinct user need—searching, viewing details, viewing the dashboard, and tailoring a resume—without unnecessary bloat.

Completeness3/5

Core workflows are covered: search, refine, save, view details, dashboard, and resume tailoring. However, the descriptions reference resume_tool and cover_letter_tool which are not present in the tool set, creating potential dead ends and notable gaps in the advertised surface.