list_interviews
Retrieve and filter job interviews tracked from email confirmations, including upcoming, scheduled, or status-based results.
Instructions
List job interviews that are being actively tracked by JobGPT (detected from email confirmations). Use upcoming=true to get scheduled/rescheduled interviews. Can also filter by application ID or status.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| jobApplicationId | No | Filter interviews for a specific job application | |
| status | No | Filter by interview status | |
| upcoming | No | If true, returns only upcoming interviews (SCHEDULED or RESCHEDULED) | |
| page | No | Page number (default: 1) | |
| limit | No | Number of results per page (default: 20, max: 50) |
Implementation Reference
- src/tools/applications.ts:138-158 (handler)The implementation of the `list_interviews` tool handler, which uses the provided `client` to fetch interview data and formats the result.
server.tool( 'list_interviews', 'List job interviews that are being actively tracked by JobGPT (detected from email confirmations). Use upcoming=true to get scheduled/rescheduled interviews. Can also filter by application ID or status.', { jobApplicationId: z.string().optional().describe('Filter interviews for a specific job application'), status: z.enum(['SCHEDULED', 'RESCHEDULED', 'CANCELLED', 'COMPLETED']).optional().describe('Filter by interview status'), upcoming: z.boolean().optional().describe('If true, returns only upcoming interviews (SCHEDULED or RESCHEDULED)'), page: z.number().optional().describe('Page number (default: 1)'), limit: z.number().optional().describe('Number of results per page (default: 20, max: 50)'), }, async (args) => { const result = await client.listInterviews({ jobApplicationId: args.jobApplicationId, status: args.status, upcoming: args.upcoming, page: args.page, limit: args.limit, }); return { content: [{ type: 'text' as const, text: JSON.stringify({ count: result.count, interviews: result.interviews.map(formatInterview) }, null, 2) }] }; } );