Skip to main content
Glama

Start Tailoring Session

create_tailoring_session
Destructive

Starts a job-specific resume tailoring workflow by scoring a base resume and listing gaps in fix-cost order, so you can resolve them before tailoring.

Instructions

Start the gap-analysis tailoring workflow for a job + base resume.

Calling again for the same job+base SUPERSEDES the open session (saved
resolutions become unreachable); list_tailoring_sessions shows existing
sessions. A failing fatal health gate on the base is a 409.

Scores the base (deterministic ATS engine, persisted as the 'before' score) and
returns a session whose gaps_json.categories list every gap in fix-cost order:
missing skills, wording mismatches, placement upgrades, stale evidence, adjacent
skills, title/structure. The intended flow is: gather the user's answer for each
gap, save them with resolve_gaps, then tailor_session. Each gap carries its
allowed actions. A missing skill MAY use add_keyword ONLY to add the keyword to
a skills category (placement_target.section="skills"): that inserts an
unverified skills-list item, never a fabricated bullet. The evidence-backed
alternatives are a user_input resolution (the user's answer to
enrichment.elicitation_question), attach_project, or skip.

use_presets=True also fills every gap the user's Quick tailor presets decide
(get_tailoring_options explains them), with no AI; undecided gaps are saved
as skip. When that fill fails, the error names the session it started.

enrich=True has Maestro's AI add display-only explanations to each gap (one
fast-model call with the user's key; no score, gap or career-history match
changes). Refused (409) when the user's writer setting (get_setup_status) says
the agent app writes: run it without enrich, the default, which calls no model.

Response is the session (filled, with use_presets) plus a `next` hint (null
when hints are off or unavailable). `base_anchors` are the base's emphasis
hints (countries, role, company, focus), not evidence; the anchor company is
the resume's own target, not necessarily this job's employer.

Input Schema

NameRequiredDescriptionDefault
enrichNo
job_idYes
base_resumeYes
use_presetsNoTrue: once the session is created, fill it from the user's Quick tailor presets (get_tailoring_options explains them) through resolve_gaps' honesty-gated save path, deterministically and with no AI. The presets plan only mechanical, evidence-respecting moves; the fill does not write resume text. The returned resolutions_json may already resolve every gap, including system-planned entries (payload.provenance); a gap the presets do not decide is saved as skip. A session whose answers are all skip is not an error: the presets allowed nothing for it, and resolve_gaps still saves answers on it. An unverified or absent skill enters only a skills category (add_skill_item), never as an experience or project bullet; the server does not gate edit ops the caller writes against fabricated skills, experience, metrics or dates. A stale or no-longer-open session blocks the fill (409). The `next` hint then carries the presets' standing instruction as tailor_session's user_prompt when the session has no note of its own.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.12.0
    • addedInput schema / properties / use_presets
      Added value: +{
      +  "default": false,
      +  "description": "True: once the session is created, fill it from the user's Quick tailor presets (get_tailoring_options explains them) through resolve_gaps' honesty-gated save path, deterministically and with no AI. The presets plan only mechanical, evidence-respecting moves; the fill does not write resume text. The returned resolutions_json may already resolve every gap, including system-planned entries (payload.provenance); a gap the presets do not decide is saved as skip. A session whose answers are all skip is not an error: the presets allowed nothing for it, and resolve_gaps still saves answers on it. An unverified or absent skill enters only a skills category (add_skill_item), never as an experience or project bullet; the server does not gate edit ops the caller writes against fabricated skills, experience, metrics or dates. A stale or no-longer-open session blocks the fill (409). The `next` hint then carries the presets' standing instruction as tailor_session's user_prompt when the session has no note of its own.",
      +  "title": "Use Presets",
      +  "type": "boolean"
      +}
  2. First observedv0.11.1

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the destructive supersede behavior for existing open sessions, the 409 fatal health gate, and the fact that saved resolutions become unreachable. It further explains enrich's model call and refusal condition based on the writer setting, use_presets' deterministic no-AI fill, and failure behavior when that fill fails.

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 front-loaded with the core purpose and destructive behavior, then proceeds logically through workflow, parameters, and response shape. It is long and dense with parenthetical detail, but most content is relevant for a complex tool with multiple behavioral branches.

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?

There is no output schema, but the description explains the returned session shape, gaps_json.categories ordering, allowed actions per gap, the `next` hint, and `base_anchors` semantics. It also covers important error cases such as 409 health-gate failures, enrich refusals, and stale-session conflicts.

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?

Schema description coverage is low at 25%, so the description must compensate. It gives rich semantics for enrich and use_presets, including side effects, refusal conditions, and preset fill behavior; however, it does not add much detail about the job_id and base_resume identifier parameters beyond their roles in the workflow.

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 first sentence states a specific verb (start) and resource/workflow (gap-analysis tailoring session for a job + base resume), making the tool immediately identifiable. It also distinguishes itself from siblings by naming list_tailoring_sessions, resolve_gaps, and tailor_session in the surrounding flow.

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?

The description explicitly describes the intended sequence: gather each gap answer, save with resolve_gaps, then call tailor_session. It also names alternatives and conditions, including using list_tailoring_sessions to inspect existing sessions, when add_keyword is allowed versus user_input/attach_project/skip, and when enrich or use_presets should be used or avoided.

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

Deploy Server

Other Tools