Skip to main content
Glama

Save Work Experience

save_work_experience

Add or update a work experience entry (upsert). Omit id to create a new entry (title and startDate are required); pass an id (from get_profile) to update an existing one, changing only the fields you send. Every description should cover WHAT was built, HOW (technologies), IMPACT (users served, performance gains, revenue, uptime), and SCOPE (team size, scale). Push for measurable outcomes ("Built React frontend" -> "...serving 50K users, 40% faster"). The technologies array feeds job matching. Saving without an id always creates a new entry. Saved entries appear on the user's public profile, so they should describe real experience. Ask the user to confirm vague dates or fill real gaps.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoPresent: update this work-experience entry (only the fields you pass change). Omit: create a new one (title and startDate are required to create).
titleNoJob title
endDateNoEnd date: a date, e.g. "2024-01-15". Omit it for a current role
isRemoteNoWhether this job is remote (default false on create)
isCurrentNoWhether this is your current job (default false on create)
startDateNoStart date: a date, e.g. "2024-01-15"
companyUrlNoCompany website URL
companyNameNoCompany name
descriptionNoJob description
technologiesNoTechnologies used (e.g. ["React", "Node.js"]). They feed job matching

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / endDate / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 64,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / endDate / description
      Previous value: -"End date (ISO 8601), or null if current"New value: +"End date: a date, e.g. \"2024-01-15\". Omit it for a current role"
    • changedInput schema / properties / startDate / description
      Previous value: -"Start date (ISO 8601, e.g. \"2024-01-15\")"New value: +"Start date: a date, e.g. \"2024-01-15\""
    • addedInput schema / properties / startDate / maxLength
      Added value: +64
    • addedInput schema / properties / title / minLength
      Added value: +1
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations declare a non-idempotent, non-destructive write; the description adds real value on top by warning that saving without an id ALWAYS creates a new entry, that updates are partial (only sent fields change), and that saved entries appear on the user's public profile. That is meaningful side-effect and idempotency context beyond the annotation flags.

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 operational semantics (id behavior, required fields, public visibility) are front-loaded and efficient. The mid-section content-authoring advice about WHAT/HOW/IMPACT/SCOPE is longer and more coaching than tool definition, but it is still relevant to producing a valid payload.

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?

For a 10-parameter mutation tool with no output schema, it covers the important gaps: create-vs-update semantics, conditional required fields, side effects on the public profile, and a caution about confirming vague dates. Failure/validation behavior is the only notable omission.

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 coverage is 100%, so the baseline is 3, but the description goes further: it explains the conditional requirement of title/startDate on create and that the technologies array feeds job matching, plus content guidance for the description field. It adds meaning rather than restating the schema.

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 ("Add or update a work experience entry (upsert)") and immediately distinguishes the two modes by id presence. It is trivially separable from save_education, save_project, and save_job, which cover different profile resources.

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 explicit conditions: omit id to create (with title and startDate required), pass an id sourced from get_profile to update, and only the passed fields change. It does not name sibling tools to prefer over this one, but the create/update branch is unambiguous.

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.

Resources