Skip to main content
Glama

Copy a resume

create_resume_version

Create a new draft resume as a copy of an existing one — the original is left untouched. Optionally pass a vacancy_id to tailor against; it names the draft and links the copy to that vacancy (shown on the vacancy card and as a badge in the resume manager). Counts as one resume generation against the user's plan. Returns 'not_found' if the source resume (or vacancy) does not exist or does not belong to the current user, and 'limit_exceeded' if the plan quota is reached.

Input Schema

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescriptionDefault
idYesId of the newly created draft resume.
nameYes
vacancy_idNo
content_versionNoContent version of the new copy: a hash of the content, so it equals the source's until either changes. update_resume_section takes it as expected_content_version. The copy's entry ids differ from the source's.
source_resume_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare non-readOnly, non-destructive, non-idempotent, closed-world, so the bar is lower, yet the description adds real substance: the source is unmodified, the call consumes one plan generation, and it enumerates 'not_found' and 'limit_exceeded' failure modes including ownership scoping. It doesn't restate idempotency or reversal behavior, but the quota and error disclosures are valuable.

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?

Front-loaded with the core action and the non-destructive guarantee, then layers optional tailoring, cost, and error semantics in a logical order. It is a touch dense across three sentences but every clause carries information an agent would otherwise have to guess.

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?

With an output schema present, return-value detail is largely covered, and the description still adds quota, ownership, and error-name context plus the vacancy linkage. An agent has what it needs to invoke correctly, though explicit idempotency/retry expectations are left to the annotations.

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

Parameters3/5

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

The reported top-level coverage is 0% (the visible parameter is a $ref), but the nested input properties do carry their own descriptions. The description largely restates the vacancy_id linkage already in the schema (default name from vacancy title, badge/vacancy-card display) and adds only marginal detail, so it neither compensates strongly nor falls below the documented-schema baseline.

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?

States a specific verb and resource ('Create a new draft resume as a copy of an existing one') and immediately clarifies scope with 'the original is left untouched'. This cleanly separates it from siblings like rename_resume, delete_resume, and request_resume_update without the agent needing to open any schema.

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

Usage Guidelines4/5

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

Gives clear context for the optional tailoring path via vacancy_id and notes the plan-cost implication, plus it points to where ids come from (get_recent_vacancies, list_resumes). It stops short of explicit when-not guidance or naming an alternative copy mechanism, so it is context-rich but not fully routing.

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.