upload_resume
Upload a resume file to sync with your profile or add as an alternate resume. Supports PDF, DOC, and DOCX formats up to 5MB.
Instructions
Upload a resume as base64 file content. Supported formats: PDF, DOC, DOCX. Maximum file size: 5MB. Read the file from the user's machine and pass the base64-encoded content. By default, your profile will be synced with the resume content. Use isAltResume to upload as an alternate resume instead of replacing your primary.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fileContent | Yes | Base64-encoded file content of the resume. Read the file and pass the base64 content here. | |
| fileName | Yes | Original filename including extension (e.g. "resume.pdf") | |
| syncProfile | No | Whether to sync profile with resume content (default: true). Ignored for alt resumes. | |
| isAltResume | No | Upload as an alternate resume instead of replacing the primary resume (default: false) |
Implementation Reference
- src/tools/resume.ts:163-184 (handler)The handler function that executes the 'upload_resume' tool logic by calling the API client's uploadResumeFromBase64 method.
async (args) => { const isAlt = args.isAltResume || false; const syncProfile = args.syncProfile !== false; const ext = args.fileName.substring(args.fileName.lastIndexOf('.') + 1).toLowerCase(); if (!['pdf', 'docx', 'doc'].includes(ext)) { return { content: [{ type: 'text' as const, text: JSON.stringify({ error: 'Invalid file type. Supported formats: PDF, DOC, DOCX.' }, null, 2) }] }; } const result = await client.uploadResumeFromBase64(args.fileContent, args.fileName, syncProfile, isAlt); return { content: [{ type: 'text' as const, text: JSON.stringify({ success: true, message: isAlt ? 'Alternate resume uploaded successfully' : 'Resume uploaded successfully', uri: result.uri, fileName: result.fileName, isAltResume: isAlt, }, null, 2), }], }; - src/tools/resume.ts:157-162 (schema)The Zod schema definition for the arguments of the 'upload_resume' tool, specifying input fields like fileContent, fileName, syncProfile, and isAltResume.
{ fileContent: z.string().describe('Base64-encoded file content of the resume. Read the file and pass the base64 content here.'), fileName: z.string().describe('Original filename including extension (e.g. "resume.pdf")'), syncProfile: z.boolean().optional().describe('Whether to sync profile with resume content (default: true). Ignored for alt resumes.'), isAltResume: z.boolean().optional().describe('Upload as an alternate resume instead of replacing the primary resume (default: false)'), }, - src/tools/resume.ts:154-162 (registration)The registration of the 'upload_resume' tool within the MCP server using the server.tool method.
server.tool( 'upload_resume', 'Upload a resume as base64 file content. Supported formats: PDF, DOC, DOCX. Maximum file size: 5MB. Read the file from the user\'s machine and pass the base64-encoded content. By default, your profile will be synced with the resume content. Use isAltResume to upload as an alternate resume instead of replacing your primary.', { fileContent: z.string().describe('Base64-encoded file content of the resume. Read the file and pass the base64 content here.'), fileName: z.string().describe('Original filename including extension (e.g. "resume.pdf")'), syncProfile: z.boolean().optional().describe('Whether to sync profile with resume content (default: true). Ignored for alt resumes.'), isAltResume: z.boolean().optional().describe('Upload as an alternate resume instead of replacing the primary resume (default: false)'), },