Skip to main content
Glama

jobkit-mcp

CI pyright: strict Python 3.14+ License: MIT

MCP server for managing job application materials. Reads your resume from the workspace, fetches job postings and company info, compiles LaTeX resumes, and persists research, strategies, and interview prep per company. The host Claude does all reasoning — this server handles data access and persistence.

Quickstart

Requires Python 3.14+ and uv.

git clone <repo-url>
cd jobkit-mcp
uv sync

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "people": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/jobkit-mcp", "jobkit-mcp"],
      "env": {
        "JOBKIT_WORKSPACE": "/Users/you/Projects/resume"
      }
    }
  }
}

Related MCP server: jobjourney-claude-plugin

Tools

Tool

Description

get_profile

Read resume.tex from workspace root as professional profile

list_applications

List all application directories with their files

get_application

Get all text file content for one company

read_application_file

Read any file from an application by filename

save_application_file

Save/update any file in an application

delete_application

Remove an entire application directory

fetch_url

Fetch a URL, return text with HTML stripped

save_job_posting

Fetch URL or accept pasted text, save as job posting

compile_resume

Compile resume.tex with lualatex (company dir or root)

mock_interview

Start a mock interview — returns briefing for Claude to play interviewer

Workspace Layout

$JOBKIT_WORKSPACE/
├── resume.tex              # Base resume (used by get_profile)
├── coverletter.txt         # Base cover letter
├── META.md                 # Base strategy
├── stripe/
│   ├── resume.tex          # Tailored resume
│   ├── coverletter.txt     # Tailored cover letter
│   ├── META.md             # Application strategy
│   └── job_posting.md      # Saved job posting
└── anthropic/
    └── ...

Any file can be stored in a company directory — there is no whitelist. Build artifacts (.aux, .log, .out, .pdf, .gz, .fls, .fdb_latexmk) are skipped in listings.

Documentation

  • Tutorial — Walk through a complete application workflow end-to-end

  • How-To Guides — Focused recipes for specific tasks

  • Reference — Complete tool parameters, return values, and internals

  • Explanation — Architecture decisions and design rationale

Available Tools

10 tools
compile_resumeA

Compile resume.tex using lualatex. Compiles in a company directory, or the workspace root if no company is specified.

Args: company: Company name (optional — omit to compile the base resume)

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNo
workspace_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions compilation with lualatex and the output directory, but does not disclose side effects (e.g., overwriting files, error handling, output file name). For a mutation-like tool, this lacks sufficient behavioral detail.

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?

The description is extremely concise: two sentences plus a one-line argument description. It front-loads the main action and wastes no words. Every sentence adds value.

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

Completeness3/5

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

Given the tool's simplicity and the presence of an output schema (not shown), the description covers the basic purpose and usage. However, it omits details like prerequisites (resume.tex existence), output file location, and error scenarios. Adequate but could be improved.

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 0%, so the description must compensate. It adds meaning for the 'company' parameter ('optional — omit to compile the base resume') but does not explain 'workspace_dir' at all. Partial coverage, adequate but not complete.

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 description clearly states 'Compile resume.tex using lualatex', specifying the action (compile) and the resource (resume.tex). It distinguishes from sibling tools like read_application_file or save_application_file by its specific compile function. The optional company parameter adds nuance.

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?

The description explains when to use the company parameter ('Compiles in a company directory, or the workspace root if no company is specified'). It provides clear context but does not explicitly state when not to use or list alternatives, though no siblings overlap.

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

delete_applicationC

Remove an entire application directory and all its files.

Args: company: Company name

ParametersJSON Schema
NameRequiredDescriptionDefault
companyYes
workspace_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It mentions destructive removal but fails to disclose consequences, permissions required, irreversibility, or impact on other resources. The optional workspace_dir parameter is not addressed.

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

Conciseness3/5

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

The description is brief (two sentences) and front-loaded with purpose, but it is too sparse. Conciseness is achieved at the expense of necessary detail.

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

Completeness1/5

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

Given two parameters (one optional), no annotations, and an output schema not described, the description fails to explain workspace_dir, return value, or scope of 'entire application directory'. It is completely inadequate for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It only restates 'company: Company name' which adds no meaning beyond the schema type. The required workspace_dir parameter is omitted entirely from the description.

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 description clearly states the tool removes an entire application directory and all its files, specifying the verb and resource. It distinguishes from sibling tools as no other tool performs deletion.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It lacks context for appropriate usage.

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

fetch_urlB

Fetch a URL and return its text content (HTML tags stripped).

Args: url: Full URL to fetch

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions returning text with HTML stripped, but omits details like timeouts, error handling, size limits, or authentication needs.

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?

The description is two sentences with a clear structure. Every word is purposeful and there is no waste.

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

Completeness3/5

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

Given the output schema exists, return values need not be explained. However, the description lacks context on typical use cases, error conditions, or when URL fetching is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% with one required parameter 'url'. The description adds only 'Full URL to fetch', which is minimal. With low coverage, the description should compensate more but does not.

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 description 'Fetch a URL and return its text content (HTML tags stripped)' uses a specific verb and resource, clearly stating what the tool does. No sibling tool performs a similar function, so no differentiation needed.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no exclusions or prerequisites. The description only states the action without context.

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

get_applicationC

Get all text file content for one application.

Args: company: Company name (e.g. "stripe", "Anthropic")

ParametersJSON Schema
NameRequiredDescriptionDefault
companyYes
workspace_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
filesYes
companyYes

TDQS

C2.1/5.0
Behavior2/5

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

With no annotations, the description bears the full burden of disclosing behavioral traits. It mentions the tool returns 'all text file content' but does not indicate whether this is a read-only operation, the size of potential data, authorization requirements, or any side effects.

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

Conciseness3/5

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

The description is very short (two sentences plus argument list) and front-loads the main action, but the brevity comes at the cost of clarity. The structure is minimal yet functional.

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?

Despite having an output schema, the description lacks essential context: it does not define what an 'application' is, how the 'company' parameter maps to an application, or what kind of text file content is returned. For a tool with ambiguous purpose, this is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are 2 parameters with 0% schema description coverage. The description only provides examples for the 'company' parameter ('e.g. "stripe", "Anthropic"') but does not explain the purpose or format of 'workspace_dir'. The meaning of 'company' in relation to 'application' is also unclear.

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

Purpose2/5

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

The description states 'Get all text file content for one application' but the sole required parameter is 'company', which creates confusion about what the tool actually retrieves. It does not clearly specify what constitutes an 'application' or why a company name is needed, and it fails to distinguish itself from siblings like read_application_file or list_applications.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as read_application_file or list_applications. There is no mention of prerequisites, limitations, or scenarios where this tool should be avoided.

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

get_profileC

Return the professional profile by reading resume.tex from the workspace root.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description must fully convey behavioral traits. It indicates a read operation ('reading'), but lacks details on what happens if resume.tex is missing, whether it modifies any state, or any permission requirements. The transparency is minimal.

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 a single, clear sentence front-loading the main purpose. It is not verbose, but it omits parameter and usage context that would improve completeness without sacrificing conciseness.

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?

Given the tool's simplicity (one optional param) and presence of an output schema, the description is incomplete. It fails to explain the workspace_dir parameter and provides no context about when to use this tool among siblings. The output schema may cover return values, but usage and parameter semantics are lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter (workspace_dir) with 0% description coverage. The description does not mention this parameter, explain its purpose (overriding workspace root?), or how it affects behavior. The agent receives no additional meaning beyond the schema's bare definition.

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 description clearly states the tool returns a professional profile by reading a specific file (resume.tex) from the workspace root. The verb 'Return' and resource 'professional profile' are specific, and the method of reading resume.tex distinguishes it from siblings like compile_resume (compilation) or read_application_file (general file reading).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like read_application_file or compile_resume. It does not mention prerequisites (e.g., resume.tex must exist) or exclusions, leaving the agent to infer usage context from the sibling list alone.

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

list_applicationsA

List all job application directories with their files.

Each application directory may contain resume.tex, coverletter.txt, META.md, job_posting.md, and any other research or strategy documents.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

No annotations exist, so the description carries full burden. It states the tool lists directories and their files—a non-destructive read operation. No side effects, permissions, or limitations are mentioned, but the behavior is inherently transparent.

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?

Two sentences, front-loaded with the main action, every sentence adds value. No fluff or redundancy.

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

Completeness3/5

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

Given an output schema exists (not shown), return values need not be explained. The description provides useful detail about directory contents but omits the parameter and any relation to siblings. Adequate for a simple list tool but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (workspace_dir not mentioned), and the description adds no meaning to the sole optional parameter. With low coverage, description must compensate but fails entirely, leaving agents unaware of the parameter's purpose.

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 description clearly states the tool lists all job application directories and their files, which differentiates it from siblings like 'get_application' (single app) and 'read_application_file' (specific file). The verb 'list' and resource 'application directories with their files' are specific and actionable.

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?

The description implies usage for an overview of all applications and mentions typical files, hinting at when to use sibling tools. However, no explicit when-not-to-use or alternative guidance is given, though context from sibling names fills the gap somewhat.

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

mock_interviewA

Start a mock interview session. Returns a briefing with all application materials, your profile, and interviewer guidance so Claude can play the interviewer role.

After the session, save feedback and areas to improve using save_application_file.

Args: company: Company name interview_type: One of: behavioral, technical, culture, manager

ParametersJSON Schema
NameRequiredDescriptionDefault
companyYes
workspace_dirNo
interview_typeNobehavioral

Output Schema

ParametersJSON Schema
NameRequiredDescription
companyYes
profileYes
materialsYes
interview_typeYes
interviewer_guidanceYes
interview_descriptionYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It implies the tool is read-only by saying it 'returns a briefing' and does not mention modifications, but does not explicitly state that no data is changed. It discloses the interactive nature (Claude plays interviewer) but lacks detail on side effects or state changes.

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?

The description is concise: two sentences plus an Args list. No unnecessary words, front-loaded with the core purpose, and structured for quick parsing.

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?

Given there is an output schema (not shown), the description doesn't need to detail return values. It covers the tool's action, prerequisites (company), and post-use advice. Missing details on workspace_dir parameter and potential statefulness, but overall sufficient.

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?

The input schema has 3 parameters with no descriptions (0% schema_description_coverage). The tool description compensates by documenting 'company' and 'interview_type' with allowed values, but omits 'workspace_dir'. This adds meaning beyond the schema but is incomplete.

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 description clearly states it starts a mock interview session and returns a briefing with application materials. It also instructs on the subsequent action (using save_application_file). This distinguishes it from siblings, none of which focus on mock interviews.

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?

The description explains when to use the tool (to start a mock interview) and what to do after (save feedback). It does not explicitly state when not to use it or list alternatives, but given no similar siblings, this is adequate.

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

read_application_fileB

Read a single file from an application directory.

Args: company: Company name filename: Name of the file to read (e.g. "resume.tex", "META.md", "job_posting.md")

ParametersJSON Schema
NameRequiredDescriptionDefault
companyYes
filenameYes
workspace_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'read' implying non-destructive behavior but does not disclose error handling, file existence behavior, or permissions. Minimal behavioral context.

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 short and to the point, with an Args section that lists parameters. However, the Args section essentially duplicates the schema without adding insight, making it slightly redundant.

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?

Despite having an output schema (not shown), the description does not clarify return values or error conditions. With no annotations and minimal parameter explanation, the tool is under-documented for a 3-parameter read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only adds meaning for 'filename' with examples. 'company' and 'workspace_dir' are not explained beyond names. Insufficient compensation for lack of schema descriptions.

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 description clearly states the tool reads a single file from an application directory, specifying the verb 'read' and resource 'file'. It distinguishes from siblings like save_application_file and list_applications.

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?

The description provides example filenames (e.g., 'resume.tex', 'META.md') which help the agent understand suitable usage. However, it lacks explicit when-not-to-use instructions or alternatives.

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

save_application_fileB

Save or update a file in an application directory.

Args: company: Company name filename: Name of the file to save (e.g. "notes.md", "company_research.md") content: Content to save

ParametersJSON Schema
NameRequiredDescriptionDefault
companyYes
contentYes
filenameYes
workspace_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It indicates mutation ('save or update') but does not clarify whether existing files are overwritten, what happens if the directory doesn't exist, or any permission requirements. Key behavioral traits are missing.

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 brief (three lines plus args list) and front-loaded with the main purpose. It uses a clean docstring format. No extraneous text, but could be slightly more structured by separating the args list more clearly.

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

Completeness3/5

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

Given that an output schema exists, the description does not need to detail return values. However, it omits context about overwrite behavior, error handling, and the optional workspace_dir parameter. It is adequate but leaves gaps for a mutation tool.

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?

The description adds meaning for three of four parameters: 'company' (Company name), 'filename' (with example values), and 'content' (Content to save). However, 'workspace_dir' is not described despite being present in the schema. This is useful but incomplete.

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 description states 'Save or update a file in an application directory', clearly indicating the action (save/update) and resource (file in application directory). This distinguishes it from the sibling 'read_application_file'. The verb and resource are specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'read_application_file' or 'delete_application'. There is no mention of prerequisites, contexts, or when not to use it. The description lacks any usage direction.

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

save_job_postingB

Fetch a job posting URL or accept pasted text, and save it for a company.

Args: company: Company name url: URL of the job posting to fetch (provide url or content, not both) content: Pasted job posting text (provide url or content, not both)

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
companyYes
contentNo
workspace_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavior. It states it fetches/saves but does not explain what 'save' entails (side effects, storage location), error behavior for conflicting inputs, or mention the workspace_dir parameter. Significant gaps remain.

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 concise with two sentences and a bullet list. It is front-loaded with purpose. The bullet list could be more structured, but it efficiently conveys key information without waste.

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?

Despite having an output schema, the description misses the workspace_dir parameter, provides no context on 'save' behavior, and lacks guidance on when to use this tool. For a tool with 4 parameters and no annotations, this is incomplete.

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 coverage is 0%, so the description must add meaning. It explains company, url, content, and notes mutual exclusivity of url and content. However, it omits workspace_dir entirely, and the explanations are brief, lacking types or examples.

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?

The description clearly states the tool fetches a URL or accepts text and saves it for a company. The verb 'save' and resource 'job posting' are specific, but it does not explicitly distinguish from sibling tools like fetch_url or save_application_file.

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?

The description provides a clear usage rule: provide url or content, not both. However, it does not mention when to use this tool over alternatives (e.g., fetch_url for just fetching, or when not to use it).

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv0.1.0
    • First observedcompile_resume
    • First observeddelete_application
    • First observedfetch_url
    • First observedget_application
    • First observedget_profile
    • First observedlist_applications
    • First observedmock_interview
    • First observedread_application_file
    • First observedsave_application_file
    • First observedsave_job_posting

TDQS

B3.3/5.0

Scored across 10 tools

Disambiguation4/5

Tools have distinct purposes, but fetch_url and save_job_posting both involve fetching URLs; descriptions clarify difference (generic vs. job posting and save).

Naming Consistency5/5

All tool names follow verb_noun pattern in snake_case, e.g., compile_resume, delete_application, get_profile, mock_interview.

Tool Count5/5

10 tools provide a well-scoped set for job application management without being too few or too many.

Completeness4/5

Covers CRUD for applications, resume compilation, job posting saving, and mock interviews, but missing an explicit create_application tool to initialize a directory.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers