JobGPT MCP Server
JobGPT MCP Server connects AI assistants to the JobGPT platform for job search, auto-application, resume tailoring, outreach, and application tracking.
Search and match jobs with filters for titles, locations, companies, skills, salary, remote work, experience, industries, company size, H1B sponsorship, and posting date.
View and update profile, salary/compensation, credits, currencies, and saved job hunts with auto-apply settings.
Manage applications: list/update statuses/notes, view stats, save jobs from search or URL imports, and trigger auto-apply.
Upload, list, get, delete, and tailor resumes; generate AI-optimized resumes and calculate resume-to-job match scores.
Track interviews detected from email confirmations.
Find recruiters/referrers for jobs or applications and send/list outreach emails.
Import jobs from LinkedIn, Greenhouse, Lever, Workday, and other ATS URLs.
Allows importing job postings directly from Greenhouse URLs to track applications and facilitate automated application processes.
JobGPT MCP Server
The official MCP server for JobGPT — auto apply & search jobs, generate and manage custom tailored resumes, and track applications directly from Claude, Cursor, Windsurf, and any MCP-compatible AI tool.
What You Can Do
Ask your AI assistant things like:
"Find remote senior React jobs paying over $150k"
"Auto-apply to the top 5 matches from my job hunt"
"Generate a tailored resume for this Google application"
"Apply to this job for me - <job_url from company website, greenhouse workday or linkedin, etc>"
"Show my application stats for the last 7 days"
"Find recruiters for this job and draft an outreach email"
The MCP server connects your AI assistant to the full JobGPT platform — 34 tools covering job search, applications, resumes, outreach, and more.
Related MCP server: Shortlist MCP Server
Quick Start
There are two ways to connect, depending on your AI tool:
Browser login (recommended) — no API key, no JSON, no Node.js. Just add the server URL and sign in to 6figr in your browser. Works with Claude Desktop, Claude Code, Codex CLI (
codex mcp login), and ChatGPT Web (Developer Mode).API key — for the ChatGPT Desktop app, Cursor, Windsurf, Cline, Continue, and manual config. Paste a key into the tool's config.
Get an API Key (only for the API-key method)
Go to 6figr.com/account
Scroll to MCP Integrations
Click Generate API Key
Copy the key (starts with
sk_)
The browser-login method does not need this — it fetches your key for you after you sign in.
Setup by Client
Claude Desktop
Recommended — browser login (no API key, no JSON):
Open Settings → Connectors → Add custom connector
Name it
JobGPTand enter the URLhttps://mcp.6figr.com/mcpClick Connect — your browser opens a 6figr sign-in page
Sign in and click Approve. Done — the JobGPT tools appear in Claude.
No terminal, no config file, no Node.js. This uses OAuth, so your API key never touches Claude's config — Claude gets a scoped token instead.
Alternative — API key via mcp-remote (for older Claude Desktop builds that don't show Connectors; requires Node.js 18+):
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"jobgpt": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.6figr.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer your-api-key-here"
}
}
}
}Claude Code (CLI)
Recommended — browser login (no API key): add the server, then authenticate in your browser:
claude mcp add jobgpt -t http -u https://mcp.6figr.com/mcpThen run /mcp inside Claude Code, select jobgpt → Connect, and sign in to 6figr when the browser opens. Claude Code stores a scoped OAuth token — no API key needed.
Option A: One-liner with an API key (claude mcp add):
claude mcp add jobgpt -t http -u https://mcp.6figr.com/mcp --header "Authorization: your-api-key-here"Option B: Edit settings.json manually
Add to ~/.claude/settings.json:
{
"mcpServers": {
"jobgpt": {
"type": "http",
"url": "https://mcp.6figr.com/mcp",
"headers": {
"Authorization": "your-api-key-here"
}
}
}
}Codex CLI (ChatGPT)
Recommended — browser login (no API key): add the server, then authenticate in your browser:
codex mcp add jobgpt --url https://mcp.6figr.com/mcp
codex mcp login jobgptcodex mcp login opens a browser to sign in to 6figr and approve access; Codex stores a scoped OAuth token (OAuth 2.1 + PKCE). No API key needed.
Alternative — API key via header:
codex mcp add jobgpt --url https://mcp.6figr.com/mcp --header "Authorization: Bearer your-api-key-here"ChatGPT
ChatGPT connects two different ways depending on where you add the server:
ChatGPT Desktop app — API key. Open Settings → Connectors → Advanced/Developer → Connect to a custom MCP and fill in:
Name:
JobGPTType:
Streamable HTTPURL:
https://mcp.6figr.com/mcpHeaders → Add header: Key
Authorization, ValueBearer your-api-key-here
The desktop dialog authenticates by header (there's no browser-login button), so use your sk_ key here. Leave the env-var fields blank.
ChatGPT Web (Developer Mode) — browser login (OAuth). On the web app, enable Settings → Connectors → Advanced → Developer mode, then Add custom connector, name it JobGPT, and enter the URL https://mcp.6figr.com/mcp. ChatGPT runs the OAuth flow: sign in to 6figr in the popup and approve. No API key needed. (Developer mode is available on Plus, Pro, Business, Enterprise, and Edu plans.)
Cursor
Go to Settings > MCP > Add new MCP server, or add to ~/.cursor/mcp.json:
{
"mcpServers": {
"jobgpt": {
"type": "http",
"url": "https://mcp.6figr.com/mcp",
"headers": {
"Authorization": "your-api-key-here"
}
}
}
}Windsurf
Go to Settings > Cascade > MCP > Add Server > Add custom server, or add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"jobgpt": {
"type": "http",
"url": "https://mcp.6figr.com/mcp",
"headers": {
"Authorization": "your-api-key-here"
}
}
}
}Cline (VS Code)
Open the Cline MCP settings in VS Code and add:
{
"mcpServers": {
"jobgpt": {
"type": "http",
"url": "https://mcp.6figr.com/mcp",
"headers": {
"Authorization": "your-api-key-here"
}
}
}
}Continue (VS Code / JetBrains)
Add to your Continue config (~/.continue/config.yaml):
mcpServers:
- name: jobgpt
type: http
url: https://mcp.6figr.com/mcp
headers:
Authorization: "your-api-key-here"Alternative: Run Locally
If you prefer to run the server on your machine (requires Node.js 18+):
{
"mcpServers": {
"jobgpt": {
"command": "npx",
"args": ["-y", "jobgpt-mcp-server"],
"env": {
"JOBGPT_API_KEY": "your-api-key-here"
}
}
}
}Available Tools
Job Search
Tool | Description |
| Search jobs with filters — titles, locations, companies, skills, salary, remote, H1B sponsorship |
| Get new job matches from a saved job hunt (only unseen jobs) |
| Get full details of a specific job posting |
Profile & Salary
Tool | Description |
| View your profile — skills, experience, work history, education, work authorization, notice period |
| Update name, headline, location, skills, experience |
| Get your current compensation details |
| Update base salary, stocks, bonus, target salary |
| List supported currencies (for salary updates) |
| Check your remaining credits balance |
Job Hunts
Tool | Description |
| List your job hunts (active, archived, or all) with optional per-hunt application counts and your credits balance |
| Create a new job hunt with search filters and auto-apply settings |
| Get details of a specific job hunt |
| Update filters (merged into the saved ones), auto-apply mode, daily limits, status |
Applications
Tool | Description |
| Aggregated stats — counts by status, auto-apply metrics |
| List applications filtered by job hunt, status, or a company/title search |
| Get full application details |
| Update status or notes |
| Trigger auto-apply for an application |
| Save a job from search results to your applications |
| Import a job from any URL (LinkedIn, Greenhouse, Lever, Workday, etc.) |
Resume
Tool | Description |
| List your uploaded resumes |
| Get resume details and download URL |
| Delete an alternate resume |
| Upload a resume from URL (PDF, DOC, DOCX) |
| List AI-tailored resumes created for applications |
| Get a generated resume's download URL |
| Tailor your resume for one job (a saved application or a job ID from search) with your own asks, keywords and sections; optional downloadable PDF |
| Calculate resume-to-job match score with skill analysis |
Outreach
Tool | Description |
| Find recruiters associated with a job |
| Find potential referrers at a company |
| Get recruiters for a saved application |
| Find referrers for a saved application |
| List your sent outreach emails |
| Send an outreach email to a recruiter or referrer, for a saved application or straight from a job ID |
Environment Variables
Variable | Required | Default | Description |
| Yes | — | Your API key from 6figr.com/account |
| No |
| API base URL |
| No |
| Enable debug logging to stderr |
Troubleshooting
"JOBGPT_API_KEY environment variable is required"
Your API key isn't being passed to the server. Make sure it's in the env block of your MCP config.
Tool calls failing with "API Error (401)"
Your API key is invalid or expired. Generate a new one at 6figr.com/account.
"You have run out of credits"
Some operations (auto-apply, resume generation) consume credits. Purchase more at 6figr.com/jobgpt.
Server not appearing in your AI tool
Make sure Node.js 18+ is installed (
node --version)Restart your AI tool after editing the config file
Try running manually to check for errors:
JOBGPT_API_KEY=your-key npx jobgpt-mcp-server
Debug mode
Add "DEBUG": "true" to your env config to see detailed API request/response logs in stderr.
Development
git clone https://github.com/6figr-com/jobgpt-mcp-server.git
cd jobgpt-mcp-server
npm install
cp .env.example .env # add your API key
npm run dev:local # run stdio server locally
npm run build # compile TypeScript
npm run dev:worker # run Cloudflare Worker locally
npm run deploy # deploy to Cloudflare WorkersTesting with MCP Inspector
npx @modelcontextprotocol/inspectorLicense
MIT
Links
JobGPT — AI-powered job search platform
Get API Key — Generate your MCP API key
GitHub Issues — Report bugs or request features
Available Tools
35 toolsadd_job_to_applicationsA
Add a job from search results to your applications. Use this when a user wants to save/track a job they found.
Inputs: jobId (required), jobHuntId (required).
apply_to_jobA
Trigger auto-apply for a job application. This will automatically fill and submit the job application form. You can optionally specify a specific resume to use for this application.
Inputs: id (required), resumeUri.
create_job_huntB
Create a new job hunt to start tracking and applying to jobs. A job hunt defines what jobs you want to find based on titles, locations, skills, salary, etc. You need at least one job hunt to use match_jobs or add_job_to_applications.
Inputs: name (required), config (required), autoMode, dailyLimit, +2 more.
delete_resumeA
Delete an uploaded resume from your profile. Note: You cannot delete your primary resume, only alternate resumes.
Inputs: id (required).
generate_resume_for_jobA
Generate an AI-optimized resume tailored for a specific job application. This creates a customized version of your resume highlighting relevant skills and experience for the job. Returns JSON resume data.
Inputs: applicationId (required), modifications, keywords, sections, +1 more.
get_applicationA
Get details of a specific job application by ID. Optionally include the full job listing (description, salary, skills, etc.).
Inputs: id (required), includeJobListing.
get_application_recruitersA
Get recruiters for a job application you have saved. Returns contact info for reaching out.
Inputs: applicationId (required).
get_application_referrersA
Find potential referrers for a job application. Returns people at the company who might refer you.
Inputs: applicationId (required), limit.
get_application_statsA
Get aggregated stats for your job applications — total counts by status and auto-apply metrics. Much faster than paginating through list_applications.
Inputs: jobHuntId, dateOffset.
get_creditsA
Get your current credit balance and usage information
Inputs: no named parameters.
get_currenciesA
Get the list of supported currencies with their codes, symbols, and units. Use this to look up the correct currency code before updating salary.
Inputs: no named parameters.
get_generated_resumeA
Get details of a specific AI-generated resume including the download URL.
Inputs: id (required).
get_industriesA
Get the list of valid company industries. Use these values for the "industries" filter in search_jobs, create_job_hunt, or update_job_hunt.
Inputs: no named parameters.
get_jobA
Get detailed information about a specific job listing/posting by its job listing ID (not application ID). Use this to view the full job posting details including description, salary, skills, and company info. For job application details, use get_application instead.
Inputs: id (required).
get_job_huntA
Get details of a specific job hunt by ID
Inputs: id (required).
get_job_recruitersA
Get recruiters who posted or are associated with a specific job. Returns contact info including email and LinkedIn.
Inputs: jobId (required).
get_job_referrersB
Find potential referrers at a company for a specific job. Returns people who might be able to refer you based on your network and the job.
Inputs: jobId (required), limit.
get_profileA
Get your user profile including personal info, skills, experience, and work history
Inputs: no named parameters.
get_resumeB
Get details of a specific uploaded resume including download URL.
Inputs: id (required), includeRawTxt.
get_salaryA
Get your current salary/compensation details including base, stocks, bonus, and total compensation
Inputs: no named parameters.
import_job_by_urlA
Import a job from a URL (e.g., LinkedIn, Greenhouse, Lever, Workday) and add it to your applications. Optionally trigger auto-apply immediately. Use this when a user has a direct link to a job posting.
Inputs: url (required), jobHuntId (required), autoApply.
list_applicationsB
List your job applications, optionally filtered by job hunt or status
Inputs: jobHuntId, status, page, limit.
list_generated_resumesA
List AI-generated custom resumes. These are resumes that were automatically tailored for specific job applications.
Inputs: jobApplicationId, manualTrigger.
list_interviewsA
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.
Inputs: jobApplicationId, status, upcoming, page, +1 more.
list_job_huntsA
List your saved job hunts (job searches). Also returns your current credits balance.
Inputs: page, limit.
list_outreachesA
List your outreach emails that have been sent to recruiters and referrers.
Inputs: jobApplicationId, page, limit.
list_resumesA
List your uploaded resumes. Returns all resumes you have uploaded to your profile, including your primary resume and any alternate versions.
Inputs: includeRawTxt.
match_jobsA
Get new job matches based on a saved job hunt configuration. Uses the filters saved in your job hunt (titles, locations, skills, salary, etc.) and only returns jobs you have not already seen, applied to, or rejected. To change filters, use update_job_hunt first.
Inputs: jobHuntId (required), limit, page.
search_jobsC
Search for jobs with filters like titles, locations, companies, skills, salary, and remote options. Returns a list of matching job postings.
Inputs: titles, locations, countries, companies, +12 more.
send_outreachA
Send an outreach email to a recruiter or referrer for a job application. The email will be sent from your configured email.
Inputs: applicationId (required), contactId (required), subject (required), body (required).
update_applicationA
Update a job application status or notes
Inputs: id (required), status, notes.
update_job_huntA
Update job hunt settings and search filters. Use this to change what jobs are matched. IMPORTANT: When updating config, you must pass the ENTIRE config object as it replaces the existing config (not a partial merge). Use get_job_hunt first to see current config, then include all fields you want to keep.
Inputs: id (required), name, autoMode, dailyLimit, +4 more.
update_profileC
Update your user profile fields
Inputs: fullName, headline, location, skills, +1 more.
update_salaryC
Update your salary/compensation details
Inputs: currency, base, stocks, bonus, +2 more.
upload_resumeA
Upload a resume as base64 file content. Supported formats: PDF, DOC, DOCX. Maximum file size: 5MB. Read the file from the user's machine and pass the base64-encoded content. By default, your profile will be synced with the resume content. Use isAltResume to upload as an alternate resume instead of replacing your primary.
Inputs: fileContent (required), fileName (required), syncProfile, isAltResume.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 35 tools
The tools have clear purposes individually, but there is notable overlap that could cause confusion. For example, get_application and get_job both retrieve job details but for different contexts (application vs listing), and get_job_recruiters/get_application_recruiters are similarly differentiated by context. Tools like list_applications and get_application_stats provide overlapping data on applications, though descriptions clarify their distinct use cases.
Tool names follow a highly consistent verb_noun pattern throughout, with clear actions like get, list, update, create, delete, etc. All names use snake_case uniformly, making them predictable and easy to parse. Minor variations like import_job_by_url still adhere to the overall convention.
With 35 tools, the count is excessive for the domain of job hunting and applications. Many tools could be consolidated or omitted without losing functionality, such as separating get_application_recruiters and get_job_recruiters. This large set may overwhelm agents and increase complexity unnecessarily.
The tool set provides comprehensive coverage for the job hunting domain, including CRUD operations for applications, job hunts, resumes, and profiles, plus advanced features like auto-apply, outreach, and AI-generated resumes. There are no obvious gaps; agents can manage the entire job search lifecycle from discovery to follow-up.
Maintenance
Related MCP Connectors
Auto-Apply That Ends on an Interview. AI job search, tailored resumes, job application tracker.
Job applications done for you: check applications and interviews, get prep, apply to a job by URL.
Auto-apply to jobs: matches your CV, tailors a fresh CV per posting, and applies for you.
Automate your job search: find jobs, upload a resume, apply automatically, and track applications.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI-driven job application automation for LinkedIn and SEEK platforms with intelligent cover letter generation, automated application submission, and application tracking management. Supports anti-detection measures and complies with platform usage policies for safe job hunting automation.-
- AlicenseNot gradedqualityDmaintenanceEnables users to search for jobs, prefill applications using AI, and automate submissions across major platforms like Lever and Ashby directly from Claude or Cursor. It provides a full suite of tools for managing job queues, profile data, and resumes within a chat interface.37MIT
- AlicenseNot gradedqualityDmaintenanceAutomates job application tracking and resume/cover letter generation using AI, integrating with Google Drive, Notion, and Gmail.1MIT
- FlicenseAqualityDmaintenanceAutomates job outreach by finding companies, discovering contacts, generating personalized emails with AI, and tracking campaigns.9-