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/. Same account and data as the REST API. This guide covers Jobs tools and the Jobs app. ATS posting and webhooks are under Business MCP.

MCP server

Install for Cursor, Claude, VS Code, ChatGPT, Codex, OpenCode, Devin, Zed, Gemini CLI, Antigravity, v0, Warp, Kiro, Roo Code, and mcp-remote. Includes the Jobs MCP app (swipe, apply, Maps, profile via search_jobs). Config paths and troubleshooting.

Tools (101 tools)

Jobs-focused tools include search_jobs, get_job_details, get_job_keywords, get_market_overview, submit_job_application, apply_for_job, create_resume, and create_cover_letter. ATS and webhook tools are documented under Business MCP.

Jobs (MCP app)

Interactive Jobs app via search_jobs: swipe, Maps, Saved, profile, apply. Resource URI ui://worklittle/jobs. Inline, fullscreen, and picture-in-picture.

Authentication

Bearer sk-wl-api01- API keys from the Worklittle Business worklittle.com/business/api-keys. Authorization header on MCP requests.

Prompt guide

Job search, job details, and apply prompts for agents.

Protocol and compatibility

JSON-RPC 2.0 over HTTP. Dual-era protocol: modern 2026-07-28 Streamable HTTP plus legacy initialize (2025-06-18 / 2024-11-05). No database of its own. Tool calls forward to the API with your Bearer key. Prefer MCP in assistants and REST for apps without MCP libraries.

Resources

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

Tool catalog

- search_jobs: Search Worklittle's job listings by keyword, company, location, job type, seniority, or recency. Use for ANY industry (retail, finance, healthcare, tech, etc.). Search matches title and filter text (substring / FTS), not vector embeddings. Role / title text goes in query (+ optional keywords). The API matches job TITLE substrings only for that text — it does not mix company names into the same field. Preserve negative title terms with a leading dash, e.g. 'software…

- get_job_details: Fetch detailed information about a specific job, including full responsibilities, qualifications, and company details. Use this after search_jobs or get_recent_jobs when a user wants to know more about a particular job. Requires the job's ID from a previous search result.

- get_job_keywords: Get only the skill and technology keywords extracted from a job description — stripped of all narrative prose, responsibilities copy, and boilerplate clutter. Use this as the focused input when tailoring a resume or cover letter to a specific role: getting the full job description degrades resume/cover letter quality because the extra words are too confusing. These keywords are the distilled skill/tech surface area of the role. Also useful for skill-overlap assessment and…

- get_market_overview: Returns aggregate statistics about the current job market as indexed by Worklittle. Use this when a user asks broad questions like 'what jobs are available?', 'how many remote jobs are there?', 'which companies are hiring the most?', or 'what does the job market look like overall?'. Also useful for enterprise users who want hiring trend data or sourcing signals. No parameters required — just call it.

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

- get_company: Read the company identity and canonical company profile for the caller's Worklittle platform account.

- set_company: Set or update the single company identity for the caller's Worklittle platform account. Requires a verified work email. Changing company identity closes existing public jobs.

- update_company_profile: Update canonical company metadata for the caller's verified company. The account email domain must match the company domain.

- list_company_organizations: List internal organizations or teams within the employer company, including hiring goals.

- set_company_organizations: Create or update an internal company organization or team with hiring goals.

- delete_company_organizations: Delete an internal company organization or team.

- list_posted_jobs: List jobs posted through Worklittle ATS for the caller's platform account.

- create_job_listing: Create a candidate-facing Worklittle ATS job listing.

- update_job_listing: Update a candidate-facing Worklittle ATS job listing.

- delete_job_listing: Close a Worklittle ATS job listing so it no longer accepts applications.

- create_job: Create an internal HR job. Set open_to_candidates true to make it candidate-facing.

- update_job: Update an internal HR job. Set open_to_candidates true to open it to candidates.

- delete_job: Close an internal HR job so it no longer accepts candidates.

- submit_job_application: Submit a candidate application to a Worklittle-hosted job (POST /jobs/:id/apply). Requires jobs:apply on the API key. Charges $0.01 per successful submit. 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_job_applications: List private ATS applications for a Worklittle-posted job. Only the posting organization can read applications.

- get_job_application: Read one private ATS application for a Worklittle-posted job. Only the posting organization can read applications.

- list_candidates: List candidates for your organization. Filter by posted job and/or bookmarked candidates.

- bookmark_candidate: Bookmark a candidate for your organization. Bookmarks are shared across the org.

- unbookmark_candidate: Remove an organization-wide bookmark from a candidate.

- get_candidate_alerts: Get your bookmark and alert settings for a candidate.

- set_candidate_alerts: Configure your personal alerts for a candidate: pipeline stage change emails and/or a scheduled contact reminder.

- list_candidate_alerts: List all candidates where you have configured personal alerts.

- get_candidate_profile: Fetch full ATS candidate profile for your organization: about, pipeline, applications, notes, interviews, experience, education, skills, and answers.

- generate_candidate_about_summary: Generate or refresh the one-sentence ATS about summary for a candidate (uses resume, cover letter, and application Q&A).

- update_candidates: Update candidate profile fields and assign interview or pipeline stage. Use candidate_job_id with stage_key/stage_label to move a candidate.

- delete_candidates: Delete one or more candidates from the active ATS candidate list.

- create_candidate_experience: Add a work experience row on a candidate profile (links company via shared companies table).

- update_candidate_experience: Update a candidate experience row by experience_id.

- delete_candidate_experience: Delete a candidate experience row by experience_id.

- create_candidate_education: Add education on a candidate profile (school upserted as university company).

- update_candidate_education: Update candidate education by education_id.

- delete_candidate_education: Delete candidate education by education_id.

- create_candidate_interview: Schedule or record an interview on a candidate profile.

- update_candidate_interview: Update interview by interview_id (time, status, notes, etc.).

- delete_candidate_interview: Delete interview by interview_id.

- create_candidate_notes: Create an organization-scoped note for a candidate.

- update_candidate_notes: Update a candidate note.

- delete_candidate_notes: Delete a candidate note.

- list_candidate_notes: List notes for a candidate (plain text, rich body spans, attachment metadata).

- get_candidate_note: Get one candidate note by note_id including attachments.

- set_email_messages: Set a custom email message template for application, interview, offer, or custom stages.

- update_email_messages: Update a custom email message template.

- delete_email_messages: Reset a custom email message template back to Worklittle defaults.

- send_email: Send or schedule an email from the company's hiring team through Worklittle ATS.

- create_offer: Create an offer for a candidate.

- update_offer: Update an offer for a candidate.

- delete_offer: Delete an offer from the active offer list.

- list_employees: List employees for the organization.

- create_employee: Create an employee record or convert a candidate into an employee.

- update_employee: Update an employee record.

- delete_employee: Delete an employee record. If linked to a candidate, Worklittle restores the candidate record.

- create_employee_employment_period: Add an employment stint (hire, rehire, or backfill). Requires employee_id and start_date. Example department: Engineering. end_reason when closing: resigned, terminated, laid_off, retired, contract_ended, other.

- update_employee_employment_period: Update a historical or current employment stint by employment_period_id (department, dates, end_reason).

- delete_employee_employment_period: Delete an employment stint by employment_period_id.

- set_employee_performance_feedback: Add performance feedback for an employee.

- delete_employee_performance_feedback: Delete an employee performance feedback entry.

- set_interview_questions: Set company-default or job-specific interview questions.

- delete_interview_questions: Delete company-default or job-specific interview questions.

- list_webhooks: List webhook endpoints for the current Worklittle platform account.

- create_webhook: Create a webhook endpoint that receives Worklittle platform events.

- update_webhook: Update a webhook endpoint URL, event types, name, or status.

- delete_webhook: Delete a webhook endpoint from the current platform account.

- rotate_webhook_secret: Rotate the signing secret for a webhook endpoint.

- test_webhook: Send a test event through a webhook endpoint.

- list_webhook_deliveries: List recent webhook delivery attempts and statuses.

- 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 for swipe Job Cards. Same filters as search_jobs.

- list_email_sends: List outbound emails sent from ATS or platform automations. Includes open tracking when available.

- get_email_send: Get a single outbound email send by id, including body and open stats when available.

- list_email_send_events: List open and delivery events for an outbound email send.

- list_attendance: List attendance/calendar entries for a date range. Response includes self_employee_id, can_write_any, can_write_self. Omit employee_id for the default scoped list.

- create_attendance_entry: Create a calendar/attendance entry. Omit employee_id to schedule yourself. Omit times for all-day. Pass HH:MM via start_time/end_time or minutes. recurrence_rule e.g. FREQ=WEEKLY;BYDAY=MO,WE,FR. notes for agenda. Edit+ can schedule anyone; others only self.

- update_attendance_entry: Update an attendance entry by id (dates, times, type, notes, recurrence, all_day).

- delete_attendance_entry: Delete an attendance entry by id. Same self-vs-any write permission as create/update.

- list_hr_document_templates: List the catalog of legally-oriented HR document templates (offer letters, NDAs, code of conduct, etc). Returns key, title, and description for each — use get_hr_document_spec_guide before drafting from scratch.

- get_hr_document_spec_guide: Return HR document drafting rules (professionalism, merge tags, jurisdiction). Call before create_hr_document or edit_hr_document.

- list_hr_documents: List all HR documents owned by the organization (drafts, sent, templates in use). Edit+ only.

- get_hr_document: Get a single HR document's full body_html, status, and signature summary by document_id (or id).

- create_hr_document: Create a new HR document. Call get_hr_document_spec_guide first. Provide title and/or body_html, or template_key alone to start from a catalog template.

- edit_hr_document: Update an existing HR document by document_id (or id). Pass title/body_html and/or operations array.

- delete_hr_document: Permanently delete an HR document by document_id (or id). Edit+ only.

- share_hr_document: Share an HR document with employees and/or emails by document_id (or id).

- list_platform_notifications: List in-app Work notifications (bell feed — not webhooks). Each item has label (security_alert|needs_attention|info) independent of unread. Paginate with limit/before_id; filter with label, severity, unread_only, sort.

- 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).

- get_connected_account: Return the user_id, email, display name, photo, resume readiness, full Settings profile fields, and email_prefs of the API key / OAuth account connected to this MCP session. Used by Job Cards for the You overlay, overflow account row, and Apply resume gate. Do not call for anonymous browse — only after Connect or when already linked.

- upload_profile_resume: Upload the connected account's profile resume file (PDF, Word, text, or image). Used by Job Cards Apply resume gate before start_apply_with_ai. Requires jobs:apply.

- get_profile_resume_status: Poll profile resume processing status after upload_profile_resume (ready | processing | idle | missing). Job Cards analyzing phase.

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

- 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). API keys always 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 Apply-with-AI Browser Run session.