get_match_score
Calculate a match score between a candidate's profile and a specific job listing to evaluate suitability.
Instructions
Get a match score between a candidate profile and a specific job.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| candidate_id | Yes | Candidate user ID | |
| job_id | Yes | Job listing ID |
Implementation Reference
- index.js:94-110 (schema)Schema definition for the 'get_match_score' tool. Defines the tool name, description, and input schema requiring candidate_id and job_id.
{ name: 'get_match_score', description: 'Score how well a candidate\'s profile matches a specific job. Returns a 0–100 score with a breakdown by skills, experience, and education.', inputSchema: { type: 'object', properties: { candidate_id: { type: 'string', description: 'Candidate profile ID (use "me" for the authenticated user)', }, job_id: { type: 'string', description: 'Job listing ID returned by search_jobs or get_recommended_jobs', }, }, required: ['candidate_id', 'job_id'], }, - index.js:238-242 (registration)Registration: 'get_match_score' is added to the NEW_TOOL_NAMES set via spread from WEEK1_TOOLS, which includes the tool definition. This enables it in the tools/list response.
// All new tools that are defined locally (not yet on backend) const NEW_TOOL_NAMES = new Set([ ...WEEK1_TOOLS.map(t => t.name), ...WEEK2_TOOLS.map(t => t.name), ]); - index.js:275-305 (helper)Handler proxy: When 'tools/call' is invoked with 'get_match_score', the request is forwarded to the backend API. If the backend is unreachable, a stub response indicating 'not_implemented' is returned.
async function handleToolsCall(id, params) { const toolName = params && params.name; try { const result = await callBackend({ jsonrpc: '2.0', id, method: 'tools/call', params }); send({ ...result, id }); } catch (err) { // If the backend is unreachable and this is a new tool, return a clear stub message if (NEW_TOOL_NAMES.has(toolName)) { send({ jsonrpc: '2.0', id, result: { content: [ { type: 'text', text: JSON.stringify({ status: 'not_implemented', tool: toolName, message: `The '${toolName}' tool is defined in the MCP layer but the backend handler is not yet deployed. Backend error: ${err.message}`, }, null, 2), }, ], isError: false, }, }); } else { send({ jsonrpc: '2.0', id, error: { code: -32000, message: err.message } }); } } }