Skip to main content
Glama

Generate Cover Letter

aiapplyd_generate_cover_letter
Destructive

Write a cover letter for a specific job from the user's default saved resume-builder document, or the first saved builder document if no default is set, in their own voice and free of recruiter cliches. Returns the finished letter as text and saves it to the account. Pass application_id instead to read the letter already written for that application. Add instructions only with application_id when the user asks to change that letter: the rewrite REPLACES the letter saved on the application. Writes from the user's resume on file, or a resume they paste or attach in this chat. If the user's plan does not include cover letters, it says so. Generation and revision use the user's AI credits; reading an existing letter does not run generation. Do not use it to apply to a job; use aiapplyd_apply. It also works without a resume-builder document. It uses the resume the user pasted or attached in this conversation (pass its text as resume_text), else the base resume uploaded to their account, else their resume-builder document.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
resume_textNoThe resume the user pasted or attached in this conversation, as plain text. Omit it to use the resume already on the user's AI Applyd account.
company_nameNoName of the company you are applying to
instructionsNoWith application_id: what to change in that letter, in the user's own words.
application_idNoReturn the cover letter already written for this application (an id from aiapplyd_get_applications) instead of writing a new one.
job_descriptionNoFull text of the target job description. Pass with company_name, or pass application_id instead.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
sourceYesgenerated: newly written; application: the letter already prepared for application_id; refined: that letter, changed as asked.
companyNameYes
coverLetterYes
resumeSourceNoWhich resume a new letter was written from.
applicationIdYes
resumeBuildIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / resume_text
      Added value: +{
      +  "description": "The resume the user pasted or attached in this conversation, as plain text. Omit it to use the resume already on the user's AI Applyd account.",
      +  "maxLength": 50000,
      +  "minLength": 50,
      +  "type": "string"
      +}
    • addedOutput schema / properties / resumeSource
      Added value: +{
      +  "description": "Which resume a new letter was written from.",
      +  "enum": [
      +    "pasted",
      +    "attached",
      +    "on_file",
      +    "builder"
      +  ],
      +  "type": "string"
      +}
  2. Changed4 schema fields changed
    • removedOutput schema / properties / applicationId / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / applicationId / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / resumeBuildId / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / resumeBuildId / type
      Added value: +[
      +  "number",
      +  "null"
      +]
  3. Changed6 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / application_id / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / applicationId / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / applicationId / type
      Removed value: -[
      -  "number",
      -  "null"
      -]
    • addedOutput schema / properties / resumeBuildId / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / resumeBuildId / type
      Removed value: -[
      -  "number",
      -  "null"
      -]
  4. Changed8 schema fields changed
    • addedInput schema / properties / application_id
      Added value: +{
      +  "description": "Return the cover letter already written for this application (an id from aiapplyd_get_applications) instead of writing a new one.",
      +  "exclusiveMinimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / instructions
      Added value: +{
      +  "description": "With application_id: what to change in that letter, in the user's own words.",
      +  "maxLength": 2000,
      +  "type": "string"
      +}
    • changedInput schema / properties / job_description / description
      Previous value: -"Full text of the target job description"New value: +"Full text of the target job description. Pass with company_name, or pass application_id instead."
    • removedInput schema / required
      Removed value: -[
      -  "job_description",
      -  "company_name"
      -]
    • addedOutput schema / properties / applicationId
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / resumeBuildId / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / source
      Added value: +{
      +  "description": "generated: newly written; application: the letter already prepared for application_id; refined: that letter, changed as asked.",
      +  "enum": [
      +    "generated",
      +    "application",
      +    "refined"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "coverLetter",
      -  "companyName",
      -  "resumeBuildId",
      -  "url"
      -]New value: +[
      +  "coverLetter",
      +  "companyName",
      +  "source",
      +  "resumeBuildId",
      +  "applicationId",
      +  "url"
      +]
  5. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "companyName": {
      +      "type": "string"
      +    },
      +    "coverLetter": {
      +      "type": "string"
      +    },
      +    "resumeBuildId": {
      +      "type": "number"
      +    },
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "coverLetter",
      +    "companyName",
      +    "resumeBuildId",
      +    "url"
      +  ],
      +  "type": "object"
      +}
  6. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.