create_feed
Create a structured job feed by monitoring careers pages to track new job postings automatically.
Instructions
Create a new job feed for monitoring career pages
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Feed name (e.g., "Mercedes-AMG F1") | |
| careersUrl | Yes | Careers page URL to monitor | |
| exampleJobUrl | No | Example job posting URL (optional) |
Implementation Reference
- src/index.ts:753-771 (handler)The main handler method that executes the create_feed tool logic. It accepts name, careersUrl, and optional exampleJobUrl parameters, calls the API client to create the feed, and returns a formatted success message with the feed ID.
private async createFeed({ name, careersUrl, exampleJobUrl }: { name: string; careersUrl: string; exampleJobUrl?: string }) { const result = await this.apiClient.createFeed(name, careersUrl, exampleJobUrl); return { content: [ { type: 'text', text: `✅ Feed created successfully! **Feed ID**: \`${result.id}\` **Name**: ${name} **Careers URL**: ${careersUrl} ${exampleJobUrl ? `**Example Job URL**: ${exampleJobUrl}` : ''} You can now trigger a run with: "Trigger a run for ${result.id}"`, }, ], }; } - src/index.ts:345-369 (registration)Tool registration defining the 'create_feed' tool with its name, description, and JSON Schema input validation specifying required fields (name, careersUrl) and optional field (exampleJobUrl) with type constraints.
name: 'create_feed', description: 'Create a new job feed for monitoring career pages', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Feed name (e.g., "Mercedes-AMG F1")', minLength: 1, maxLength: 100 }, careersUrl: { type: 'string', description: 'Careers page URL to monitor', format: 'uri' }, exampleJobUrl: { type: 'string', description: 'Example job posting URL (optional)', format: 'uri' } }, required: ['name', 'careersUrl'], additionalProperties: false } - src/api-client.ts:39-44 (helper)API client helper method that makes the actual HTTP POST request to /api/feeds endpoint to create the feed, handling the API communication layer.
async createFeed(name: string, careersUrl: string, exampleJobUrl?: string): Promise<{ id: string; message: string }> { return this.request('/api/feeds', { method: 'POST', body: JSON.stringify({ name, careersUrl, exampleJobUrl }), }); } - src/types.ts:7-22 (schema)TypeScript interface defining the Feed data structure including id, name, careers_url, example_job_url, is_active, timestamps, and scheduler fields.
export interface Feed { id: string; name: string; user_id: number; careers_url: string; example_job_url: string | null; is_active: number; last_run_at: number | null; created_at: number; tag: string | null; updated_at: number; // Scheduler fields auto_run_enabled?: number; run_interval_days?: number; next_run_at?: number | null; } - src/index.ts:662-663 (registration)Switch case routing that maps the 'create_feed' tool name to its handler method, part of the tool execution dispatcher.
case 'create_feed': return await this.createFeed(args as any);