Skip to main content
Glama

Read or Update the Application Profile

aiapplyd_update_application_profile
DestructiveIdempotent

Read or update the user's application profile: the answers AI Applyd types into employer forms. It covers contact details and links, work authorization, relocation, start date, notice period, education, the legal declarations, and the…

Instructions

Read or update the user's application profile: the answers AI Applyd types into employer forms. It covers contact details and links, work authorization, relocation, start date, notice period, education, the legal declarations, and the voluntary self-identification (EEO) answers. Call it with no fields to read the profile and the open questions: required fields that are empty, and details recent applications had to guess because the user never gave them. Pass fields to save them; only the passed fields change, and null clears one. Save only answers the user gave you, never guesses. The EEO answers (gender, ethnicity, veteran_status, disability_status, sexual_orientation, pronouns) are optional and sensitive: they are used only to answer the voluntary self-identification questions on employer forms, and each one accepts prefer_not_to_say to decline. Nothing is sent to any employer and nothing is spent. Do not use it to change which jobs the user is matched with; use aiapplyd_update_job_preferences. Next: aiapplyd_get_matches or aiapplyd_apply.

Input Schema

TableJSON 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. Never infer them.
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. Only 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

TableJSON Schema
NameRequiredDescriptionDefault
changedYesThe input fields this call saved. Empty when it only read.
profileYesThe saved answers employer forms are filled from, after this call. Field names are the API's camelCase twins of the inputs.
openQuestionsYesDetails AI Applyd guessed because the user never gave them. Null when they could not be read.
missingRequiredForApplyYesFields employer forms require that are still empty. Ask the user; never guess.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.9.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and readOnlyHint=false; the description explains the mechanism behind that (only passed fields change, null clears one) and adds context annotations cannot carry: the policy to save only user-given answers and never guesses, and the explicit side-effect statement that nothing is sent to any employer and nothing is spent. It also flags the EEO fields as optional and sensitive with a decline path.

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 purpose, then read mode, write mode, safety policy, exclusions, and next steps in a logical order with no filler. It is somewhat long, but for a tool covering 33 fields with read/write dual behavior and sensitive data, nearly every sentence carries load.

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?

An output schema exists, so return formatting need not be explained, and the description still covers the read-mode payload conceptually ('open questions: required fields that are empty, and details recent applications had to guess'). With zero required parameters, the patch-style semantics, the clearing behavior, and the provenance policy are all disclosed, leaving nothing an agent needs in order to call it correctly.

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, and each field description already states its own meaning and sensitivity. The description adds meaning the schema does not: that a null value clears a field (only implied by the anyOf null schema), that personal_narrative feeds interview preparation, and how the declared fields group into employer-form answers. It does not add per-field syntax beyond that.

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 ('read or update the user's application profile'), names the concrete content domain (contact details, work authorization, declarations, EEO answers), and explicitly distinguishes itself from aiapplyd_update_job_preferences. An agent can identify and separate this tool from its ~20 siblings without opening the schema.

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?

Gives explicit invocation modes ('call it with no fields to read', 'pass fields to save them'), an exclusion with a named alternative (job preferences → aiapplyd_update_job_preferences), and a next-step route (aiapplyd_get_matches / aiapplyd_apply). This is exactly the when/when-not/alternatives structure needed for a 33-parameter tool.

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