MCP Tool Reference
The Jobweave MCP server exposes 81 tools across 9 source files
(8 conceptual domains, since the four Career Library files form one domain). Each tool is a
thin wrapper over a single apps/api route; the Scope column is the service-token scope a
connection must hold for the tool to be registered at all.
Applications
Track job applications and generate insights or tailored content against them.
Source: packages/mcp-tool-server/src/core/tools/applications.ts
| Name | Title | Description | Scope |
|---|---|---|---|
list-applications | List applications | List the caller's job applications, optionally filtered by status or a company/role search string. | applications:read |
get-application | Get an application | Fetch a single application by id, including its linked resume reference if any. | applications:read |
create-application | Create an application | Create a new job application. To attach a resume that does not exist yet, call create-resume first and pass its id as linkedResumeId — or omit linkedResumeId and attach later with update-application. | applications:write |
update-application | Update an application | Update any field on an application — status, notes, salary, or linkedResumeId (this is how you attach/detach a resume from an existing application). Every field is optional; only send what changes. | applications:write |
delete-application | Delete an application | Permanently delete an application. Does not delete any linked resume. | applications:write |
clone-application | Clone an application | Duplicate an application (e.g. to track a re-application or a similar role elsewhere). | applications:write |
import-application-from-url | Extract application fields from a job posting URL | Fetch a job posting URL and extract company/role/location/salary/description fields with AI. Preview only — does NOT create an application; pass the returned fields to create-application yourself. | applications:write |
get-application-insights | Get stored company insights ("Be Informed") | Fetch previously generated company insights for an application (culture, funding, news), or null if never generated. | applications:read |
generate-application-insights | Generate company insights ("Be Informed" / "Assess Your Fit") | Generate (and store) AI company insights for an application: culture, recent announcements, funding, financials, similar companies. Uses the application's company URL and job description as context. | applications:write |
get-interview-prep | Get stored interview prep | Fetch previously generated interview prep questions for an application, or null if never generated. | applications:read |
generate-interview-prep | Generate interview prep | Generate (and store) AI interview prep questions for an application, using its linked resume, library, and job description. Requires the application to have a job description set. | applications:write |
generate-application-message | Generate outreach message ("Reach Out to Current Employees" / "Generate Message") | Generate a short outreach message draft for an application: cold outreach, a follow-up, or a thank-you note. Not persisted — the caller sends or saves it. | applications:write |
Resumes
Create, read, and revise resumes, including AI-assisted tailoring.
Source: packages/mcp-tool-server/src/core/tools/resumes.ts
| Name | Title | Description | Scope |
|---|---|---|---|
list-resumes | List resumes | List the caller's resumes, each with position/skill/application counts. | resumes:read |
get-resume | Get a resume | Fetch the full resume graph: profile/identity, positions+bullets, skills, education, projects, linked repositories. | resumes:read |
create-resume | Create a resume | Create a new, empty resume (title + template/formatting options). Populate it with tailor-resume-from-library, or attach it to an application with update-application's linkedResumeId. | resumes:write |
update-resume | Update a resume | Update a resume's title, template, or formatting options. Every field is optional; only send what changes. | resumes:write |
delete-resume | Delete a resume | Permanently delete a resume and all of its positions, bullets, skills, education, and projects. | resumes:write |
clone-resume | Clone a resume | Duplicate a resume including all of its sections, as a starting point for a new variant. | resumes:write |
get-resume-pdf | Download a resume as PDF | Render a resume to PDF. Returns { base64, contentType, bytes } — decode the base64 to save the file. | resumes:read |
get-resume-profile | Get a resume's profile | Fetch just the resume-scoped contact/summary profile (distinct from a reusable identity). | resumes:read |
update-resume-profile | Update a resume's profile | Update the resume-scoped contact/summary profile. Every field is optional; only send what changes. | resumes:write |
tailor-resume-from-library | Create Optimized Resume (tailor from Library) | Wipe and repopulate a resume from the full Library (Skills, Experience, Projects, Education, Repositories), matched against the job description of whichever application currently links this resume. Optional free-text instructions steer the AI (e.g. "emphasize backend work", "keep it to one page"). This REPLACES the resume's current sections — it is not incremental. | ai:generate |
Career Library — Skills & Education
The reusable skill and education entries resumes are assembled from.
Source: packages/mcp-tool-server/src/core/tools/library-skills-education.ts
| Name | Title | Description | Scope |
|---|---|---|---|
list-library-skills | List library skill categories | List the caller's skill library categories, each with its skills and sort order. | library:read |
create-library-skill | Create a library skill category | Create a new skill library category, e.g. "Programming Languages" with a list of skills. | library:write |
update-library-skill | Update a library skill category | Update a skill library category's name, skills, or sort order. Every field is optional; only send what changes. | library:write |
delete-library-skill | Delete a library skill category | Permanently delete a skill library category. | library:write |
clone-library-skill | Clone a library skill category | Duplicate a skill library category, as a starting point for a variant. | library:write |
list-library-education | List library education entries | List the caller's library education entries, each with a count of resumes it's linked to. | library:read |
create-library-education | Create a library education entry | Create a new library education entry (institution, degree, dates, achievements). | library:write |
update-library-education | Update a library education entry | Update a library education entry's institution, degree, dates, or achievements. Every field is optional; only send what changes. | library:write |
delete-library-education | Delete a library education entry | Permanently delete a library education entry. Fails if it is still linked to one or more resumes. | library:write |
clone-library-education | Clone a library education entry | Duplicate a library education entry, as a starting point for a variant. | library:write |
Career Library — Experiences
Work history entries and their achievement bullets.
Source: packages/mcp-tool-server/src/core/tools/library-experiences.ts
| Name | Title | Description | Scope |
|---|---|---|---|
list-library-experiences | List library experiences | List the caller's library experiences (reusable work history entries), each with its bullets. | library:read |
create-library-experience | Create a library experience | Create a new library experience (reusable work history entry). Populate it with bullets using create-library-experience-bullet. | library:write |
update-library-experience | Update a library experience | Update any field on a library experience. Every field is optional; only send what changes. | library:write |
delete-library-experience | Delete a library experience | Permanently delete a library experience and all of its bullets. | library:write |
clone-library-experience | Clone a library experience | Duplicate a library experience including all of its bullets, as a starting point for a new variant. | library:write |
list-library-experience-bullets | List a library experience's bullets | List the bullet points belonging to a library experience. | library:read |
create-library-experience-bullet | Create a library experience bullet | Add a new bullet point to a library experience. | library:write |
update-library-experience-bullet | Update a library experience bullet | Update a bullet point on a library experience. Every field is optional; only send what changes. | library:write |
delete-library-experience-bullet | Delete a library experience bullet | Permanently delete a bullet point from a library experience. | library:write |
Career Library — Projects
Project entries and their achievement bullets.
Source: packages/mcp-tool-server/src/core/tools/library-projects.ts
| Name | Title | Description | Scope |
|---|---|---|---|
list-library-projects | List library projects | List the caller's library projects (Tier 1), each including its achievements. | library:read |
create-library-project | Create a library project | Create a new library project (Tier 1) to reuse across resumes. | library:write |
update-library-project | Update a library project | Update any field on a library project. Every field is optional; only send what changes. | library:write |
delete-library-project | Delete a library project | Permanently delete a library project and all of its achievements. | library:write |
clone-library-project | Clone a library project | Duplicate a library project including all of its achievements, as a starting point for a variant. | library:write |
list-library-project-achievements | List a library project's achievements | List the achievements (Tier 2) belonging to a library project. | library:read |
create-library-project-achievement | Create a library project achievement | Add a new achievement bullet to a library project. | library:write |
update-library-project-achievement | Update a library project achievement | Update a project achievement's content or sort order. Every field is optional; only send what changes. | library:write |
delete-library-project-achievement | Delete a library project achievement | Permanently delete an achievement from a library project. | library:write |
Identities
The contact/identity blocks a resume or cover letter is rendered under.
Source: packages/mcp-tool-server/src/core/tools/identities.ts
| Name | Title | Description | Scope |
|---|---|---|---|
list-identities | List identities | List the caller's reusable contact identities, each with a count of resumes currently using it. | identities:read |
get-identity | Get an identity | Fetch a single reusable contact identity by id. | identities:read |
create-identity | Create an identity | Create a new reusable contact identity (name/email/phone/location/links). Attach it to a resume's header with update-resume's identityId. | identities:write |
update-identity | Update an identity | Update any field on a reusable contact identity. Every field is optional; only send what changes. | identities:write |
delete-identity | Delete an identity | Permanently delete a reusable contact identity. Fails if any resume currently links to it. | identities:write |
clone-identity | Clone an identity | Duplicate a reusable contact identity as a starting point for a variant. | identities:write |
Repositories & Tasks
Linked code repositories and the follow-up tasks attached to applications.
Source: packages/mcp-tool-server/src/core/tools/repositories-tasks.ts
| Name | Title | Description | Scope |
|---|---|---|---|
list-repositories | List repositories | List the caller's GitHub repositories synced from their connected GitHub account, ordered excluded-last, then by stars, then by name. | repositories:read |
update-repository | Update a repository | Toggle whether a repository is excluded (e.g. from resume tailoring / library use). Omit excluded to flip its current value. | repositories:write |
sync-repositories | Sync repositories from GitHub | Re-fetch the caller's owned repositories from GitHub using their stored GitHub PAT (configured in Settings) and upsert them. Fails with a 400 if no GitHub PAT is configured. | repositories:write |
list-tasks | List tasks | List the caller's tasks, newest first, optionally filtered by done state. | tasks:read |
create-task | Create a task | Create a new task. | tasks:write |
update-task | Update a task | Update a task's title or done state. Every field is optional; only send what changes. | tasks:write |
delete-task | Delete a task | Permanently delete a task. | tasks:write |
Cover Letters
Generate, store, and revise cover letters and outreach messages.
Source: packages/mcp-tool-server/src/core/tools/cover-letters.ts
| Name | Title | Description | Scope |
|---|---|---|---|
list-cover-letters | List cover letters | List the caller's cover letters, most recently updated first. | cover-letters:read |
get-cover-letter | Get a cover letter | Fetch a single cover letter by id, including its linked resume and application references. | cover-letters:read |
generate-cover-letter | Generate and create a cover letter | Generate a cover letter with AI and persist it as a new cover letter record. Provide resumeId and/or applicationId; if resumeId is omitted it falls back to the application's linked resume, then the caller's BASE resume. Uses the application's job description (if any) as context. | ai:generate |
update-cover-letter | Update a cover letter | Update any field on a cover letter — title, content, outreachMessage, length, tone, customPrompt, or resumeId. Every field is optional; only send what changes. | cover-letters:write |
delete-cover-letter | Delete a cover letter | Permanently delete a cover letter. | cover-letters:write |
regenerate-cover-letter | Regenerate a cover letter | Regenerate an existing cover letter's content and outreach message with AI, overwriting it in place. Optionally switch resumeId, length ("short"/"medium"/"long"), tone ("formal"/"professional"/"casual"), or customPrompt — unset fields keep their current value. | ai:generate |
Standalone AI
One-shot AI helpers that do not persist anything.
Source: packages/mcp-tool-server/src/core/tools/ai-standalone.ts
| Name | Title | Description | Scope |
|---|---|---|---|
analyze-job-description | Analyze resume vs. job description (keyword match) | Score a resume against an application's job description: matched/missing required and preferred skills, matched/missing keywords, experience requirements, and red flags. Both resumeId and applicationId are required; the application must have a job description set. | ai:generate |
enhance-resume-bullets | Enhance resume bullets (stronger wording) | Rewrite a set of bullet points for a position to be more impactful — stronger action verbs, more specific, quantified where possible. Does not persist; returns the enhanced text for the caller to apply. | ai:generate |
extract-career-facts | Extract and persist a career fact library | Extract a structured "career fact library" (achievements, skills, quantifiable results) from a resume's full text and persist it onto the resume (used later by tailor-resume-from-library and improve-resume as grounding context). | ai:generate |
generate-resume-summary | Generate a professional summary | Generate a 2-4 sentence professional summary for a resume from its experience and skills. Optional keywords to emphasize, a custom prompt, and enhanceExisting=true to rewrite/improve the resume's current summary rather than write fresh. Does not persist; returns the text for the caller to save via update-resume-profile. | ai:generate |
optimize-resume | Optimize resume: select bullets/skills to include (preview) | AI selects which of a resume's EXISTING positions/bullets/skill-categories are most relevant to a job (by applicationId, or a bare jobTitle if there's no application yet). Returns a selection + the master resume id it was computed against — does NOT modify anything. Pass the result to apply-resume-optimization to actually create the trimmed resume. This is the "Optimize Resume" feature; it only selects/trims from what already exists on the resume — it does not pull from the Library (that's tailor-resume-from-library). | ai:generate |
apply-resume-optimization | Apply an optimize-resume selection | Clone the master resume with an optimize-resume selection applied (only the selected positions/bullets/skill categories, plus any AI-rewritten bullet text) into a new resume. | ai:generate |
quantify-resume-bullets | Quantify resume bullets (add metrics) | Rewrite bullets to add or sharpen quantified results (%, $, counts) where plausible. Does not persist; returns the enhanced text. | ai:generate |
score-resume | Score a resume (local, non-AI) | Compute a deterministic local resume score (impact language, bullet length, action-verb ratio, has-summary, etc.) — fast, no AI call, no persistence. | resumes:read |
screen-resume | Screen Resume (AI recruiter simulation) | Simulate a recruiter's first-pass screen of a resume with an AI model — an overall score plus per-dimension breakdown. Persists the result onto the resume (lastScreenScore/lastScreenAt). Optionally pass a jobDescription for role-specific screening. | ai:generate |
improve-resume | Improve Resume (one iteration) | Run one iteration of the auto-improve loop: scores the resume locally, and if below targetScore (default 75), identifies the weakest dimension (optionally via a real AI screen on odd iterations, runAiScreen default true) and proposes specific bullet rewrites for it. Does NOT apply anything — pass the proposals to apply-resume-improvement. Call again with an incremented iteration to keep improving after applying. Distinct from optimize-resume: this rewrites bullet TEXT for quality, optimize-resume only selects/trims which existing bullets to include. | ai:generate |
apply-resume-improvement | Apply improve-resume proposals | Apply a set of rewrite proposals from improve-resume to the resume's actual bullets or project achievements, then re-score. Each proposal's kind must match what improve-resume returned for it: 'position' proposals need bulletId, 'project' proposals need projectId. | ai:generate |
list-tailor-runs | List tailor-from-library run history | List the caller's history of tailor-resume-from-library runs (most recent first) — which resume, which application, and what was generated. | resumes:read |