AI Applyd
What this MCP does
Finds jobs, scores and tailors resumes, prepares interviews, manages applications, and submits applications to employer systems.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_description'], 'properties': {'job_description': {'type': 'string', 'maxLength': 50000, 'minLength': 50, 'description': 'Full text of the job description'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['keywords'], 'properties': {'keywords': {'type': 'array', 'items': {'type': 'object', 'required': ['term', 'category', 'importance', 'mustHave'], 'properties': {'term': {'type': 'string'}, 'category': {'type': 'string'}, 'mustHave': {'type': 'boolean'}, 'importance': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'mode': {'enum': ['auto', 'review'], 'type': 'string', 'description': '"auto" submits with no review step. "review" holds the prepared application for the user\'s approval. Omit to follow the user\'s account setting. Applies to this application only.'}, 'job_url': {'type': 'string', 'format': 'uri', 'description': 'URL of any job posting to apply to (e.g. "https://boards.greenhouse.io/acme/jobs/123"). Pass this OR job_match_id.'}, 'job_match_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The job_match_id of a match from aiapplyd_get_matches (e.g. 48213). Pass this OR job_url.', 'exclusiveMinimum': 0}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['outcome', 'applicationId', 'jobMatchId', 'jobTitle', 'company', 'jobUrl', 'requestedMode', 'recordedMode', 'status', 'preparationStatus', 'preparedUnderFreeWatch', 'alreadyExisted', 'trackingUrl'], 'properties': {'jobUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Our own record. Never proof the employer received it.'}, 'company': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'outcome': {'enum': ['started', 'already_in_progress', 'not_confirmed'], 'type': 'string', 'description': 'started: a new application; already_in_progress: this job already had one (alreadyExisted); not_confirmed: the user declined, nothing was sent.'}, 'jobTitle': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'jobMatchId': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'trackingUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'recordedMode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'applicationId': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'The application to follow with aiapplyd_get_applications. Null only when nothing was started.'}, 'requestedMode': {'anyOf': [{'enum': ['auto_approve', 'copilot'], 'type': 'string'}, {'type': 'null'}]}, 'alreadyExisted': {'type': 'boolean', 'description': 'True when this job already had an application, which is returned instead of a second one.'}, 'preparationStatus': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'preparedUnderFreeWatch': {'type': 'boolean'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_url'], 'properties': {'job_url': {'type': 'string', 'format': 'uri', 'description': 'URL of the job posting to apply to'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['outcome', 'applicationId', 'jobMatchId', 'jobTitle', 'company', 'jobUrl', 'requestedMode', 'recordedMode', 'status', 'preparationStatus', 'preparedUnderFreeWatch', 'alreadyExisted', 'trackingUrl'], 'properties': {'jobUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Our own record. Never proof the employer received it.'}, 'company': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'outcome': {'enum': ['started', 'already_in_progress', 'not_confirmed'], 'type': 'string', 'description': 'started: a new application; already_in_progress: this job already had one (alreadyExisted); not_confirmed: the user declined, nothing was sent.'}, 'jobTitle': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'jobMatchId': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'trackingUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'recordedMode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'applicationId': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'The application to follow with aiapplyd_get_applications. Null only when nothing was started.'}, 'requestedMode': {'anyOf': [{'enum': ['auto_approve', 'copilot'], 'type': 'string'}, {'type': 'null'}]}, 'alreadyExisted': {'type': 'boolean', 'description': 'True when this job already had an application, which is returned instead of a second one.'}, 'preparationStatus': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'preparedUnderFreeWatch': {'type': 'boolean'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['resume_text'], 'properties': {'template': {'enum': ['classic', 'modern', 'minimal'], 'type': 'string', 'description': 'Resume template style (default: classic)'}, 'make_public': {'type': 'boolean', '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.'}, 'resume_text': {'type': 'string', 'maxLength': 50000, 'minLength': 50, 'description': 'Full text of the resume'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['resumeBuildId', 'template', 'url', 'publicUrl'], 'properties': {'url': {'type': 'string'}, 'template': {'type': 'string'}, 'publicUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'resumeBuildId': {'type': 'number'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'company_name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Name of the company you are applying to'}, 'instructions': {'type': 'string', 'maxLength': 2000, 'description': "With application_id: what to change in that letter, in the user's own words."}, 'application_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Return the cover letter already written for this application (an id from aiapplyd_get_applications) instead of writing a new one.', 'exclusiveMinimum': 0}, 'job_description': {'type': 'string', 'maxLength': 50000, 'minLength': 50, 'description': 'Full text of the target job description. Pass with company_name, or pass application_id instead.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['coverLetter', 'companyName', 'source', 'resumeBuildId', 'applicationId', 'url'], 'properties': {'url': {'type': 'string'}, 'source': {'enum': ['generated', 'application', 'refined'], 'type': 'string', 'description': 'generated: newly written; application: the letter already prepared for application_id; refined: that letter, changed as asked.'}, 'companyName': {'type': 'string'}, 'coverLetter': {'type': 'string'}, 'applicationId': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'resumeBuildId': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'job_title': {'type': 'string', 'maxLength': 200, 'minLength': 2, 'description': 'Title of the position (e.g. "Senior Software Engineer"). Pass with company_name, or pass application_id instead.'}, 'company_name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Name of the company. Pass with job_title, or pass application_id instead.'}, 'application_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Prep for the job of this application (an id from aiapplyd_get_applications). Replaces job_title and company_name.', 'exclusiveMinimum': 0}, 'job_description': {'type': 'string', 'maxLength': 50000, 'description': 'Full text of the job description (optional but recommended for better results)'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobId', 'jobTitle', 'companyName', 'questionsToAsk', 'prepUrl'], 'properties': {'jobId': {'type': 'number'}, 'prepUrl': {'type': 'string'}, 'jobTitle': {'type': 'string'}, 'companyName': {'type': 'string'}, 'questionsToAsk': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['plan', 'tokenBalance', 'applications', 'freeApplications', 'preferences', 'readiness', 'resumes', 'defaultApplyMode', 'autopilot', 'billingUrl'], 'properties': {'plan': {'anyOf': [{'type': 'object', 'required': ['name', 'tier', 'status', 'interval', 'currentPeriodEnd', 'endsAt'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'tier': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'endsAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'status': {'type': 'string'}, 'interval': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'currentPeriodEnd': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'resumes': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'isBase', 'updatedAt'], 'properties': {'id': {'type': 'number', 'description': 'Pass to aiapplyd_set_resume as document_id to make it the base resume.'}, 'title': {'type': 'string'}, 'isBase': {'type': 'boolean'}, 'updatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, {'type': 'null'}]}, 'autopilot': {'anyOf': [{'enum': ['active', 'paused'], 'type': 'string'}, {'type': 'null'}], 'description': 'Whether AI Applyd applies on its own. Read only.'}, 'readiness': {'type': 'object', 'required': ['resumeOnFile', 'onboardingComplete', 'missingRequiredForApply'], 'properties': {'resumeOnFile': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means apply will fail: call aiapplyd_set_resume first.'}, 'onboardingComplete': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'missingRequiredForApply': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'description': 'Profile fields employer forms require that are empty. Ask the user; never guess.'}}, 'additionalProperties': False}, 'billingUrl': {'type': 'string'}, 'preferences': {'anyOf': [{'type': 'object', 'required': ['targetRoles', 'locations', 'includeRemote', 'remoteWorldwide', 'active'], 'properties': {'active': {'type': 'boolean'}, 'locations': {'type': 'array', 'items': {'type': 'string'}}, 'targetRoles': {'type': 'array', 'items': {'type': 'string'}}, 'includeRemote': {'type': 'boolean'}, 'remoteWorldwide': {'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'applications': {'anyOf': [{'type': 'object', 'required': ['used', 'limit', 'remaining', 'resetAt', 'canApplyNow'], 'properties': {'used': {'type': 'number'}, 'limit': {'type': 'number'}, 'resetAt': {'type': 'string'}, 'remaining': {'type': 'number'}, 'canApplyNow': {'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'tokenBalance': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'defaultApplyMode': {'anyOf': [{'enum': ['auto', 'review'], 'type': 'string'}, {'type': 'null'}], 'description': 'What aiapplyd_apply does when mode is omitted. Read only.'}, 'freeApplications': {'anyOf': [{'type': 'object', 'required': ['used', 'limit', 'remaining', 'resetAt', 'earnedRemaining'], 'properties': {'used': {'type': 'number'}, 'limit': {'type': 'number'}, 'resetAt': {'type': 'string'}, 'remaining': {'type': 'number'}, 'earnedRemaining': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page number, starting at 1 (e.g. 2 for the next page)', 'exclusiveMinimum': 0}, 'status': {'enum': ['waiting_for_review', 'queued_to_apply', 'verified', 'submitted', 'not_landed', 'taken_down'], 'type': 'string', 'description': 'Filter the list: waiting_for_review (the review queue), queued_to_apply, submitted, verified, not_landed or taken_down. Omit for all.'}, 'application_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Read one application by its id (e.g. 1550). Omit to list applications.', 'exclusiveMinimum': 0}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['applications', 'page', 'totalPages', 'totalApplications', 'detail'], 'properties': {'page': {'type': 'number'}, 'detail': {'anyOf': [{'type': 'object', 'required': ['applicationId', 'jobListingId', 'tailoredResume', 'coverLetter', 'contentLocked', 'screeningAnswers', 'statusCode', 'statusLabel', 'errorCode', 'errorMessage', 'autoRetryStopped', 'nextAutoRetryAt', 'queuePosition', 'queueEtaMinutes', 'confirmationScreenshotAttached'], 'properties': {'errorCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'statusCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'coverLetter': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'statusLabel': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'errorMessage': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'jobListingId': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'applicationId': {'type': 'number'}, 'contentLocked': {'type': 'boolean', 'description': 'True when the resume and cover letter are a preview and the full text needs a plan.'}, 'queuePosition': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'tailoredResume': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'nextAutoRetryAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'queueEtaMinutes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'autoRetryStopped': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'screeningAnswers': {'type': 'array', 'items': {'type': 'object', 'required': ['question', 'answer'], 'properties': {'answer': {'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}}, 'confirmationScreenshotAttached': {'type': 'boolean', 'description': "True when the employer's verified confirmation page is attached as an image."}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Filled when one application_id was read: what will be or was sent.'}, 'totalPages': {'type': 'number'}, 'applications': {'type': 'array', 'items': {'type': 'object', 'required': ['applicationId', 'jobMatchId', 'jobTitle', 'company', 'jobUrl', 'status', 'applyMode', 'waitingForReview', 'employerConfirmed', 'confirmationProofs', 'createdAt', 'appliedAt', 'trackingUrl'], 'properties': {'jobUrl': {'type': 'string'}, 'status': {'type': 'string', 'description': 'Our own record of the application. Never proof the employer received it; see employerConfirmed.'}, 'company': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'jobTitle': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'appliedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'applyMode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'createdAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'jobMatchId': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'trackingUrl': {'type': 'string'}, 'applicationId': {'type': 'number', 'description': 'Pass to aiapplyd_review_application or back to aiapplyd_get_applications.'}, 'waitingForReview': {'type': 'boolean', 'description': "True when the application waits for the user's approval."}, 'employerConfirmed': {'type': 'boolean', 'description': 'True ONLY when the employer sent a receipt or showed its confirmation page.'}, 'confirmationProofs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'What proves employerConfirmed: "receipt" and/or "screenshot".'}}, 'additionalProperties': False}}, 'totalApplications': {'type': 'number'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page number, starting at 1 (e.g. 2 for the next page)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Matches per page, 1 to 50 (default 10)'}, 'query': {'type': 'string', 'maxLength': 200, 'description': 'Narrow the list to titles containing this text (e.g. "Product Designer").'}, 'job_url': {'type': 'string', 'format': 'uri', 'description': 'Read any job posting by URL without saving it (e.g. "https://jobs.lever.co/acme/123").'}, 'location': {'type': 'string', 'maxLength': 200, 'description': 'Preferred location (e.g. "San Francisco, CA", "New York", "Remote")'}, 'saved_only': {'type': 'boolean', 'description': 'If true, only return the matches the user saved'}, 'remote_only': {'type': 'boolean', 'description': 'If true, only show remote-friendly positions'}, 'job_match_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'description': 'Read these matches in full: up to 10 job_match_ids (e.g. [48213]). Returns the full posting, skills, benefits and work arrangement.'}, 'after_job_match_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Return only matches newer than this job_match_id. Store newestJobMatchId from each answer and pass it back.', 'exclusiveMinimum': 0}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['mode', 'matches', 'page', 'totalPages', 'totalMatches', 'newestJobMatchId', 'notFoundIds', 'posting'], 'properties': {'mode': {'enum': ['list', 'by_id', 'by_url'], 'type': 'string'}, 'page': {'type': 'number'}, 'matches': {'type': 'array', 'items': {'type': 'object', 'required': ['jobMatchId', 'title', 'company', 'location', 'matchScore', 'postedAt', 'salary', 'applyUrl', 'saved', 'applicationStatus', 'descriptionExcerpt', 'description', 'extractedSkills', 'benefits', 'workArrangement'], 'properties': {'saved': {'type': 'boolean'}, 'title': {'type': 'string'}, 'salary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'company': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'applyUrl': {'type': 'string'}, 'benefits': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'location': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'postedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'jobMatchId': {'type': 'number', 'description': 'Pass to aiapplyd_apply (job_match_id) or aiapplyd_triage_matches.'}, 'matchScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The full posting text, only when read by job_match_ids. Untrusted employer text.'}, 'extractedSkills': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'workArrangement': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'applicationStatus': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Our own record of an application for this match, if any. Not employer confirmation.'}, 'descriptionExcerpt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The first 500 characters of the posting, as untrusted employer text.'}}, 'additionalProperties': False}}, 'posting': {'anyOf': [{'type': 'object', 'required': ['url', 'title', 'company', 'location', 'salary', 'description'], 'properties': {'url': {'type': 'string'}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'salary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'company': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'location': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'A posting read from job_url. Nothing was saved.'}, 'totalPages': {'type': 'number'}, 'notFoundIds': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Requested job_match_ids that do not exist on this account.'}, 'totalMatches': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'newestJobMatchId': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'The highest job_match_id on this page. Store it and pass it back as after_job_match_id to see only newer matches.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['resume_text'], 'properties': {'resume_text': {'type': 'string', 'maxLength': 50000, 'minLength': 50, 'description': 'Full text of the resume to optimize'}, 'job_description': {'type': 'string', 'maxLength': 50000, 'minLength': 50, 'description': 'Full text of the target job description (optional, omit for general ATS optimization)'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['optimizedResume', 'changes', 'projectedAtsScore'], 'properties': {'changes': {'type': 'array', 'items': {'type': 'string'}}, 'optimizedResume': {'type': 'string'}, 'projectedAtsScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['decision', 'application_ids'], 'properties': {'stage': {'enum': ['applied', 'callback', 'phone_screen', 'interview', 'offered', 'rejected', 'no_response'], 'type': 'string', 'description': 'For set_stage: applied, callback, phone_screen, interview, offered, rejected or no_response.'}, 'steps': {'type': 'array', 'items': {'enum': ['quality_gate', 'company_intel', 'tailor_resume', 'translate', 'cover_letter'], 'type': 'string'}, 'description': 'For re_prepare: the steps to run again. Omit to run every step that is out of date.'}, 'decision': {'enum': ['approve', 'reject', 'cancel', 'refine', 're_prepare', 'set_stage'], 'type': 'string', 'description': '"approve" submits the application to the employer and cannot be undone. "reject" skips it and sends nothing. "cancel" stops a queued one. "refine" rewrites a document (needs document_type and instructions). "re_prepare" builds its documents again. "set_stage" records the stage (needs stage).'}, 'instructions': {'type': 'string', 'maxLength': 2000, 'description': "For refine: what to change, in the user's own words (up to 2,000 characters)."}, 'document_type': {'enum': ['resume', 'cover_letter'], 'type': 'string', 'description': 'For refine: "resume" or "cover_letter".'}, 'application_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'description': 'Application ids to act on, 1 to 25 (e.g. [1550, 1551]), from aiapplyd_get_applications'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['decision', 'results', 'succeeded', 'attempted', 'notConfirmed'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['applicationId', 'ok', 'status', 'reason', 'refinedContent', 'applicationStage', 'trackingUrl'], 'properties': {'ok': {'type': 'boolean'}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Machine reason when ok is false, or "already_approved" for an approve that had already gone through.'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Our own record after the action. Never proof the employer received it.'}, 'trackingUrl': {'type': 'string'}, 'applicationId': {'type': 'number'}, 'refinedContent': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'applicationStage': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'decision': {'enum': ['approve', 'reject', 'cancel', 'refine', 're_prepare', 'set_stage'], 'type': 'string'}, 'attempted': {'type': 'number'}, 'succeeded': {'type': 'number'}, 'notConfirmed': {'type': 'boolean', 'description': 'True when the user declined the confirmation prompt and nothing was sent.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['resume_text'], 'properties': {'resume_text': {'type': 'string', 'maxLength': 50000, 'minLength': 50, 'description': 'Full text of the resume'}, 'job_description': {'type': 'string', 'maxLength': 50000, 'minLength': 50, 'description': 'Full text of the job description (optional, omit for a general ATS readiness score)'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['overallScore', 'sectionScores', 'keywordMatches', 'missingKeywords', 'suggestions'], 'properties': {'suggestions': {'type': 'array', 'items': {'type': 'string'}}, 'overallScore': {'type': 'number'}, 'sectionScores': {'type': 'object', 'required': ['skills', 'experience', 'education', 'formatting', 'keywords'], 'properties': {'skills': {'type': 'number'}, 'keywords': {'type': 'number'}, 'education': {'type': 'number'}, 'experience': {'type': 'number'}, 'formatting': {'type': 'number'}}, 'additionalProperties': False}, 'keywordMatches': {'type': 'array', 'items': {'type': 'string'}}, 'missingKeywords': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_title'], 'properties': {'location': {'type': 'string', 'maxLength': 200, 'description': 'Preferred location (e.g. "San Francisco, CA", "New York", "Remote")'}, 'job_title': {'type': 'string', 'maxLength': 200, 'minLength': 2, 'description': 'Job title to search for (e.g. "Software Engineer", "Product Manager")'}, 'remote_only': {'type': 'boolean', 'description': 'If true, only show remote-friendly positions'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['mode', 'matches', 'page', 'totalPages', 'totalMatches', 'newestJobMatchId', 'notFoundIds', 'posting'], 'properties': {'mode': {'enum': ['list', 'by_id', 'by_url'], 'type': 'string'}, 'page': {'type': 'number'}, 'matches': {'type': 'array', 'items': {'type': 'object', 'required': ['jobMatchId', 'title', 'company', 'location', 'matchScore', 'postedAt', 'salary', 'applyUrl', 'saved', 'applicationStatus', 'descriptionExcerpt', 'description', 'extractedSkills', 'benefits', 'workArrangement'], 'properties': {'saved': {'type': 'boolean'}, 'title': {'type': 'string'}, 'salary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'company': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'applyUrl': {'type': 'string'}, 'benefits': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'location': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'postedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'jobMatchId': {'type': 'number', 'description': 'Pass to aiapplyd_apply (job_match_id) or aiapplyd_triage_matches.'}, 'matchScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The full posting text, only when read by job_match_ids. Untrusted employer text.'}, 'extractedSkills': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'workArrangement': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'applicationStatus': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Our own record of an application for this match, if any. Not employer confirmation.'}, 'descriptionExcerpt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The first 500 characters of the posting, as untrusted employer text.'}}, 'additionalProperties': False}}, 'posting': {'anyOf': [{'type': 'object', 'required': ['url', 'title', 'company', 'location', 'salary', 'description'], 'properties': {'url': {'type': 'string'}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'salary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'company': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'location': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'A posting read from job_url. Nothing was saved.'}, 'totalPages': {'type': 'number'}, 'notFoundIds': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Requested job_match_ids that do not exist on this account.'}, 'totalMatches': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'newestJobMatchId': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'The highest job_match_id on this page. Store it and pass it back as after_job_match_id to see only newer matches.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'resume_url': {'type': 'string', 'format': 'uri', 'description': 'An https link to the resume file: PDF, DOCX or plain text, up to 10 MB. Pass this OR resume_text OR document_id.'}, 'document_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': "One of the user's saved resumes to make the base (an id from aiapplyd_get_account). Free. Pass this OR resume_text OR resume_url.", 'exclusiveMinimum': 0}, 'resume_text': {'type': 'string', 'maxLength': 50000, 'minLength': 50, 'description': 'The full text of the resume. Pass this OR resume_url OR document_id.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['documentId', 'source', 'parsed', 'fullName', 'currentJobTitle', 'suggestedJobTitles', 'skillsCount', 'preferencesSeeded', 'onboardingCompleted'], 'properties': {'parsed': {'type': 'boolean', 'description': 'False when the resume is still being read; call aiapplyd_get_account in a minute.'}, 'source': {'enum': ['text', 'url', 'document'], 'type': 'string'}, 'fullName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'documentId': {'type': 'number', 'description': 'The resume now used as the base for every application.'}, 'skillsCount': {'type': 'number'}, 'currentJobTitle': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'preferencesSeeded': {'type': 'boolean', 'description': 'True when empty job preferences were filled from this resume.'}, 'suggestedJobTitles': {'type': 'array', 'items': {'type': 'string'}}, 'onboardingCompleted': {'type': 'boolean', 'description': 'True when the account setup is finished, so AI Applyd searches for this user.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['target_language'], 'properties': {'target_language': {'type': 'string', 'maxLength': 50, 'minLength': 1, 'description': 'Target language (e.g. "Spanish", "French", "German", "Japanese")'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetLanguage', 'sourceResumeId', 'translatedResumeId', 'translatedTitle', 'url'], 'properties': {'url': {'type': 'string'}, 'sourceResumeId': {'type': 'number'}, 'targetLanguage': {'type': 'string'}, 'translatedTitle': {'type': 'string'}, 'translatedResumeId': {'type': 'number'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action', 'job_match_ids'], 'properties': {'action': {'enum': ['save', 'skip'], 'type': 'string', 'description': '"save" keeps the matches in the saved list. "skip" dismisses them.'}, 'reason': {'enum': ['not_interested', 'wrong_location', 'too_senior', 'too_junior', 'salary_too_low', 'wrong_role', 'company_mismatch', 'already_applied', 'other'], 'type': 'string', 'description': 'For skip: why, so the matcher learns (e.g. "too_senior").'}, 'job_match_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'description': 'Job match ids from aiapplyd_get_matches, 1 to 25 (e.g. [48213, 48214]).'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action', 'results', 'succeeded', 'attempted'], 'properties': {'action': {'enum': ['save', 'skip'], 'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['jobMatchId', 'ok', 'saved', 'dismissed'], 'properties': {'ok': {'type': 'boolean'}, 'saved': {'type': 'boolean'}, 'dismissed': {'type': 'boolean'}, 'jobMatchId': {'type': 'number'}}, 'additionalProperties': False}}, 'attempted': {'type': 'number'}, 'succeeded': {'type': 'number'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'paused': {'type': 'boolean', 'description': 'True pauses new matches for the user; false resumes them. It never changes auto-apply.'}, 'job_types': {'type': 'array', 'items': {'enum': ['full_time', 'part_time', 'contract', 'internship', 'freelance', 'temporary'], 'type': 'string'}, 'description': 'Job types to match: full_time, part_time, contract, internship, freelance, temporary. REPLACES the saved list.'}, 'locations': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Full list of preferred locations. REPLACES the saved list.'}, 'salary_max': {'type': 'number', 'minimum': 0, 'description': 'Highest yearly salary to target, in salary_currency.'}, 'salary_min': {'type': 'number', 'minimum': 0, 'description': 'Lowest yearly salary the user accepts, in salary_currency (e.g. 120000).'}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'What the user wants, in their own words (e.g. "remote only, 120k+, senior, no crypto"). Fields passed explicitly win over it. Uses AI credits.'}, 'remote_only': {'type': 'boolean', 'description': 'Deprecated name of include_remote. Use include_remote.'}, 'work_styles': {'type': 'array', 'items': {'enum': ['onsite', 'hybrid', 'remote'], 'type': 'string'}, 'description': 'Work styles to match: onsite, hybrid, remote. REPLACES the saved list.'}, 'target_roles': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Full list of job titles to hunt for. REPLACES the saved list.'}, 'include_remote': {'type': 'boolean', 'description': "Include remote jobs in the user's region alongside their locations."}, 'salary_currency': {'enum': ['usd', 'eur', 'gbp', 'cad', 'aud', 'inr'], 'type': 'string', 'description': 'Currency of the salary band (default usd).'}, 'experience_levels': {'type': 'array', 'items': {'enum': ['intern', 'entry', 'junior', 'mid', 'senior', 'lead', 'executive'], 'type': 'string'}, 'description': 'Seniority to match: intern, entry, junior, mid, senior, lead, executive. REPLACES the saved list.'}, 'exclude_industries': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Industries to never match (e.g. ["Crypto"]). REPLACES the saved list.'}, 'application_answers': {'type': 'object', 'properties': {'city': {'type': 'string'}, 'phone': {'type': 'string'}, 'state': {'type': 'string'}, 'country': {'type': 'string'}, 'zip_code': {'type': 'string'}, 'linkedin_url': {'type': 'string'}, 'notice_period': {'enum': ['immediately', 'two_weeks', 'one_month', 'two_months', 'three_months', 'flexible'], 'type': 'string'}, 'work_authorization': {'enum': ['us_citizen', 'permanent_resident', 'visa_holder', 'require_sponsorship', 'other'], 'type': 'string'}, 'willing_to_relocate': {'type': 'boolean'}, 'available_start_date': {'type': 'string'}}, 'description': "Answers employer forms ask for, saved to the user's application profile: phone, city, state, zip_code, country, linkedin_url, work_authorization, willing_to_relocate, available_start_date, notice_period. Only values the user stated, never guesses."}, 'needs_visa_sponsorship': {'type': 'boolean', 'description': 'True when the user needs visa sponsorship to take the job.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetRoles', 'locations', 'includeRemote', 'remoteWorldwide', 'salaryMin', 'salaryMax', 'salaryCurrency', 'experienceLevels', 'workStyles', 'jobTypes', 'visaSponsorship', 'excludeIndustries', 'paused', 'applicationAnswersSaved', 'describedSummary', 'onboardingCompleted'], 'properties': {'paused': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'jobTypes': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'locations': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'salaryMax': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'salaryMin': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'workStyles': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'targetRoles': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'includeRemote': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'salaryCurrency': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'remoteWorldwide': {'type': 'boolean'}, 'visaSponsorship': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'describedSummary': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'How AI Applyd understood `description`, when one was given.'}, 'experienceLevels': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'excludeIndustries': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'onboardingCompleted': {'type': 'boolean', 'description': 'True when this call finished the account setup, so AI Applyd starts searching for these roles.'}, 'applicationAnswersSaved': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The application_answers fields written to the application profile.'}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
mcp
Manages Nestr workspaces, roles, circles, tensions, governance proposals, comments, daily plans, graph relationships, agents, and…
TaScan
Manages field-service projects, workers, task lists, subtasks, dispatch, geofenced work zones, inspections, remediation workflows…
Tango
Manages shared work between humans and agents through tasks, leases, handoffs, approvals, artifacts, comments, integrations, prog…
AIOProductOS MCP
Combines customer records, support conversations, feedback, product analytics, roadmaps, tasks, experiments, releases, and retent…
agendaforge
Manages events, agendas, sessions, speakers, attendees, sponsors, forms, contacts, email templates, approvals, and organizer work…
Refine Job Search
Tracks job applications, interviews, offers, recruiter email, and company openings, with Gmail synchronization and workflow actio…