ResumePilot MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| upload_master_resumeA | Register the user's ONE master resume (PDF, DOCX, TXT, or Markdown). Provide either a local file |
| analyze_master_resumeA | Parse the stored master resume into structured professional information, build a draft Master Profile, and return the list of missing fields ResumePilot should ask the user about. Nothing is invented. |
| setup_user_profileA | Apply the user's answers to the missing-information questionnaire, merging them into the Master Profile. Pass an |
| get_user_profileB | Return the current Master Profile and any still-missing fields. |
| update_user_profileA | Update specific Master Profile fields with an |
| connect_job_sourceA | Inspect or connect a job source adapter (professional networks, global/regional job boards, company career pages, public job APIs, supported ATS pages). Phase 1 has the |
| search_jobsB | Search connected job sources for relevant jobs (up to JOB_SEARCH_MAX_JOBS with JOB_SEARCH_CONCURRENCY workers). In Phase 1 no automated search source is connected yet — paste a job description into analyze_job instead. This tool returns the planned configuration and which sources could serve the query. |
| analyze_jobA | Ingest a job (Phase 1: paste the description) and analyze it against the master resume + profile. Extracts structured job info, computes the ORIGINAL ATS/match scores, and identifies missing keywords, buried experience, weak bullets and unverifiable requirements (never invented). Creates a tracked application and returns its number. Follow with optimize_resume_for_job. |
| rank_jobsA | Rank all analyzed applications by overall match score (ATS as tiebreaker) and flag which clear the MATCH_SCORE_THRESHOLD for applying. |
| optimize_resume_for_jobA | Generate a job-specific tailored resume for a tracked application. Surfaces already-demonstrated keywords, reorders skills/bullets, and adds a role-targeted summary — using ONLY information genuinely present in the master resume/profile. Never invents skills, experience, education or certifications. Produces PDF + DOCX and returns original vs optimized ATS scores, the changes made, and any requirements that could not be verified. |
| generate_application_profileA | Build the job-specific application profile: the reusable fields ResumePilot can safely autofill from the VERIFIED master profile, the known answers, and the questions that must be answered by the user (never guessed — especially legal/declaration answers). |
| prepare_applicationA | Prepare everything needed to apply: autofill map, customized resume to attach, and a step-by-step manual checklist. In Phase 1 nothing is auto-submitted to external sites — the application is set to READY_TO_APPLY and any human-only steps (login, CAPTCHA, OTP, 2FA, identity, legal declarations) are listed for the user. |
| apply_to_jobA | Attempt to submit the application through the resolved application adapter. In Phase 1 the manual adapter never auto-submits to external sites: it returns PAUSED_FOR_USER with a checklist. Pass |
| get_application_statusB | Return the status, scores and timeline of one application (by number) or all applications. |
| search_application_emailsB | Search the connected email provider for messages related to an application (by company, role, recruiter email, or domain), classify each into a status (APPLICATION_RECEIVED, SCREENING, INTERVIEW, OFFER, REJECTED, ...), and update the application's tracking. Phase 1 uses an offline mock provider (seed it in tests/demos); Phase 5 connects Gmail via OAuth (read-only, no passwords stored). |
| update_application_trackingB | Manually update an application's tracking: set a new status (with timestamped history) and/or attach an email update. Use to record interviews, offers, rejections, or withdrawals. |
| generate_application_reportB | Generate the final professional PDF report (summary stats + application table + per-application detail sections) and the local HTML tracking pages (one per application, plus an index). Returns the file paths so the user can open/download them. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Most tools have clearly distinct purposes, but there is slight overlap between generate_application_profile and prepare_application (both prepare components for applying) and between search_application_emails and update_application_tracking (both can update status). Descriptions clarify boundaries, but a few tools could be confused without careful reading.
All tool names follow a consistent verb_noun or verb_preposition_noun pattern using snake_case. Examples like upload_master_resume, analyze_job, get_application_status, and generate_application_report are predictable and follow the same convention throughout.
At 17 tools, the set is slightly heavy but justified by the broad scope of resume management, job analysis, application preparation, tracking, and reporting. Each tool addresses a distinct step in the workflow, though a few could potentially be consolidated without loss of clarity.
The tool set covers the full lifecycle from resume upload and profile setup, through job analysis and optimization, to application preparation, submission (manual), tracking, email search, and reporting. No critical steps are missing; the only limitation (e.g., no delete or edit for resume) is intentional due to immutability.