Skip to main content
Glama

Add an application

add_application

Add a new job application to your tracker with a not-applied status, while preventing duplicate company+role or link entries and requiring confirmation before any write.

Instructions

Add a new row with the not-applied status. Refuses a duplicate (same company+role or link).

The tool writes only with the user's yes. The client may ask in its own confirmation dialog. Otherwise call with dry_run=true, show the preview to the user, and after they agree in a new message repeat the same call with confirm=. The write is refused if the tracker changed since expected_version. A backup is taken first, and undo_last_write reverts the write.

Input Schema

NameRequiredDescriptionDefault
linkNoApplication URL
roleYesJob title, as in the posting
extraNoOther columns: a field name from describe_tracker or an exact header text -> value
notesNoText for the notes column
companyYesCompany name
confirmNoToken from the dry run the user approved. Not needed when the client shows the server's confirmation dialog
dry_runNoOnly show what would change, plus the confirm token; write nothing
allow_duplicateNoAdd it even though the same company+role or link is already in the tracker (a second application on purpose)
expected_versionNo`version` from your last read; the write is refused if the file changed since

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.5.2
    • addedInput schema / properties / allow_duplicate / description
      Added value: +"Add it even though the same company+role or link is already in the tracker (a second application on purpose)"
    • addedInput schema / properties / company / description
      Added value: +"Company name"
    • addedInput schema / properties / notes / description
      Added value: +"Text for the notes column"
    • addedInput schema / properties / role / description
      Added value: +"Job title, as in the posting"
  2. First observedv0.5.1

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations: a backup is taken first, undo_last_write can revert it, the write is refused on a version mismatch, and duplicates are rejected on company+role or link. The annotations only mark it non-read-only and non-destructive; the description supplies the actual safety and failure semantics an agent needs.

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?

Purpose and duplicate rule are front-loaded in the first two sentences, and the confirmation protocol follows in a compact paragraph. Slightly dense, but each sentence carries non-obvious operational information.

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?

With an output schema present, annotations covering the safety profile, and 100% schema coverage, the description fills the remaining gaps: consent flow, token mechanics, optimistic-concurrency refusal, backup/undo. Nothing needed to call it correctly is absent.

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 the schema already documents company, role, link, notes, extra, confirm, dry_run, allow_duplicate and expected_version. The description only reinforces confirm and expected_version, which the schema already explains; it adds no new meaning for the remaining parameters. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Add a new row') and pins down the resulting state ('not-applied status') plus the duplicate-refusal rule, which lets an agent distinguish it from edit_application or set_status. It never names a sibling explicitly, so differentiation is inferred rather than declared.

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 a concrete usage protocol: write only after user consent, either via the client's own confirmation dialog or via dry_run=true followed by a repeat call with confirm=<token> in a new user message. What is missing is guidance on the create-vs-edit boundary (when to prefer edit_application or allow_duplicate for an intentional second application).

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