Skip to main content
Glama

Server Details

ATS resume scoring, job analysis, interview prep, and auto-apply that verifies each submission.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

10 tools
aiapplyd_analyze_job_descriptionAnalyze Job DescriptionA
Read-only
Inspect

Extract what a job posting actually screens on: the exact ATS keywords, must-have versus nice-to-have requirements, seniority signals, and red flags. Call this before tailoring a resume so the resume mirrors the posting's own language. Requires a connected AI Applyd account and uses the user's AI credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_descriptionYesFull text of the job description

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description discloses that the tool requires a connected AI Applyd account and consumes the user's AI credits. This is important behavioral context about authentication and side effects (resource consumption) not captured by the annotations. It does not contradict the annotations.

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 three sentences long, front-loaded with the core purpose, and each sentence adds value: what it extracts, when to use it, and prerequisites. There is no redundant or vague wording, making it highly concise and effective.

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 simple one-parameter tool with no output schema, the description covers the core purpose, usage timing, prerequisites, and even enumerates the types of information it extracts (ATS keywords, requirements, seniority signals, red flags). It does not specify the exact return format, but this is a minor gap given the simplicity of the tool.

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?

The input schema already provides full coverage (100%) with the parameter description 'Full text of the job description'. The tool description reinforces that the input is the job posting text but adds no new constraints, format details, or examples. Baseline 3 is appropriate given the schema covers the parameter well.

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 specifies exactly what the tool does: extracts ATS keywords, must-have vs. nice-to-have requirements, seniority signals, and red flags from a job description. It uses a specific verb ('extract') and resource ('job posting'), and the detail distinguishes it from sibling tools like resume scoring or optimization.

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 explicitly states when to use the tool: 'Call this before tailoring a resume so the resume mirrors the posting's own language.' This gives clear contextual guidance. However, it does not explicitly mention alternatives or when not to use it, so it falls short of a 5.

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

aiapplyd_auto_applyAuto Apply to JobA
Destructive
Inspect

Apply to ONE specific job posting end to end: the resume and cover letter are rewritten for that role, then the form is completed and submitted on the employer's own hiring system, not a job board. All fifteen major ATS platforms land: Workday, Greenhouse, Lever, Ashby, Workable, iCIMS, Personio, Recruitee, Teamtailor, Rippling, Breezy, SmartRecruiters, BambooHR, JazzHR, softgarden. Follows the account's review setting: submits directly, or routes to the review queue. Requires a paid plan (Hired in 30+).

ParametersJSON Schema
NameRequiredDescriptionDefault
job_urlYesURL of the job posting to apply to

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already flag destructive and not-idempotent behavior, and the description adds substantial context on top: it actually rewrites documents, submits the form on the employer's ATS, and either submits directly or routes to a review queue based on account settings. It also discloses the paid-plan prerequisite, a behavioral constraint not available in schema or annotations.

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 sentences pack the core action, supported ATS platforms, review behavior, and pricing constraint without redundancy. The platform list is long but earns its place because compatibility is a valid decision input for the agent.

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?

For a destructive, externally visible action with one input parameter, the description covers what will happen, where it happens, which platforms are supported, how review settings affect submission, and the required paid plan. Return values are not described, but no output schema exists and the agent has enough to select and invoke the tool 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?

The single parameter job_url has a schema description, and the tool description adds useful selection semantics by emphasizing 'ONE specific job posting' and 'not a job board'. This tells the agent to pass a direct employer ATS posting URL rather than an aggregator link, which the schema alone does not convey.

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?

Opens with 'Apply to ONE specific job posting end to end', a specific verb and resource, and immediately distinguishes itself from sibling component-tools by covering the whole pipeline from rewriting to submission on the employer's own hiring system. The ATS list and review-queue behavior further pin down exactly what this tool does.

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 makes clear the tool is for applying to a single specific posting and not to a job-board listing, so an agent knows the right input context. It does not explicitly name sibling tools or say 'use X instead when you only want a cover letter/resume', but the scope is unambiguous enough for invocation.

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

aiapplyd_build_pdfBuild ResumeAInspect

Build a formatted, ATS-clean resume from raw text in the user's AI Applyd resume builder, where it stays editable and downloads as a PDF. Templates: modern, classic, or minimal. Private to the account by default; set make_public to true only if the user explicitly asks for a shareable public link. Requires a paid plan (Hired in 30+).

ParametersJSON Schema
NameRequiredDescriptionDefault
templateNoResume template style (default: classic)
make_publicNoPublish a public share link. Anyone with the link sees the resume INCLUDING its contact details. Defaults to false (private). Only set true when the user explicitly asks to share it.
resume_textYesFull text of the resume

TDQS

A4.3/5.0
Behavior5/5

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

The description discloses several behavioral traits beyond the annotations: the resume remains editable, downloads as a PDF, defaults to private with make_public only when explicitly requested, and requires a paid plan. This adds meaningful context about side effects (public link creation) and prerequisites not covered by the annotations. No contradiction with any annotation.

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 four sentences, front-loaded with the primary purpose, and each sentence carries meaningful information (output format, templates, privacy, paid plan). No filler or redundant content, though it could be slightly more compact.

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?

No output schema exists, so the description must clarify the return value. It says 'downloads as a PDF,' which implies a PDF output, but it does not specify whether the tool returns a link, binary content, or a confirmation. Overall, it covers the essential context for invocation, including side effects and requirements.

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 100%, so the baseline is 3. The description repeats the template enum and the make_public privacy behavior, but these are already fully described in the schema. It adds minimal extra meaning beyond what the schema provides, so a score of 3 is appropriate.

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 a specific action: 'Build a formatted, ATS-clean resume from raw text' in the user's AI Applyd resume builder, with output as an editable PDF. It clearly distinguishes itself from sibling tools like optimize_resume or score_resume by focusing on the build/format action and PDF generation.

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 clear context on when to use the tool—for building a resume from raw text with a choice of templates, and it notes the paid plan requirement and privacy default. It does not explicitly name alternative tools or state 'when not to use,' but the context is unambiguous enough for an agent.

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

aiapplyd_generate_cover_letterGenerate Cover LetterAInspect

Write a cover letter for a specific job from the resume already saved on the user's AI Applyd account, in their own voice and free of recruiter cliches. Returns the finished letter and saves it to the account. Requires a paid plan (Hired in 30+).

ParametersJSON Schema
NameRequiredDescriptionDefault
company_nameYesName of the company you are applying to
job_descriptionYesFull text of the target job description

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses important behavioral traits beyond annotations: it saves the letter (write side-effect) and requires a paid plan. It also mentions the output style (user's voice, no cliches). This adds meaningful context beyond the readOnlyHint=false annotation, with no contradiction.

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, front-loaded with the action, and covers purpose, output, side effect, and access requirement without any redundant wording.

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?

For a 2-parameter tool with no output schema, the description fully covers what the tool does, how it works (uses saved resume), what it returns, its side effect (saves to account), and an important prerequisite/constraint (paid plan). No gaps.

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?

Both parameters have full descriptions in the schema (100% coverage). The tool description adds no new parameter semantics beyond what the schema already provides, so the baseline of 3 is appropriate.

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 a specific verb ('Write') and resource ('cover letter for a specific job'), and notes it uses the saved resume and saves the result. This distinguishes it from siblings like generate_interview_questions and build_pdf, which serve different purposes.

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?

It provides clear context for when to use: when generating a tailored cover letter from the saved resume for a specific job. It does not explicitly name alternatives or exclusions, but the context is sufficient to infer appropriate use, earning a 4 rather than a 5.

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

aiapplyd_generate_interview_questionsGenerate Interview QuestionsA
Read-only
Inspect

Produce interview preparation for a specific role and company: company insights, the questions this role is asked with approach guidance, STAR scenarios drawn from the posting, talking points, questions to ask the interviewer, and salary negotiation prep. Requires a connected AI Applyd account.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_titleYesTitle of the position (e.g. "Senior Software Engineer")
company_nameYesName of the company
job_descriptionNoFull text of the job description (optional but recommended for better results)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds valuable context beyond annotations by stating the account requirement and that STAR scenarios are derived from the job posting, which clarifies the tool's behavior and data source.

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 a single, front-loaded sentence that efficiently lists all deliverable types and the account prerequisite. Every phrase adds value, with no redundant or filler content.

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?

The description thoroughly covers the tool's output sections and prerequisites, which is important given no output schema. However, it leaves ambiguity about how the tool behaves when job_description is omitted (since it's optional but central to STAR scenarios), preventing a perfect score.

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%, with all three parameters fully documented. The description adds slight extra meaning by linking job_description to STAR scenarios ('drawn from the posting') and mentioning 'specific role and company,' but does not substantially expand on the schema's parameter descriptions. Baseline 3 is appropriate.

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 uses a specific verb ('Produce') and identifies the resource ('interview preparation for a specific role and company'). It enumerates distinct output components (company insights, questions, STAR scenarios, etc.), making it clearly distinct from sibling tools like cover letter generation or resume optimization.

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 clearly conveys when to use the tool (preparing for an interview at a specific company/role) and includes a prerequisite (connected AI Applyd account). It does not explicitly name alternatives or exclusions, but the specificity of the output and the sibling tool names imply appropriate use cases.

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

aiapplyd_optimize_resumeOptimize Resume with AIAInspect

Rewrite a resume so it passes ATS screening. Returns the rewritten resume, a projected ATS score, and an itemised summary of every change made. Pass job_description to tailor the rewrite to one specific posting, or omit it for general ATS optimization. Requires a connected AI Applyd account.

ParametersJSON Schema
NameRequiredDescriptionDefault
resume_textYesFull text of the resume to optimize
job_descriptionNoFull text of the target job description (optional, omit for general ATS optimization)

TDQS

A4.4/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations: it reveals the three return components (rewritten resume, projected ATS score, itemized change summary) and the connected-account requirement. Annotations already indicate a non-read-only mutation, so the description meaningfully supplements them without contradiction.

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 sentences, all information-dense: main purpose and return values first, then optional-parameter behavior, then prerequisite. No filler or repetition of schema details.

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?

With no output schema, the description appropriately explains what the tool returns. It also covers the optional parameter behavior and requirement for a connected account. It could be slightly stronger by distinguishing itself from sibling tools, but nothing critical is missing for a correct call.

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 description coverage is 100%, so the schema already documents both parameters. The description adds value by explaining the conditional semantics of job_description: include it for a tailored rewrite or omit it for general optimization.

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 specifies a clear verb and resource: 'Rewrite a resume so it passes ATS screening.' It also differentiates from siblings like aiapplyd_score_resume by stating it returns a rewritten resume plus an itemized change summary, not just a score.

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?

It gives explicit conditional guidance: pass job_description to tailor to a specific posting, or omit it for general ATS optimization. It also states the account prerequisite. It does not explicitly name sibling alternatives, but the usage context is clear.

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

aiapplyd_score_resumeScore ResumeA
Read-only
Inspect

Score a resume for ATS compatibility. Returns an overall score, section scores, the keywords the resume matches and the ones it is missing, and specific rewrite suggestions. Pass job_description to score against a posting, or omit it for a general ATS readiness score. Requires a connected AI Applyd account and uses the user's credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
resume_textYesFull text of the resume
job_descriptionNoFull text of the job description (optional, omit for a general ATS readiness score)

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnly/destructive annotations, the description discloses meaningful operational behavior: it requires a connected AI Applyd account and consumes the user's credits. It also describes the return payload since no output schema exists. There is no contradiction with the annotations.

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 sentences, each earning its place: purpose and outputs, then parameter guidance, then prerequisites. Information is front-loaded and no filler is present.

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?

For a two-param, no-output-schema scoring tool, the description supplies all essential context: what it does, what it returns, how to vary behavior, and what account/cost prerequisities apply. Nothing needed for correct invocation is missing.

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. The description adds real value by explaining the semantic effect of including vs. omitting job_description, which the schema only labels as optional. resume_text needs no extra explanation beyond 'Full text of the resume.'

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 opens with a clear verb-resource pair: 'Score a resume for ATS compatibilty.' It also enumerates the concrete outputs (overarch score, section scores, matching/missing keywords, rewrite suggestions), which distinguishes it from sibling tools like optimize_resume or analyze_job_description. The optional job_description use case furter clarifies its exact scope.

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?

It provides actionable param-level guidance: pass job_description to score against a posting, or omit it for a general ATS readiness score. It does not explicitly compare itself to alternatives or state when not to use it, but the context is clear enough for an agent to decide.

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

aiapplyd_search_jobsSearch JobsA
Read-onlyIdempotent
Inspect

Return the user's AI-curated job matches, filtered by title, location, and remote preference. Each match carries a match score, company, location, salary, extracted skills, and the application URL. Read-only: it never changes which roles AI Applyd hunts for (use aiapplyd_update_job_preferences for that). Requires a connected AI Applyd account.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationNoPreferred location (e.g. "San Francisco, CA", "New York", "Remote")
job_titleYesJob title to search for (e.g. "Software Engineer", "Product Manager")
remote_onlyNoIf true, only show remote-friendly positions

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description goes further by specifying exactly what is unaffected ("it never changes which roles AI Applyd hunts for"), adding the account requirement, and describing the return payload (match score, company, location, salary, extracted skills, application URL) — all useful behavioral context beyond the annotations.

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 three sentences, front-loaded with the primary purpose. The first sentence covers action and scope, the second clarifies read-only behavior and names the alternative, and the third gives the prerequisite. Every sentence earns its place with zero filler.

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?

Despite having no output schema, the description compensates by listing the fields each match carries. It covers purpose, filters, return content, behavioral guarantees, the related sibling tool, and a prerequisite — complete for a straightforward search/list tool with only three flat parameters.

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 all three parameters (job_title, location, remote_only) with examples. The description's phrase "filtered by title, location, and remote preference" maps cleanly to the parameters but adds little new semantic meaning; the schema carries the heavy lifting, which matches the baseline of 3.

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 opens with a specific verb+resource: "Return the user's AI-curated job matches, filtered by title, location, and remote preference." This clearly distinguishes it from siblings like aiapplyd_score_resume or aiapplyd_auto_apply, and it explicitly contrasts with aiapplyd_update_job_preferences, which is the write counterpart.

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?

The description explicitly names the alternative tool: "use aiapplyd_update_job_preferences for that" — clarifying when NOT to use this tool. It also states the prerequisite of "a connected AI Applyd account," giving an agent the context needed to decide whether the tool is applicable.

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

aiapplyd_translate_resumeTranslate ResumeAInspect

Translate the resume saved on the user's AI Applyd account into another language, ready to send to employers in that market. Saves the translation as a new resume and leaves the original unchanged. Requires a connected AI Applyd account.

ParametersJSON Schema
NameRequiredDescriptionDefault
target_languageYesTarget language (e.g. "Spanish", "French", "German", "Japanese")

TDQS

A4.5/5.0
Behavior5/5

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

The description adds valuable behavioral context beyond the annotations: it explicitly states "Saves the translation as a new resume and leaves the original unchanged," which tells the agent the side effect and non-destructive nature. It also mentions the authentication requirement ("Requires a connected AI Applyd account"). No contradictions with annotations found.

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, front-loaded with the core action, and every phrase adds value. No redundant or filler content.

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?

For a simple single-parameter tool with no output schema and clear annotations, the description fully covers what the tool does, the side effect (creation of a new resume), and a key requirement (connected account). It is complete and sufficient for an agent to select and invoke it.

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 100% (target_language is fully described with examples), so the baseline is 3. The description mentions "another language" but adds no new syntactic or semantic details about the parameter beyond what the schema already provides.

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 verb and resource: "Translate the resume saved on the user's AI Applyd account into another language." It distinguishes from sibling tools like aiapplyd_optimize_resume or aiapplyd_generate_cover_letter by focusing specifically on translation, and mentions the outcome of being "ready to send to employers in that market."

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 when to use the tool through the phrase "ready to send to employers in that market," indicating a job-application context in a foreign language. It also notes a prerequisite ("Requires a connected AI Applyd account"), but does not explicitly name alternative tools 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.

aiapplyd_update_job_preferencesUpdate Job PreferencesA
DestructiveIdempotent
Inspect

Set the roles and locations AI Applyd hunts for on the user's behalf, and re-run discovery immediately. This REPLACES the target roles / locations currently saved on the account, so pass the complete list you want, not just an addition. Only call this when the user explicitly asks to change what they are looking for. Requires a connected AI Applyd account.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationsNoFull list of preferred locations. REPLACES the saved list.
remote_onlyNoWhether to include remote-friendly positions
target_rolesNoFull list of job titles to hunt for. REPLACES the saved list.

TDQS

A4.4/5.0
Behavior5/5

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

The description goes beyond annotations by explaining the destructive behavior concretely: it REPLACES saved lists, so the complete list must be provided. It also notes the immediate discovery re-run, adding behavioral context not present in annotations.

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 concise sentences: function, critical warning, and usage condition. No wasted words, and the most important information (replacement) is front-loaded.

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?

Covers the essential context: what it does, when to use it, the destructive side effect, and the prerequisite. No output schema exists, but for a mutation tool the description is sufficiently complete; minor gaps like return value are not critical.

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% and each parameter already has descriptive text (e.g., 'REPLACES the saved list'). The description adds no new parameter-level information beyond repeating the replace advice, so baseline 3 is appropriate.

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 a specific verb ('set') and resource ('roles and locations AI Applyd hunts for'), clearly distinguishing it from sibling tools like search_jobs or auto_apply. It also mentions the immediate re-run of discovery, which adds scope.

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?

It gives explicit when-to-use guidance ('Only call this when the user explicitly asks to change what they are looking for') and a prerequisite (connected account). It does not name alternative tools explicitly, but the exclusion is strong enough to guide an agent.

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. Dates show when Glama detected each change.

  1. 10 tool updates
    • Changedaiapplyd_analyze_job_description1 field changed
      • removedInput schema / properties / locale
        Removed value: -{
        -  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        -  "enum": [
        -    "en",
        -    "es",
        -    "de",
        -    "fr",
        -    "pt-BR"
        -  ],
        -  "type": "string"
        -}
    • Changedaiapplyd_auto_apply1 field changed
      • removedInput schema / properties / locale
        Removed value: -{
        -  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        -  "enum": [
        -    "en",
        -    "es",
        -    "de",
        -    "fr",
        -    "pt-BR"
        -  ],
        -  "type": "string"
        -}
    • Changedaiapplyd_build_pdf1 field changed
      • removedInput schema / properties / locale
        Removed value: -{
        -  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        -  "enum": [
        -    "en",
        -    "es",
        -    "de",
        -    "fr",
        -    "pt-BR"
        -  ],
        -  "type": "string"
        -}
    • Changedaiapplyd_generate_cover_letter1 field changed
      • removedInput schema / properties / locale
        Removed value: -{
        -  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        -  "enum": [
        -    "en",
        -    "es",
        -    "de",
        -    "fr",
        -    "pt-BR"
        -  ],
        -  "type": "string"
        -}
    • Changedaiapplyd_generate_interview_questions1 field changed
      • removedInput schema / properties / locale
        Removed value: -{
        -  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        -  "enum": [
        -    "en",
        -    "es",
        -    "de",
        -    "fr",
        -    "pt-BR"
        -  ],
        -  "type": "string"
        -}
    • Changedaiapplyd_optimize_resume1 field changed
      • removedInput schema / properties / locale
        Removed value: -{
        -  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        -  "enum": [
        -    "en",
        -    "es",
        -    "de",
        -    "fr",
        -    "pt-BR"
        -  ],
        -  "type": "string"
        -}
    • Changedaiapplyd_score_resume1 field changed
      • removedInput schema / properties / locale
        Removed value: -{
        -  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        -  "enum": [
        -    "en",
        -    "es",
        -    "de",
        -    "fr",
        -    "pt-BR"
        -  ],
        -  "type": "string"
        -}
    • Changedaiapplyd_search_jobs1 field changed
      • removedInput schema / properties / locale
        Removed value: -{
        -  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        -  "enum": [
        -    "en",
        -    "es",
        -    "de",
        -    "fr",
        -    "pt-BR"
        -  ],
        -  "type": "string"
        -}
    • Changedaiapplyd_translate_resume1 field changed
      • removedInput schema / properties / locale
        Removed value: -{
        -  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        -  "enum": [
        -    "en",
        -    "es",
        -    "de",
        -    "fr",
        -    "pt-BR"
        -  ],
        -  "type": "string"
        -}
    • Changedaiapplyd_update_job_preferences1 field changed
      • removedInput schema / properties / locale
        Removed value: -{
        -  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        -  "enum": [
        -    "en",
        -    "es",
        -    "de",
        -    "fr",
        -    "pt-BR"
        -  ],
        -  "type": "string"
        -}
  2. 10 tool updates
    • Changedaiapplyd_analyze_job_description1 field changed
      • addedInput schema / properties / locale
        Added value: +{
        +  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        +  "enum": [
        +    "en",
        +    "es",
        +    "de",
        +    "fr",
        +    "pt-BR"
        +  ],
        +  "type": "string"
        +}
    • Changedaiapplyd_auto_apply1 field changed
      • addedInput schema / properties / locale
        Added value: +{
        +  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        +  "enum": [
        +    "en",
        +    "es",
        +    "de",
        +    "fr",
        +    "pt-BR"
        +  ],
        +  "type": "string"
        +}
    • Changedaiapplyd_build_pdf1 field changed
      • addedInput schema / properties / locale
        Added value: +{
        +  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        +  "enum": [
        +    "en",
        +    "es",
        +    "de",
        +    "fr",
        +    "pt-BR"
        +  ],
        +  "type": "string"
        +}
    • Changedaiapplyd_generate_cover_letter1 field changed
      • addedInput schema / properties / locale
        Added value: +{
        +  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        +  "enum": [
        +    "en",
        +    "es",
        +    "de",
        +    "fr",
        +    "pt-BR"
        +  ],
        +  "type": "string"
        +}
    • Changedaiapplyd_generate_interview_questions1 field changed
      • addedInput schema / properties / locale
        Added value: +{
        +  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        +  "enum": [
        +    "en",
        +    "es",
        +    "de",
        +    "fr",
        +    "pt-BR"
        +  ],
        +  "type": "string"
        +}
    • Changedaiapplyd_optimize_resume2 fields changed
      • changedInput schema / properties / job_description / description
        Previous value: -"Full text of the target job description (optional -- omit for general ATS optimization)"New value: +"Full text of the target job description (optional, omit for general ATS optimization)"
      • addedInput schema / properties / locale
        Added value: +{
        +  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        +  "enum": [
        +    "en",
        +    "es",
        +    "de",
        +    "fr",
        +    "pt-BR"
        +  ],
        +  "type": "string"
        +}
    • Changedaiapplyd_score_resume2 fields changed
      • changedInput schema / properties / job_description / description
        Previous value: -"Full text of the job description (optional -- omit for a general ATS readiness score)"New value: +"Full text of the job description (optional, omit for a general ATS readiness score)"
      • addedInput schema / properties / locale
        Added value: +{
        +  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        +  "enum": [
        +    "en",
        +    "es",
        +    "de",
        +    "fr",
        +    "pt-BR"
        +  ],
        +  "type": "string"
        +}
    • Changedaiapplyd_search_jobs1 field changed
      • addedInput schema / properties / locale
        Added value: +{
        +  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        +  "enum": [
        +    "en",
        +    "es",
        +    "de",
        +    "fr",
        +    "pt-BR"
        +  ],
        +  "type": "string"
        +}
    • Changedaiapplyd_translate_resume1 field changed
      • addedInput schema / properties / locale
        Added value: +{
        +  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        +  "enum": [
        +    "en",
        +    "es",
        +    "de",
        +    "fr",
        +    "pt-BR"
        +  ],
        +  "type": "string"
        +}
    • Changedaiapplyd_update_job_preferences1 field changed
      • addedInput schema / properties / locale
        Added value: +{
        +  "description": "Language for the human-readable parts of the answer: en, es, de, fr or pt-BR. Defaults to the language this connection was opened in. Machine fields (ids, URLs, scores) never change.",
        +  "enum": [
        +    "en",
        +    "es",
        +    "de",
        +    "fr",
        +    "pt-BR"
        +  ],
        +  "type": "string"
        +}
  3. 3 tool updates
    • Changedaiapplyd_generate_cover_letter1 field changed
      • removedInput schema / properties / tone
        Removed value: -{
        -  "description": "Writing tone (default: professional)",
        -  "enum": [
        -    "professional",
        -    "conversational",
        -    "enthusiastic"
        -  ],
        -  "type": "string"
        -}
    • Changedaiapplyd_translate_resume2 fields changed
      • removedInput schema / properties / resume_text
        Removed value: -{
        -  "description": "Full text of the resume to translate",
        -  "maxLength": 50000,
        -  "minLength": 50,
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "resume_text",
        -  "target_language"
        -]New value: +[
        +  "target_language"
        +]
    • Changedaiapplyd_update_job_preferences6 fields changed
      • removedInput schema / properties / locations / items / maxLength
        Removed value: -200
      • removedInput schema / properties / locations / items / minLength
        Removed value: -1
      • removedInput schema / properties / locations / maxItems
        Removed value: -20
      • removedInput schema / properties / target_roles / items / maxLength
        Removed value: -200
      • removedInput schema / properties / target_roles / items / minLength
        Removed value: -2
      • removedInput schema / properties / target_roles / maxItems
        Removed value: -20
  4. 20 tool updates
    • Addedaiapplyd_analyze_job_description
    • Addedaiapplyd_auto_apply
    • Addedaiapplyd_build_pdf
    • Addedaiapplyd_generate_cover_letter
    • Addedaiapplyd_generate_interview_questions
    • Addedaiapplyd_optimize_resume
    • Addedaiapplyd_score_resume
    • Addedaiapplyd_search_jobs
    • Addedaiapplyd_translate_resume
    • Addedaiapplyd_update_job_preferences
    • Removedanalyze_job_description
    • Removedauto_apply
    • Removedbuild_pdf
    • Removedgenerate_cover_letter
    • Removedgenerate_interview_questions
    • Removedoptimize_resume
    • Removedscore_resume
    • Removedsearch_jobs
    • Removedtranslate_resume
    • Removedupdate_job_preferences
  5. 6 tool updates
    • Changedauto_apply1 field changed
      • removedInput schema / properties / resume_text
        Removed value: -{
        -  "description": "Full text of your resume (uses your default resume if not provided)",
        -  "maxLength": 50000,
        -  "minLength": 50,
        -  "type": "string"
        -}
    • Changedbuild_pdf2 fields changed
      • addedInput schema / properties / make_public
        Added value: +{
        +  "description": "Publish a public share link. Anyone with the link sees the resume INCLUDING its contact details. Defaults to false (private). Only set true when the user explicitly asks to share it.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / resume_text / description
        Previous value: -"Full text of the resume to convert to PDF"New value: +"Full text of the resume"
    • Changedgenerate_cover_letter2 fields changed
      • removedInput schema / properties / resume_text
        Removed value: -{
        -  "description": "Full text of your resume",
        -  "maxLength": 50000,
        -  "minLength": 50,
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "resume_text",
        -  "job_description",
        -  "company_name"
        -]New value: +[
        +  "job_description",
        +  "company_name"
        +]
    • Changedscore_resume2 fields changed
      • changedInput schema / properties / job_description / description
        Previous value: -"Full text of the job description"New value: +"Full text of the job description (optional -- omit for a general ATS readiness score)"
      • changedInput schema / required
        Previous value: -[
        -  "resume_text",
        -  "job_description"
        -]New value: +[
        +  "resume_text"
        +]
    • Removedscore_resume_ai
    • Addedupdate_job_preferences
  6. 10 tool updates
    • First observedanalyze_job_description
    • First observedauto_apply
    • First observedbuild_pdf
    • First observedgenerate_cover_letter
    • First observedgenerate_interview_questions
    • First observedoptimize_resume
    • First observedscore_resume
    • First observedscore_resume_ai
    • First observedsearch_jobs
    • First observedtranslate_resume

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    ATS resume scoring, job-description analysis, interview prep, cover letters, resume building and auto-apply that submits on the employer's own hiring system. Hosted remote server over Streamable HTTP with OAuth 2.1.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Automates ATS resume scanning via Jobscan, enabling AI to iteratively scan, analyze gaps, optimize, and rescan resumes against job descriptions to improve match rates.
    3
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool maps cleanly to a distinct job-search action: analyze a posting, apply, build/optimize/score/translate resumes, generate cover letters/interview prep, search jobs, and update preferences. The only adjacent pair, score_resume and optimize_resume, is clearly separated by assessment versus rewrite.

Naming Consistency5/5

All tools share a consistent aiapplyd_ prefix and follow an actionable verb_noun pattern: analyze_job_description, generate_cover_letter, score_resume, update_job_preferences. No style mixing or vague generic names are present.

Tool Count5/5

Ten tools is well-scoped for a job-application assistant, covering the main user journeys without redundancy or bloat. Each tool has a clear, non-overlapping responsibility.

Completeness4/5

The tool surface covers the core lifecycle: preferences, job search, resume analysis and optimization, PDF generation, cover letters, auto-apply, and interview prep. Minor gaps exist around listing saved resumes/cover letters and tracking submitted applications, but these are workable via the connected account.

Resources