job-hunter-run
Generate tailored CVs, cover letters, and cold emails for job applications using stored resumes and job descriptions.
Instructions
Run the Job Hunter agent — generates a tailored CV, cover letter, and cold email for a job application. Returns artifacts when complete.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| companyName | Yes | Target company name | |
| jobTitle | Yes | Job title to apply for | |
| jobDescription | Yes | Full job description text | |
| masterResumeId | No | ID of a stored master resume to use | |
| theme | No | Resume theme (Even, StackOverflow, Class, Professional) | |
| contactName | No | Hiring manager or recruiter name | |
| contactEmail | No | Contact email for cold outreach | |
| mode | No | Generation mode |
Implementation Reference
- src/tools/agents.ts:20-37 (handler)The handler function for the "job-hunter-run" MCP tool, which calls the client's agent runner.
async (params) => { try { const result = await client.agents.run("job-hunter", { companyName: params.companyName, jobTitle: params.jobTitle, jobDescription: params.jobDescription, masterResumeId: params.masterResumeId, theme: params.theme, contactName: params.contactName, contactEmail: params.contactEmail, mode: params.mode, }); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (err) { const message = err instanceof Error ? err.message : String(err); return { content: [{ type: "text", text: `Error: ${message}` }], isError: true }; } }, - src/tools/agents.ts:10-19 (schema)Zod schema definition for the input parameters of the "job-hunter-run" tool.
{ companyName: z.string().describe("Target company name"), jobTitle: z.string().describe("Job title to apply for"), jobDescription: z.string().describe("Full job description text"), masterResumeId: z.string().optional().describe("ID of a stored master resume to use"), theme: z.string().optional().describe("Resume theme (Even, StackOverflow, Class, Professional)"), contactName: z.string().optional().describe("Hiring manager or recruiter name"), contactEmail: z.string().optional().describe("Contact email for cold outreach"), mode: z.enum(["standard", "cold_outreach"]).optional().describe("Generation mode"), }, - src/tools/agents.ts:7-38 (registration)Registration of the "job-hunter-run" tool on the MCP server.
server.tool( "job-hunter-run", "Run the Job Hunter agent — generates a tailored CV, cover letter, and cold email for a job application. Returns artifacts when complete.", { companyName: z.string().describe("Target company name"), jobTitle: z.string().describe("Job title to apply for"), jobDescription: z.string().describe("Full job description text"), masterResumeId: z.string().optional().describe("ID of a stored master resume to use"), theme: z.string().optional().describe("Resume theme (Even, StackOverflow, Class, Professional)"), contactName: z.string().optional().describe("Hiring manager or recruiter name"), contactEmail: z.string().optional().describe("Contact email for cold outreach"), mode: z.enum(["standard", "cold_outreach"]).optional().describe("Generation mode"), }, async (params) => { try { const result = await client.agents.run("job-hunter", { companyName: params.companyName, jobTitle: params.jobTitle, jobDescription: params.jobDescription, masterResumeId: params.masterResumeId, theme: params.theme, contactName: params.contactName, contactEmail: params.contactEmail, mode: params.mode, }); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (err) { const message = err instanceof Error ? err.message : String(err); return { content: [{ type: "text", text: `Error: ${message}` }], isError: true }; } }, );