MCP App Store
by KeenEthics
Productivity
FoundRole Jobs icon

FoundRole Jobs

by FoundRole

Overview

FoundRole is an AI job search and job application tracker. Search live openings from company career pages by job title, location, salary, and date posted, and narrow them to remote, hybrid, or on-site work. Save the roles you want to your tracker without leaving the conversation. Every job comes with data to judge it by: pay against market rates, a ghost-job risk grade for how likely the posting is still open, the employer's visa sponsorship record from public H-1B filings, and E-Verify status. Complete your FoundRole profile or add your resume, and each job also shows a match score and the skills you're missing. Found a role on LinkedIn or a company careers page? Paste it to get the same analysis, then compare two to four jobs side by side. The resume scanner shows how hiring software reads your resume: which sections, skills, and dates it recognized, and what it missed. Track applications through Saved, Applied, Interviewing, and Offered, keep notes, contacts, and offer details on each one, and set follow-up reminders that arrive with a calendar invite. Subscribe to daily, weekly, or monthly job alerts, get recommendations matched to your profile, and ask career questions answered from FoundRole's own guides on resumes, interviews, and salary. Requires a free FoundRole account; you sign in once when you connect. Filters such as a salary floor, visa sponsors only, and hiding likely ghost jobs work on every account: free accounts see the first matching jobs and how many more there are, while FoundRole Pro shows the whole list, every missing skill ranked, and year-by-year sponsorship history. Everything stays in sync with the FoundRole website.

Tools

job_alert_list

ChatGPT
Lists 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

ChatGPT
Subscribes 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

ChatGPT
Unsubscribes 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

ChatGPT
Unsubscribes 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

ChatGPT
Fetches 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.

reminder_delete

ChatGPT
Deletes 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

ChatGPT
Lists 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

ChatGPT
Sets 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

ChatGPT
Tracks 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

ChatGPT
Saves 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

ChatGPT
Lists 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

ChatGPT
Removes 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

ChatGPT
Updates 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

ChatGPT
Updates 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.

job_alert_list

Claude

job_alert_subscribe

Claude

job_alert_unsubscribe

Claude

job_alert_unsubscribe_all

Claude

jobs_analyze_external

Claude

jobs_compare

Claude

jobs_details

Claude

jobs_recommendations

Claude

knowledge_topics

Claude

reminder_delete

Claude

reminder_list

Claude

reminder_set

Claude

resume_check

Claude

tracker_add

Claude

tracker_add_external

Claude

tracker_list

Claude

tracker_remove

Claude

tracker_update

Claude

tracker_update_status

Claude

App Stats

36

Tools

3

Prompts

ChatGPT, Claude

Platforms

Category

Job Search

Works with

ChatGPT
Claude

Data refreshed daily