Skip to main content
Glama

Update Application Profile

getmattered_update_application_profile
DestructiveIdempotent

Saves only the fields passed, each a value the user stated. Self-identification answers are optional and accept prefer_not_to_say. Sends and spends nothing.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "getmattered_update_application_profile"
  }
}

Input Schema

NameRequiredDescriptionDefault
cityNoCity.
phoneNoPhone number, as the user gave it, for example +1 555 123 4567.
stateNoState, province or region.
genderNoOptional and sensitive. Gender, for the voluntary self-identification questions on employer forms. prefer_not_to_say declines to answer.
countryNoCountry.
pronounsNoOptional and sensitive. Pronouns in the user's own words, for example she/her, as stated and never inferred.
zip_codeNoZIP or postal code.
ethnicityNoOptional and sensitive. Ethnicity, for the voluntary self-identification questions on employer forms. prefer_not_to_say declines to answer.
github_urlNoGitHub profile URL.
linkedin_urlNoLinkedIn profile URL.
address_line1NoStreet address, line 1.
address_line2NoStreet address, line 2, such as an apartment or suite.
date_of_birthNoDate of birth as YYYY-MM-DD, when the user gives it; few employer forms ask for it.
notice_periodNoNotice period before the user can start.
portfolio_urlNoPortfolio or personal website URL.
veteran_statusNoOptional and sensitive. Veteran status, for the voluntary self-identification questions on employer forms. prefer_not_to_say declines to answer.
current_employerNoCurrent employer.
disability_statusNoOptional and sensitive. Disability status, for the voluntary self-identification questions on employer forms. prefer_not_to_say declines to answer.
highest_educationNoHighest education level completed.
personal_narrativeNoA short note, up to 500 characters, on career gaps, changes or short stints. Used for interview preparation.
security_clearanceNoSecurity clearance level. prefer_not_to_say declines to answer.
sexual_orientationNoOptional and sensitive. Sexual orientation, for the voluntary self-identification questions on employer forms. prefer_not_to_say declines to answer.
travel_willingnessNoHow much work travel the user accepts.
work_authorizationNoWork authorization status.
willing_to_relocateNoWhether the user is willing to relocate for a job.
years_of_experienceNoTotal years of professional experience.
available_start_dateNoEarliest start date as YYYY-MM-DD.
relocation_locationsNoPlaces the user would relocate to, as "City, Country" or "Country".
criminal_record_statusNoWhether the user has a conviction they are legally required to disclose. prefer_not_to_say declines to answer.
background_check_consentNoWhether the user consents to a background check where a role requires one. prefer_not_to_say declines to answer.
export_control_us_personNoWhether the user is a U.S. person for export-control (ITAR or EAR) purposes. prefer_not_to_say declines to answer.
related_to_employee_statusNoWhether the user is related to an employee of a company they apply to. prefer_not_to_say declines to answer.
restrictive_covenant_statusNoWhether the user is bound by a non-compete or non-solicit agreement with a former employer. prefer_not_to_say declines to answer.

Output Schema

NameRequiredDescriptionDefault
changedYesThe input fields this call saved. Empty from getmattered_get_application_profile, which only reads.
profileYesThe saved answers employer forms are filled from, after this call. Field names are the API's camelCase twins of the inputs.
setupStepNoPresent while account setup is open: the first setup step.
openQuestionsYesKept for existing clients, as an empty list. The answer text names the fields the user can add. Null when those details could not be read.
missingRequiredForApplyYesProfile fields employer forms can require that are empty. GetMattered fills address fields from the user's saved address and location. With gap filling on, it also fills an empty postal code. With gap filling off, a form that requires a postal code is not sent until the profile has one. An empty state or country never stops a form. The user adds each field once on the profile, not per application.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedOutput schema / properties / openQuestions / description
      Previous value: -"Kept for existing clients and always an empty list. The answer text names the fields the user can add. Null when those details could not be read."New value: +"Kept for existing clients, as an empty list. The answer text names the fields the user can add. Null when those details could not be read."
    • changedOutput schema / properties / setupStep / description
      Previous value: -"Set while account setup is open: the step to take first."New value: +"Present while account setup is open: the first setup step."
  2. Changed1 schema field changed
    • changedInput schema / properties / personal_narrative / anyOf
      Previous value: -[
      -  {
      -    "maxLength": 500,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 5000,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  3. Changed3 schema fields changed
    • changedInput schema / properties / date_of_birth / description
      Previous value: -"Date of birth as YYYY-MM-DD. Only when the user gives it; few employer forms ask for it."New value: +"Date of birth as YYYY-MM-DD, when the user gives it; few employer forms ask for it."
    • changedInput schema / properties / pronouns / description
      Previous value: -"Optional and sensitive. Pronouns in the user's own words, for example she/her. Never infer them."New value: +"Optional and sensitive. Pronouns in the user's own words, for example she/her, as stated and never inferred."
    • changedOutput schema / properties / missingRequiredForApply / description
      Previous value: -"Profile fields employer forms can require that are empty. GetMattered fills address fields from the user's saved address and location. With gap filling on, it also fills an empty postal code. With gap filling off, a form that requires a postal code is not sent until the profile has one. An empty state or country never stops a form. The user adds each field once on the profile. Never ask for them per application."New value: +"Profile fields employer forms can require that are empty. GetMattered fills address fields from the user's saved address and location. With gap filling on, it also fills an empty postal code. With gap filling off, a form that requires a postal code is not sent until the profile has one. An empty state or country never stops a form. The user adds each field once on the profile, not per application."
  4. Changed3 schema fields changed
    • changedOutput schema / properties / missingRequiredForApply / description
      Previous value: -"Fields employer forms require that are still empty. They are filled automatically while gap filling is on, and the user can add real values later."New value: +"Profile fields employer forms can require that are empty. GetMattered fills address fields from the user's saved address and location. With gap filling on, it also fills an empty postal code. With gap filling off, a form that requires a postal code is not sent until the profile has one. An empty state or country never stops a form. The user adds each field once on the profile. Never ask for them per application."
    • changedOutput schema / properties / openQuestions / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "applications": {
      -          "type": "number"
      -        },
      -        "fact": {
      -          "description": "The detail recent applications filled with a guess.",
      -          "type": "string"
      -        },
      -        "lastSeenAt": {
      -          "type": "string"
      -        },
      -        "setWith": {
      -          "description": "The input fields that answer it. Empty when it is asked per application and cannot be preset.",
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        }
      -      },
      -      "required": [
      -        "fact",
      -        "applications",
      -        "lastSeenAt",
      -        "setWith"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "applications": {
      +          "type": "number"
      +        },
      +        "fact": {
      +          "description": "A detail employer forms ask for.",
      +          "type": "string"
      +        },
      +        "lastSeenAt": {
      +          "type": "string"
      +        },
      +        "setWith": {
      +          "description": "The input fields that hold it. Empty when it is asked per application and cannot be preset.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "fact",
      +        "applications",
      +        "lastSeenAt",
      +        "setWith"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / openQuestions / description
      Previous value: -"Details GetMattered guessed because the user never gave them. Null when they could not be read."New value: +"Kept for existing clients and always an empty list. The answer text names the fields the user can add. Null when those details could not be read."
  5. Changed2 schema fields changed
    • changedOutput schema / properties / missingRequiredForApply / description
      Previous value: -"Fields employer forms require that are still empty. Ask the user; never guess."New value: +"Fields employer forms require that are still empty. They are filled automatically while gap filling is on, and the user can add real values later."
    • addedOutput schema / properties / setupStep
      Added value: +{
      +  "description": "Set while account setup is open: the step to take first.",
      +  "type": "string"
      +}
  6. Changed1 schema field changed
    • changedOutput schema / properties / changed / description
      Previous value: -"The input fields this call saved. Empty when it only read."New value: +"The input fields this call saved. Empty from getmattered_get_application_profile, which only reads."
  7. First observed

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=true and openWorldHint=false; the description usefully adds that unspecified fields are left untouched and that no external messages or charges occur ("sends and spends nothing"). It does not explain the destructiveHint flag — specifically whether passing null clears an existing value or what an overwrite costs — which is the key behavioral question for a mutation tool with 33 optional fields.

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

Conciseness5/5

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

Three short sentences, no filler, and the most important constraint (only passed fields are saved) is front-loaded. "Sends and spends nothing" is terse and earns its place by pre-empting the destructive/write fear the annotations raise.

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

Completeness2/5

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

For a 33-parameter destructive write with zero required fields, the description is thin: it never states what a null value does, whether omitted fields are preserved versus reset, or how this differs from the read-only profile siblings. An output schema exists so return values need no explanation, but the mutation contract itself is underspecified.

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?

Schema description coverage is 100%, so every field is documented at the property level and the description's restatement of optionality and prefer_not_to_say adds nothing new. The one piece of added meaning is the provenance rule (values must come from the user, not be inferred), which matters most for pronouns and the self-identification enums, but null-versus-omitted semantics for clearing a field are left unaddressed.

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

Purpose3/5

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

"Saves only the fields passed" conveys patch-style persistence, but the description never names the resource — the application profile — and gives no signal for choosing it over getmattered_get_application_profile (read) or getmattered_update_job_preferences (a different data set). The agent must fall back on the tool name to know what is being written.

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

Usage Guidelines3/5

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

"Each a value the user stated" is a real usage constraint: only persist values the user actually supplied, never inferred ones. But there is no explicit when-to-use trigger, no prerequisites, and no mention of the sibling read/write tools an agent might confuse this with.

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.