Coding agent documentation index Fetch the complete documentation index at: https://docs.worklittle.com/docs-agent-manifest.json Use this file to discover all available pages before exploring further.

Jobs MCP

Install Worklittle MCP for job search, apply, and document tools in Cursor, Claude, VS Code, and other clients.

Overview

Worklittle MCP connects AI assistants to Worklittle at https://mcp.worklittle.com/. It uses the same account and data as the REST API. This guide covers Jobs tools and the Jobs app. Posting, ATS, and webhooks are under Business MCP.

MCP server

Install in Claude (web, desktop, mobile, Claude Code), ChatGPT and Codex, Cursor, Muse, OpenClaw, Hermes Agent, VS Code, OpenCode, T3 Code, LM Studio, Bionic, GitHub Copilot CLI, Devin, Zed, Google Antigravity, Gemini CLI, Kiro, Goose, Cline, Roo Code, Kilo Code, Amp, Factory Droid, JetBrains Junie, Warp, Qwen Code, Crush, Cherry Studio, Jan, Msty, Raycast, Perplexity, Le Chat, Replit, Lovable, Bolt, v0, or mcp-remote. Use one-click install where the app supports it. Otherwise copy the setup prompt. Each client entry lists its config path and troubleshooting. The Jobs MCP app (map, apply, Recents) opens from search_jobs, and as a full app from the ChatGPT sidebar.

Tools (25 tools)

Jobs tools: search_jobs, get_job_details, get_job_keywords, get_market_overview, apply_for_job (also callable as submit_job_application), create_resume, create_cover_letter. ATS and webhook tools are under Business MCP.

Jobs (MCP app)

Calling search_jobs opens an interactive Jobs app (resource URI ui://worklittle/jobs) with jobs on a map, pay, filters, job details, Recents, and Apply with AI.

In ChatGPT it opens three ways: inline when you ask for jobs, as a panel beside a chat, and as a full app from the sidebar. The sidebar entrypoints are the Plugin Extensions global and thread entrypoints on search_jobs, which accepts {}.

Deep link to a search: https://chatgpt.com/plugins/<plugin-id>/app/search_jobs?path=%2F%3Fq%3Dnurse%26location%3DAustin%252C%2520TX

Supported query keys: q, company, location, near_lat, near_lng, posted_within_days, visa_sponsorship, employment_type, seniority_level.

Authentication

Create a sk-wl-api01- key at worklittle.com/business/api-keys and send it as Authorization: Bearer <key>. Clients that support OAuth, such as ChatGPT and Claude, can use Connect instead, which issues a key of the same form on consent. Job search, job details, and market tools also work without credentials. Apply, profile, and Business tools need a key or Connect, and without one they return an authentication challenge.

Prompt guide

Prompts for agents: job search, job details, and apply.

Protocol and compatibility

JSON-RPC 2.0 over HTTP. The server speaks the modern 2026-07-28 Streamable HTTP protocol and the legacy initialize handshake (2025-06-18 and 2024-11-05). It has no database of its own. Tool calls forward to the REST API with your Bearer key. Use MCP in assistants. Use REST in apps without MCP libraries.

Resources

Links: MCP spec, Jobs MCP, Business MCP, Search jobs REST, webhooks, and REST vs MCP.

Tool catalog

The other 80 tools (posting, candidates, employees, email, HR documents, attendance, webhooks) are in Business MCP: /business/mcp#tools

- search_jobs: Opens the Worklittle jobs MAP for a place and an optional role. This is a map query, not a list of jobs: the map recenters on the place and shows jobs there, so send the place and the role as SEPARATE fields. Never write 'product manager in San Francisco' as one query. PLACE: always pass near_lat + near_lng (the city's coordinates, which you know) and location as the display name (e.g. 'San Francisco, CA'). radius_km 25-50 for a city. If the user names no place, omit all…

- get_job_details: Fetch detailed information about a specific job, including full responsibilities, qualifications, and company details. Pass job_id from search_jobs when you have one. If the user asks for full details of a role without an id (e.g. the first software engineer job in Austin), pass query and optional location instead — the tool loads the first matching live listing.

- get_job_keywords: Get skill and technology keywords from live Worklittle job data. Pass job_id for one posting. If the user asks what keywords show up for a role (resume tailoring, 'data scientist jobs', applications) and you do not have a job_id, pass query instead (optional location). Returns keywords plus keyword_count. Do not require a prior search when the question is about a role in general.

- get_market_overview: Returns aggregate job-market statistics from Worklittle. Call with no args for the full indexed market (counts, workplace mix, top hiring companies). When the user names a role and/or city (e.g. product managers in San Francisco), pass query and location. The filtered slice includes match count, top companies in the sample, and salary signals from listings that publish pay.

- create_resume: Create a hiring-manager-ready one-page resume (no placeholders). Uses only real facts from optional resume/profile/job context; omits unknowns. Optional formats: html, pdf (one-page pdf-lib), docx. Omit formats for default html+pdf. Alias format=html|pdf|docx. Billed AI tokens only.

- create_cover_letter: Create a hiring-manager-ready one-page cover letter (no placeholders). Same formats/format options as create_resume (default html+pdf). Billed AI tokens only.

- submit_job_application: Submit a candidate application to a Worklittle-hosted job (POST /jobs/:id/apply). Requires jobs:apply on the API key. Free. Use get_job_details first to read application_fields. Only works for employer-posted jobs on Worklittle, not external apply_url listings from the scraped index.

- list_applied_jobs: List the API key owner's personal saved-jobs pipeline (In progress, Applied, Interview, Offer, Rejected, Withdrawn, Skipped). Returns enriched job cards when available. Worklittle.org apply clicks, Apply with AI, deck skips, and POST /jobs/:id/apply submits for this account are tracked automatically.

- track_applied_job: Record that the API key owner saved, applied to, clicked Apply, or skipped a job. Use status saved for heart/save and skipped for deck Skip. Defaults to in_progress (apply / apply_with_ai) or applied (api).

- update_applied_job_status: Move a tracked job to a personal pipeline stage: saved, in_progress, applied, interview, offer, rejected, withdrawn, or skipped. Use after your agent learns the candidate progressed (or was rejected/withdrawn).

- delete_applied_job: Remove a job from the API key owner's personal saved-jobs pipeline (unheart / remove from Saved).

- start_apply_with_ai: Start an Apply-with-AI session for a job where can_apply is true (AI tokens only; no flat browser fee). Personal API keys also open a watch-only worklittle.com chat for the key owner (chat_url with ?account=). Company keys do not create a consumer chat. Returns session_id and live_view_url. No per-user concurrent cap; when global browser slots are full the session is queued (Waiting). Submits by default; pass auto_submit false to stop at review (status awaiting_submit),…

- get_apply_session: Get Apply-with-AI session status, form_progress (required_filled/required_total), live_view_url, field fills, and proxy contact reasons. Only status completed means the application was submitted. Other statuses include queued, running, awaiting_input, paused, failed, cancelled, stopped.

- stop_apply: Stop an application that Worklittle is filling out for the user. This cancels the application in progress and it cannot be resumed; the user would have to start it again. Needs the session_id from apply_for_job or list_active_applications.

- steer_apply: Change what an application in progress fills in, without stopping it. Use when the user says something about an application Worklittle is filling right now ("say my notice period is one month", "my friend Ana Ruiz referred me", "I need visa sponsorship for the US", "make that answer shorter"). Pass their wish as plain instructions with their exact facts; never add facts. Works while the application is running, ready to submit, or waiting for answers. Needs the session_id…

- list_active_applications: List the user's applications that Worklittle is filling out right now (queued, running, or waiting on the user), with job_id and session_id. Use it to find which application to stop or check.

- get_connected_account: Return the user's Worklittle profile (name, location, contact details, job preferences) when they have linked their account. If they have not, returns connected: false; to sign them in, call get_my_resume or apply_for_job. Do not call this to search jobs.

- list_recent_chats: List the connected account's recent Worklittle chats (title and status only) for the app sidebar. Not connected: connected false and no chats.

- upload_profile_resume: Save the user's resume (PDF, Word, text or image) to their Worklittle profile so it can be used to apply. Pass the file the user attached as resume_file; the widget passes filename and content_base64 instead.

- get_profile_resume_status: Get the user's saved resume: its status (ready | processing | missing) and, when ready, the resume text and the profile details read from it. Use it to tailor advice, answers or an application to the user's real experience.

- remove_profile_resume: Delete the connected account's profile resume file. Used by Job Cards You/Settings. Requires jobs:apply.

- update_connected_profile: Patch the connected account's Settings profile fields (name, school, desired role, phone, links, work authorization, driver's license, interests). Used by Job Cards You overlay. Requires jobs:apply. Syncs to cloud for worklittle.com.

- save_about_me: Save standing facts about the user that Worklittle's Apply with AI uses on every future application: work authorization and visa sponsorship by country, relocation, notice period, desired salary, languages, qualifications, who referred them, reasonable adjustments, self-identification, or anything else they want applications to answer a certain way. Stored as the 'More about you' text in their Settings. Pass the complete text to keep (read get_my_profile first and merge…

- search_companies: Search the Worklittle market company index by name or slug (ranked typeahead). Returns id, name, slug, logo_url, and enrichment fields for employers with open jobs. Use when the user names an employer and you need a real slug/id for search_jobs company= filters, job alerts, or automations. If zero hits, try alternate spellings or related employer names from further search_companies calls — do not invent company ids or slugs. If still empty, tell the user that employer is…

- list_jobs: Search jobs and open the scrollable Job List App (developer UI). Prefer search_jobs (the jobs map). Same filters as search_jobs.