_ registry / mcp streamable-http · checked 31m ago

worklittle-jobs-mcp

https://mcp.worklittle.com

Registry code: 204d51740ec2be69

api record

Jobs tools search the public catalog and apply as a candidate. Search, market, and job details are anonymous — do not ask the user to Connect to browse. apply_for_job and Apply with AI require Connect. Business tools manage this workspace's postings, candidates, employees, and email. search_jobs is not list_posted_jobs. apply_for_job is not post_a_job.

endpoint
https://mcp.worklittle.com
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is worklittle-jobs-mcp live?
Yes — it answered the hub's last check (checked 31m ago). It answered 100% of checks over the last 30 days.
Is worklittle-jobs-mcp free to use?
Partly — some of its tools are open, others need a key or payment.
What tools does worklittle-jobs-mcp have?
23 tools: mint_mcp_ui_embed_session, stop_application, list_applications, search_companies, get_job_details, track_applied_job, get_my_profile, list_recent_chats, ….
Is worklittle-jobs-mcp safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 99.6%· all time 99.6%

latency
177ms

last good check

priced tools
0

of 23 tools

_ answered our checks, 90 days 281 checks · signed record
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
  • unknown → live
_ what it is for
used for
  • search jobs on a map
  • apply to a job automatically
  • manage resume and profile
  • track job applications
takes → gives
text, documents → data
tools
9 reads7 changes data1 sends messages
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 23 tools
2 open 21 never probed 2 of 23 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • search_jobs reads open 41d ago

    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 place fields; the map opens at the user's approximate (IP-based) area. When a nearby search runs short, results widen to the rest of the country and then worldwide (search.scope says which: near, country or world), so say where the roles are. ROLE: query holds only the job title text (e.g. 'product manager') and may be omitted for 'any job'. Search Worklittle job listings. People say Worklittle plus a role, city, company, or filters (or just 'jobs') — they will not name this tool. Call it whenever they want Worklittle jobs. Search 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 engineer, -senior' excludes titles containing senior. Use company for employer slugs (include or exclude). Never concatenate many job titles into one query unless the user supplied comma-separated roles. Do not add seniority_level, stacks, or resume-derived terms unless they asked. Omit seniority_level unless they explicitly name a level as an inclusion filter (never infer from profile). Expand abbreviations only; umbrella phrases use neutral roles and/or company slugs. Umbrella or vague phrases ('big tech', 'FAANG', 'top retailers'): interpret intent, then one search_jobs with comma-separated company slugs and/or a broad role query — prefer one API call over many. company MUST be employer slug(s): bare slugs include (OR), e.g. meta,google,apple. Prefix a slug with '-' to exclude, e.g. -lucid-motors,-tesla. Same leading-dash rule as title negatives, but in company not query. Expand 'no car companies' / 'don't show Lucid' into -slug tokens. Never pass display names as query. If unsure of slug, try lowercase hyphenated brand. Add skills or stack to query/keywords only when the user mentioned them — not from profile by default. When an include company filter returns 0 results, try a broader query (drop include company, use role keywords) before telling the user nothing matched. Pass cursor from a previous response to paginate. Search is anonymous. Do not call get_account, apply, or ask the user to Connect to search or skip. Connect / OAuth is only when they apply. After the map renders, briefly say what was found and where (listed pay shows on each job). For visa / H-1B: set visa_sponsorship to 'yes' (plus optional query). Postings must be explicitly tagged. When visa_sponsorship is set and posted_within_days is omitted, do not apply the default 7-day recency cutoff — tagged visa roles are sparse. For regional / nearby intent: near_lat, near_lng, radius_km (e.g. 50–65). Prefer this over the location substring when coordinates are known. For two or more metros in one user message (e.g. SF or NYC), pass location_or as comma-separated place names — one API request matches ANY listed place. Do not use near_* for multi-metro; use location_or or location with 'or' between cities. Recency: set posted_within_days from the user's words — today/just posted → 1; past few days → 3; this week → 7; past two weeks → 14; this month → 30. Omit when they did not mention timing (defaults to the last 7 days, the map's default). Set 0 only when they want any age / no date limit. Never put today/new/this week into query. Filters are the same as the map's filter chips, and nothing else: posted_within_days (Past 24 hours / 3 / 7 / 14 / 30 days), seniority_level (Experience: intern, entry/new grad, senior, manager, director/executive), employment_type (Type: full-time, part-time, contract), and visa_sponsorship (Visa). Prefer no filters: use one only when the user explicitly asks for it, because each filter shrinks the results a lot. For remote-only jobs send remote: true (and no place fields). There is no salary, hybrid, or benefits filter. If the user asks to filter by salary, search without it and say they can see salaries on the map (listed pay shows on each job).

    mcp-tool

    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "number",
          "maximum": 50,
          "minimum": 1,
          "description": "Number of results to return. Default 10, max 50."
        },
        "query": {
          "type": "string",
          "description": "Job title or role phrase (merged with keywords). Sent as API title= — matches job TITLE text only, separate from company. Preserve negative title terms with a leading dash, e.g. 'product manager, software engineer, -senior'. If they want any role / all jobs, omit. Never merge many titles into one string unless the user supplied comma-separated roles. Expand shorthand (swe, pm, sre) when applicable.",
          "x-mcp-header": "Query"
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor from a previous search_jobs response to fetch the next page."
        },
        "remote": {
          "type": "boolean",
          "description": "true: remote jobs only (any country unless country is set). Leave out place fields. location 'remote' does the same."
        },
        "company": {
          "type": "string",
          "description": "Employer slug(s): bare slug or comma-separated OR include (e.g. meta,google,apple). Prefix with '-' to exclude (e.g. -lucid-motors,-tesla). Mix allowed (meta,google,-amazon). Lowercase hyphenated. Mid-slug hyphens are part of the slug; only a leading '-' excludes. If include-only returns 0, retry without include slugs.",
          "x-mcp-header": "Company"
        },
        "country": {
          "type": "string",
          "description": "ISO 3166-1 alpha-2 country filter (e.g. US, GB, DE). Returns jobs in that country or workplace_type remote."
        },
        "keywords": {
          "type": "string",
          "description": "Only if the user named skills or stacks in this turn. Omit by default — do not pull from resume or profile."
        },
        "location": {
          "type": "string",
          "description": "Display name of the place (e.g. 'San Francisco, CA'). When near_lat/near_lng are set this is only a label and is NOT used as a text filter. Otherwise a text filter on job location strings (partial match). For metro-area or 'near me' intent, prefer near_lat + near_lng + radius_km (50–65 km typical) so results are not tied to one city spelling. Use location only when you cannot geocode, or as a fallback. Avoid long 'City, Country' strings; use country for country filters. For multiple metros, prefer location_or."
        },
        "near_lat": {
          "type": "number",
          "description": "Latitude for distance search. Use with near_lng. Typical source: browser geolocation or geocoded city."
        },
        "near_lng": {
          "type": "number",
          "description": "Longitude for distance search. Required with near_lat."
        },
        "radius_km": {
          "type": "number",
          "maximum": 500,
          "minimum": 1,
          "description": "Radius in kilometers around near_lat/near_lng. Default 50, max 500."
        },
        "exclude_ids": {
          "type": "string",
          "description": "Comma-separated job IDs to exclude (e.g. postings already shown in the conversation)."
        },
        "location_or": {
          "type": "string",
          "description": "Comma-separated place substrings when the user names two or more metros at once (e.g. San Francisco,New York). The API returns jobs whose location text matches ANY term. Mutually exclusive with distance search (near_lat/near_lng)."
        },
        "exclude_remote": {
          "type": "boolean",
          "description": "When using near_lat/near_lng: false includes remote-only jobs; true (default) excludes them so results are geographically local."
        },
        "employment_type": {
          "enum": [
            "full_time",
            "part_time",
            "contract",
            "internship",
            "temporary"
          ],
          "type": "string",
          "description": "Type of employment contract."
        },
        "seniority_level": {
          "enum": [
            "new_grad",
            "entry",
            "mid",
            "senior",
            "staff",
            "manager",
            "director",
            "executive"
          ],
          "type": "string",
          "description": "Omit unless the user explicitly asked for a band. Never infer from profile. Enum when set:"
        },
        "visa_sponsorship": {
          "enum": [
            "yes",
            "no"
          ],
          "type": "string",
          "description": "Filter by explicit visa sponsorship text in the posting (AI-extracted). Use 'yes' for jobs that sponsor visas (H-1B, etc.). Use 'no' only when the user wants roles that explicitly state no sponsorship. Omit when not relevant."
        },
        "posted_within_days": {
          "type": "number",
          "minimum": 0,
          "description": "Days of posted-date lookback. Omit → default 7 (map default). 0 → no cutoff (any age). 1 → today/last 24h. 7 → this week. Any positive integer allowed (e.g. 90, 365). Never encode recency words in query."
        },
        "description_language": {
          "type": "string",
          "description": "ISO 639-1 code for the language of the job posting body. Examples: en, es, de, fr, pt."
        }
      }
    }
    arguments 109 lines
  • get_market_overview reads open 42d ago

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "Role or title filter for a market slice (e.g. product manager)."
        },
        "location": {
          "type": "string",
          "description": "Location substring for a market slice (e.g. San Francisco)."
        },
        "workplace_type": {
          "enum": [
            "remote",
            "hybrid",
            "on_site"
          ],
          "type": "string",
          "description": "Optional workplace filter for the slice."
        }
      }
    }
    arguments 22 lines
  • mint_mcp_ui_embed_session changes data unknown never probed

    Jobs — Create a sign-in link so the Worklittle app can open the user's chats on worklittle.com.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • stop_application changes data unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "session_id"
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "x-mcp-header": "Session-Id"
        }
      }
    }
    arguments 12 lines
  • list_applications unknown never probed

    Jobs — List applications: pending ones (matched by auto-apply, waiting for approval, running, or waiting on the user) and finished ones (completed = submitted, failed, stopped). Check it before applying so the same job is never applied to twice. Filter with status (pending, applied, ...), job_id or applicant_id.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "number"
        },
        "job_id": {
          "type": "string"
        },
        "status": {
          "enum": [
            "all",
            "pending",
            "matched",
            "awaiting_approval",
            "queued",
            "running",
            "awaiting_input",
            "awaiting_submit",
            "paused",
            "completed",
            "failed",
            "stopped"
          ],
          "type": "string"
        },
        "applicant_id": {
          "type": "string",
          "description": "\"me\" for the user's own, or an applicant id (required on a shared API key)"
        }
      }
    }
    arguments 32 lines
  • search_companies reads unknown never probed

    Jobs — 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 not in the index yet and offer any close matches you found.

    mcp-tool

    {
      "type": "object",
      "required": [
        "q"
      ],
      "properties": {
        "q": {
          "type": "string",
          "description": "Company name or slug query (min 2 characters, max 80)."
        },
        "limit": {
          "type": "number",
          "maximum": 20,
          "minimum": 1,
          "description": "Max results to return. Default 5, max 20."
        }
      }
    }
    arguments 18 lines
  • get_job_details reads unknown 41d ago

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "Role/title search used when job_id is missing (picks the first live match)."
        },
        "job_id": {
          "type": "string",
          "description": "The job ID from a previous search_jobs result when available.",
          "x-mcp-header": "Job-Id"
        },
        "location": {
          "type": "string",
          "description": "Optional location substring when resolving details by query."
        }
      }
    }
    arguments 18 lines
  • track_applied_job changes data unknown never probed

    Jobs — Add a job to the user's Applied or Saved list, or change its status, so they can find it later.

    mcp-tool

    {
      "type": "object",
      "required": [
        "job_id",
        "job_title",
        "company_name"
      ],
      "properties": {
        "job_id": {
          "type": "string",
          "description": "Worklittle job id from search_jobs or get_job_details."
        },
        "method": {
          "enum": [
            "apply",
            "apply_with_ai",
            "api"
          ],
          "type": "string",
          "description": "How the user applied. Defaults to apply."
        },
        "status": {
          "enum": [
            "saved",
            "in_progress",
            "applied",
            "interview",
            "offer",
            "rejected",
            "withdrawn",
            "skipped"
          ],
          "type": "string",
          "description": "Pipeline stage when known. Use saved for heart/save, skipped for Job Cards / deck Skip. Defaults to in_progress for apply / apply_with_ai, applied for api."
        },
        "apply_url": {
          "type": "string",
          "description": "Optional employer apply URL."
        },
        "job_title": {
          "type": "string"
        },
        "company_name": {
          "type": "string"
        }
      }
    }
    arguments 47 lines
  • get_my_profile reads unknown never probed

    Jobs — Get the user's Worklittle profile (name, location, contact details and job preferences). If they have not linked their account it returns connected false; use get_my_resume or apply_for_job to sign them in.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • list_recent_chats reads unknown never probed

    Jobs — List the user's recent Worklittle chats (title and status) for the app sidebar.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "number",
          "description": "Max chats (default 20, max 50)."
        },
        "cursor": {
          "type": "string",
          "description": "next_cursor from the previous page."
        }
      }
    }
    arguments 13 lines
  • logout_connected_account changes data unknown never probed

    Jobs — Sign the user out of Worklittle in this app.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • upload_my_resume changes data unknown never probed

    Jobs — Save the resume the user attached in the chat (PDF, Word, text or image) as the main resume on their Worklittle profile so it can be used to apply. It replaces the current main resume; other saved resumes (an account keeps up to 5) stay. Pass the attached file as resume_file.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "mime": {
          "type": "string",
          "description": "MIME type, e.g. application/pdf"
        },
        "filename": {
          "type": "string",
          "description": "Original file name, e.g. resume.pdf (widget upload)."
        },
        "resume_file": {
          "type": "object",
          "required": [
            "download_url",
            "file_id"
          ],
          "properties": {
            "file_id": {
              "type": "string"
            },
            "file_name": {
              "type": "string"
            },
            "mime_type": {
              "type": "string"
            },
            "download_url": {
              "type": "string"
            }
          },
          "description": "The resume file the user attached in the chat."
        },
        "content_base64": {
          "type": "string",
          "description": "Base64-encoded file bytes (data: URLs accepted; strip prefix ok)."
        }
      }
    }
    arguments 39 lines
  • get_my_resume reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • update_my_profile changes data unknown never probed

    Jobs — Update the user's Worklittle profile, such as name, location, phone, links or the kind of job they want. Only send the fields to change.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "phone": {
          "type": "string"
        },
        "x_url": {
          "type": "string"
        },
        "you_name": {
          "type": "string"
        },
        "you_work": {
          "type": "string"
        },
        "education": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "school"
            ],
            "properties": {
              "end": {
                "type": "string"
              },
              "start": {
                "type": "string"
              },
              "degree": {
                "type": "string"
              },
              "school": {
                "type": "string"
              },
              "field_of_study": {
                "type": "string"
              }
            }
          },
          "description": "Replaces education. Months as YYYY-MM."
        },
        "job_title": {
          "type": "string",
          "description": "Current job title(s), most recent first"
        },
        "languages": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "experience": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "company"
            ],
            "properties": {
              "end": {
                "type": "string"
              },
              "start": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "company": {
                "type": "string"
              },
              "current": {
                "type": "boolean"
              }
            }
          },
          "description": "Replaces work history. Months as YYYY-MM; omit end for the current job."
        },
        "github_url": {
          "type": "string"
        },
        "tiktok_url": {
          "type": "string"
        },
        "you_school": {
          "type": "string"
        },
        "youtube_url": {
          "type": "string"
        },
        "company_name": {
          "type": "string",
          "description": "Current employer(s), most recent first"
        },
        "facebook_url": {
          "type": "string"
        },
        "home_address": {
          "type": "string"
        },
        "linkedin_url": {
          "type": "string"
        },
        "instagram_url": {
          "type": "string"
        },
        "location_city": {
          "type": "string"
        },
        "school_degree": {
          "type": "string"
        },
        "you_interests": {
          "type": "string"
        },
        "desired_salary": {
          "type": "string",
          "description": "e.g. \"$90,000+\" or \"$25+/hour\""
        },
        "location_state": {
          "type": "string"
        },
        "phone_national": {
          "type": "string"
        },
        "drivers_license": {
          "type": "string",
          "description": "valid | none | empty to clear"
        },
        "huggingface_url": {
          "type": "string"
        },
        "location_country": {
          "type": "string"
        },
        "years_experience": {
          "type": "number"
        },
        "needs_sponsorship": {
          "type": "boolean",
          "description": "true if they need visa sponsorship to work"
        },
        "phone_country_iso": {
          "type": "string"
        },
        "personal_website_url": {
          "type": "string"
        },
        "profile_clear_fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Field names to clear when empty"
        },
        "work_authorization_countries": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "ISO2 country codes"
        }
      }
    }
    arguments 165 lines
  • apply_for_job sends messages unknown never probed

    Jobs — Apply to a job for the user: Worklittle fills out and submits the application in a browser. Pass job_id from search_jobs. For a Worklittle-hosted posting also include name, email and resume. It submits by default; pass auto_submit false when the user wants to review first, then show them the answers from check_application_status and send it with submit_application only after they say so.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "test": {
          "type": "boolean",
          "description": "true: a free practice run. Nothing opens, nothing is stored or sent to an employer, no personal information needed. The session moves queued → running → completed over ~25 seconds."
        },
        "job_id": {
          "type": "string",
          "description": "Worklittle job id from search_jobs / get_job_details.",
          "x-mcp-header": "Job-Id"
        },
        "job_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Apply to up to 10 jobs in one call (instead of job_id), all for the same person and with the same options. Returns one result per job."
        },
        "applicant": {
          "type": "object",
          "required": [
            "name",
            "email"
          ],
          "properties": {
            "city": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "email": {
              "type": "string"
            },
            "phone": {
              "type": "string"
            },
            "state": {
              "type": "string"
            },
            "country": {
              "type": "string"
            },
            "website": {
              "type": "string"
            },
            "linkedin": {
              "type": "string"
            },
            "about_you": {
              "type": "string",
              "description": "Standing answers: notice period, sponsorship, referrals, anything else."
            },
            "desired_salary": {
              "type": "string"
            },
            "needs_sponsorship": {
              "type": "boolean",
              "description": "true if they need visa sponsorship to work"
            },
            "work_authorization": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "ISO2 country codes"
            }
          },
          "description": "With use_profile false: the person applying. name and email are required; phone, city, state, country, work_authorization, needs_sponsorship, desired_salary, about_you are recommended. Send their resume as resume_text or resume_pdf_base64."
        },
        "resume_id": {
          "type": "string",
          "description": "Use this one of the user's saved resumes. Leave out to let Worklittle pick the best one for the job."
        },
        "auto_submit": {
          "type": "boolean",
          "description": "Default true: submit when the form is complete. false: stop at review (status awaiting_submit) so the user can check every answer; send it with submit_application."
        },
        "resume_html": {
          "type": "string",
          "description": "Optional resume HTML to seed."
        },
        "resume_text": {
          "type": "string",
          "description": "With use_profile false: the applicant's resume as plain text."
        },
        "use_profile": {
          "type": "boolean",
          "description": "Default true: apply as the signed-in user with their profile. false: apply as the applicant described below (another person, no Worklittle account needed)."
        },
        "applicant_id": {
          "type": "string",
          "description": "With use_profile false: the person from an earlier apply. Store it permanently with the person and reuse it; it works with any Worklittle API key. It is also emailed to them; if lost, ask them for it."
        },
        "tailor_resume": {
          "type": "boolean",
          "description": "Default from apply settings (on): write a resume tailored to this job. false: send the resume as is."
        },
        "max_per_company": {
          "type": "integer",
          "maximum": 10,
          "minimum": 1,
          "description": "Applications to one company per 30 days for this person. Defaults to their apply setting (3). Raise it only after the person agrees, when a start returned COMPANY_LIMIT_REACHED."
        },
        "cover_letter_html": {
          "type": "string",
          "description": "Optional cover letter HTML to seed."
        },
        "resume_pdf_base64": {
          "type": "string",
          "description": "With use_profile false: the applicant's resume PDF, base64."
        }
      }
    }
    arguments 116 lines
  • check_application_status reads unknown never probed

    Jobs — Check an application Worklittle is filling out: its status, which form fields are filled, and a live view link. Only the status completed means it was submitted.

    mcp-tool

    {
      "type": "object",
      "required": [
        "session_id"
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "x-mcp-header": "Session-Id"
        }
      }
    }
    arguments 12 lines
  • submit_application unknown never probed

    Jobs — Send an application that stopped for review (apply_for_job with auto_submit false, status awaiting_submit). Call it only after the user has seen the answers from check_application_status and said to send it.

    mcp-tool

    {
      "type": "object",
      "required": [
        "session_id"
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "x-mcp-header": "Session-Id"
        }
      }
    }
    arguments 12 lines
  • steer_application unknown never probed

    Jobs — 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 from apply_for_job or list_active_applications. For facts that should apply to every future application too, also call save_about_me.

    mcp-tool

    {
      "type": "object",
      "required": [
        "session_id",
        "instructions"
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "x-mcp-header": "Session-Id"
        },
        "instructions": {
          "type": "string",
          "description": "What to change, in plain words."
        }
      }
    }
    arguments 17 lines
  • save_about_me unknown never probed

    Jobs — 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, or other standing answers they ask applications to use. Stored as the 'More about you' text in their Settings. Pass the complete text to keep (read get_my_profile first and merge with what is there, so nothing is lost). Write it in the user's words; never invent facts.

    mcp-tool

    {
      "type": "object",
      "required": [
        "about_me"
      ],
      "properties": {
        "about_me": {
          "type": "string",
          "description": "The full More about you text to store (replaces the old text)."
        }
      }
    }
    arguments 12 lines
  • list_active_applications reads unknown never probed

    Jobs — 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 one to stop or check.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • get_apply_settings unknown never probed

    Jobs — Get the user's apply settings: auto_apply (Worklittle applies to matching jobs on its own), auto_submit (submit without a review stop) and tailor_resume (tailor the resume to each job).

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • update_apply_settings unknown never probed

    Jobs — Turn auto_apply, auto_submit or tailor_resume on or off. Only send the settings to change. Turning auto_apply on needs Instant or a card on file.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "auto_apply": {
          "type": "boolean"
        },
        "auto_submit": {
          "type": "boolean"
        },
        "tailor_resume": {
          "type": "boolean"
        }
      }
    }
    arguments 14 lines
  • delete_my_resume changes data unknown never probed

    Jobs — Delete the user's main resume from their profile. Other saved resumes stay.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 204d51740ec2be69.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/204d51740ec2be69/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/204d51740ec2be69/badge.svg)](https://brick.blue/agent/204d51740ec2be69?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.