job_alert_list
ChatGPTLists the authenticated user's job alerts across all subscription sources (regular, company page, MCP). Input: - status: Filter by status — one of pending, active, unsubscribed (optional, default: all statuses) - limit: Number of results to return (default 20, max 50) - offset: Number of results to skip (default 0) Output: Returns the user's job alerts with pagination info and a summary of the underlying job search (query, location, company where available). Each response includes a system_instruction describing how to present the results for the current client.
job_alert_list
ChatGPTLists the authenticated user's job alerts across all subscription sources (regular, company page, MCP). Input: - status: Filter by status — one of pending, active, unsubscribed (optional, default: all statuses) - limit: Number of results to return (default 20, max 50) - offset: Number of results to skip (default 0) Output: Returns the user's job alerts with pagination info and a summary of the underlying job search (query, location, company where available). Each response includes a system_instruction describing how to present the results for the current client.
job_alert_subscribe
ChatGPTSubscribes the authenticated user to job alerts for a specific saved job search. Input: - job_search_id: The job search identifier to subscribe to (required). Accepts either the job search UUID or the composite job ID returned by jobs_search / jobs_details (format: "seo_id--job_search_id"). - frequency: Alert frequency — one of daily, weekly, monthly (optional, defaults to "weekly") Output: Returns the created or updated job alert with id, status, and frequency. Idempotent: calling this tool for an already-subscribed search updates the existing alert without creating a duplicate.
job_alert_subscribe
ChatGPTSubscribes the authenticated user to job alerts for a specific saved job search. Input: - job_search_id: The job search identifier to subscribe to (required). Accepts either the job search UUID or the composite job ID returned by jobs_search / jobs_details (format: "seo_id--job_search_id"). - frequency: Alert frequency — one of daily, weekly, monthly (optional, defaults to "weekly") Output: Returns the created or updated job alert with id, status, and frequency. Idempotent: calling this tool for an already-subscribed search updates the existing alert without creating a duplicate.
job_alert_unsubscribe
ChatGPTUnsubscribes the authenticated user from job alerts for a specific job search. Input: - job_search_id: The job search identifier to unsubscribe from (required). Accepts either the job search UUID or the composite job ID returned by jobs_search / jobs_details (format: "seo_id--job_search_id"). Output: Confirms the alert has been unsubscribed. Idempotent: returns success even when the user was not subscribed or is already unsubscribed.
job_alert_unsubscribe
ChatGPTUnsubscribes the authenticated user from job alerts for a specific job search. Input: - job_search_id: The job search identifier to unsubscribe from (required). Accepts either the job search UUID or the composite job ID returned by jobs_search / jobs_details (format: "seo_id--job_search_id"). Output: Confirms the alert has been unsubscribed. Idempotent: returns success even when the user was not subscribed or is already unsubscribed.
job_alert_unsubscribe_all
ChatGPTUnsubscribes the authenticated user from ALL of their job alerts at once, across every subscription source (regular, company page, MCP). Input: - confirm: Must be true to execute. The call is rejected when omitted or not true — this guards against an unintended bulk unsubscribe. Output: Confirms how many alerts were unsubscribed. Idempotent: returns success even when the user has no active alerts.
job_alert_unsubscribe_all
ChatGPTUnsubscribes the authenticated user from ALL of their job alerts at once, across every subscription source (regular, company page, MCP). Input: - confirm: Must be true to execute. The call is rejected when omitted or not true — this guards against an unintended bulk unsubscribe. Output: Confirms how many alerts were unsubscribed. Idempotent: returns success even when the user has no active alerts.
jobs_details
ChatGPTFetches full details for one job by the id returned from jobs_search — the deeper view behind a search result. Input: - job_id: The exact ID string from the id field of a jobs_search result. Output: Complete job details: description, skills, benefits, requirements, salary, and application link.
jobs_details
ChatGPTFetches full details for one job by the id returned from jobs_search — the deeper view behind a search result. Input: - job_id: The exact ID string from the id field of a jobs_search result. Output: Complete job details: description, skills, benefits, requirements, salary, and application link.
jobs_search
ChatGPTSearches a database for real-time job listings matching the user's criteria. The query is the full job title or role: "Ruby Developer" or "Ruby on Rails Engineer" rather than a bare keyword like "Ruby", which is too broad and matches unrelated fields. Results may be filtered by location, company, and how recently a job was posted. Each result carries an id; jobs_details takes that id and returns the job's full description, requirements, and benefits. The response also carries a nextCursor for the next page of results; a follow-up page is fetched by passing only that cursor, with no other search parameters. Each response includes a system_instruction describing how to present the results for the current client.
jobs_search
ChatGPTSearches a database for real-time job listings matching the user's criteria. The query is the full job title or role: "Ruby Developer" or "Ruby on Rails Engineer" rather than a bare keyword like "Ruby", which is too broad and matches unrelated fields. Results may be filtered by location, company, and how recently a job was posted. Each result carries an id; jobs_details takes that id and returns the job's full description, requirements, and benefits. The response also carries a nextCursor for the next page of results; a follow-up page is fetched by passing only that cursor, with no other search parameters. Each response includes a system_instruction describing how to present the results for the current client.
reminder_delete
ChatGPTDeletes a reminder from a tracked job. Input: - tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required) Output: Returns the updated tracked job with reminderAt cleared.
reminder_delete
ChatGPTDeletes a reminder from a tracked job. Input: - tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required) Output: Returns the updated tracked job with reminderAt cleared.
reminder_list
ChatGPTLists tracked jobs that have reminders set, ordered by reminder time (soonest first). Input: - limit: Number of results to return (default 20, max 50) Output: Returns a list of tracked jobs with active reminders.
reminder_list
ChatGPTLists tracked jobs that have reminders set, ordered by reminder time (soonest first). Input: - limit: Number of results to return (default 20, max 50) Output: Returns a list of tracked jobs with active reminders.
reminder_set
ChatGPTSets a reminder for a tracked job. Sends a confirmation email with .ics calendar attachment. Input: - tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required) - remind_at: Reminder date/time in ISO 8601 format, e.g. "2025-03-15T10:00:00Z" (required, must be in the future) Output: Returns the updated tracked job with reminderAt field.
reminder_set
ChatGPTSets a reminder for a tracked job. Sends a confirmation email with .ics calendar attachment. Input: - tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required) - remind_at: Reminder date/time in ISO 8601 format, e.g. "2025-03-15T10:00:00Z" (required, must be in the future) Output: Returns the updated tracked job with reminderAt field.
tracker_add
ChatGPTTracks a job from jobs_search results in the user's job tracker, identified by its job_id. For a job found elsewhere on the open web (with a URL but no jobs_search job_id), tracker_add_external is the right tool instead. Fields: - job_id: the job ID from jobs_search results (required) - status: initial status (saved, applied, interviewing, offered, archived); defaults to "saved" - sub_status: sub-status within the main status - notes: notes about the job Returns the tracked job with its details, or an error if it is already tracked. A job that was previously removed from the tracker is restored with its earlier status and notes.
tracker_add
ChatGPTTracks a job from jobs_search results in the user's job tracker, identified by its job_id. For a job found elsewhere on the open web (with a URL but no jobs_search job_id), tracker_add_external is the right tool instead. Fields: - job_id: the job ID from jobs_search results (required) - status: initial status (saved, applied, interviewing, offered, archived); defaults to "saved" - sub_status: sub-status within the main status - notes: notes about the job Returns the tracked job with its details, or an error if it is already tracked. A job that was previously removed from the tracker is restored with its earlier status and notes.
tracker_add_external
ChatGPTSaves a job posting found anywhere on the open web into the user's tracker. For jobs that came from jobs_search results, tracker_add (which takes a job_id) is the right tool instead. A job seen elsewhere in the conversation needs no prior jobs_search call — its URL and details from the conversation are sufficient input. url, company_name, title_name, location_name, and description identify the posting; the url is the posting's own page (a company homepage is not accepted) and the description is the posting's description as the source result provides it — a short summary from the result card is acceptable when no fuller text is available. The remaining structured fields describe the posting's salary, employment type, work-location type, education, and experience; each is optional and any that the posting states can be supplied. Skills, benefits, and bonuses are derived from the description and are not accepted as inputs. Fields: - url: the job posting's direct URL (required; not a company homepage) - company_name: company name - title_name: job title - location_name: location, e.g. "New York, NY" - description: the posting's description from the source result; a short summary is acceptable (required) - salary_min_value / salary_max_value: salary range bounds (numbers) - salary_value: a single salary figure when there is no range (number) - salary_type: one of year, month, week, day, hour - employment_type: array of full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other - work_location_type: one of on_site, remote, hybrid - education_requirements: array of no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree - experience_months: minimum required experience in months (number) - status: initial tracking status (saved, applied, interviewing, offered, archived); defaults to "saved" - sub_status: sub-status within the main status - notes: notes about the job Returns the tracked job, or an error if it is already tracked.
tracker_add_external
ChatGPTSaves a job posting found anywhere on the open web into the user's tracker. For jobs that came from jobs_search results, tracker_add (which takes a job_id) is the right tool instead. A job seen elsewhere in the conversation needs no prior jobs_search call — its URL and details from the conversation are sufficient input. url, company_name, title_name, location_name, and description identify the posting; the url is the posting's own page (a company homepage is not accepted) and the description is the posting's description as the source result provides it — a short summary from the result card is acceptable when no fuller text is available. The remaining structured fields describe the posting's salary, employment type, work-location type, education, and experience; each is optional and any that the posting states can be supplied. Skills, benefits, and bonuses are derived from the description and are not accepted as inputs. Fields: - url: the job posting's direct URL (required; not a company homepage) - company_name: company name - title_name: job title - location_name: location, e.g. "New York, NY" - description: the posting's description from the source result; a short summary is acceptable (required) - salary_min_value / salary_max_value: salary range bounds (numbers) - salary_value: a single salary figure when there is no range (number) - salary_type: one of year, month, week, day, hour - employment_type: array of full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other - work_location_type: one of on_site, remote, hybrid - education_requirements: array of no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree - experience_months: minimum required experience in months (number) - status: initial tracking status (saved, applied, interviewing, offered, archived); defaults to "saved" - sub_status: sub-status within the main status - notes: notes about the job Returns the tracked job, or an error if it is already tracked.
tracker_list
ChatGPTLists the user's tracked jobs with optional filtering and pagination. Input: - status: Filter by status (saved, applied, interviewing, offered, archived) - limit: Number of results per page (default 20, max 50) - offset: Number of results to skip (default 0) Output: Returns a list of tracked jobs grouped by status with pagination info. Each response includes a system_instruction describing how to present the results for the current client.
tracker_list
ChatGPTLists the user's tracked jobs with optional filtering and pagination. Input: - status: Filter by status (saved, applied, interviewing, offered, archived) - limit: Number of results per page (default 20, max 50) - offset: Number of results to skip (default 0) Output: Returns a list of tracked jobs grouped by status with pagination info. Each response includes a system_instruction describing how to present the results for the current client.
tracker_remove
ChatGPTRemoves a job from the user's job tracker. Input: - tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required) Output: Confirms the job was removed from tracking.
tracker_remove
ChatGPTRemoves a job from the user's job tracker. Input: - tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required) Output: Confirms the job was removed from tracking.
tracker_update
ChatGPTUpdates details of a tracked job (notes, deadline, salary, tags). Input: - tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required) - notes: Updated notes - deadline: Deadline date (ISO 8601 format) - salary_offered: Salary amount - salary_offered_type: Salary type: year, month, week, day, hour - tags: Comma-separated tags (e.g., "remote,startup,tech") - reminder_at: Reminder date/time in ISO 8601 format, e.g. "2025-03-15T10:00:00Z" (must be in the future, or empty to clear) Output: Returns the updated tracked job.
tracker_update
ChatGPTUpdates details of a tracked job (notes, deadline, salary, tags). Input: - tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required) - notes: Updated notes - deadline: Deadline date (ISO 8601 format) - salary_offered: Salary amount - salary_offered_type: Salary type: year, month, week, day, hour - tags: Comma-separated tags (e.g., "remote,startup,tech") - reminder_at: Reminder date/time in ISO 8601 format, e.g. "2025-03-15T10:00:00Z" (must be in the future, or empty to clear) Output: Returns the updated tracked job.
tracker_update_status
ChatGPTUpdates the status of a tracked job. Input: - tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required) - status: New status: saved, applied, interviewing, offered, archived (required) - sub_status: Sub-status within the main status (optional) Output: Returns the updated tracked job.
tracker_update_status
ChatGPTUpdates the status of a tracked job. Input: - tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required) - status: New status: saved, applied, interviewing, offered, archived (required) - sub_status: Sub-status within the main status (optional) Output: Returns the updated tracked job.