Skip to main content
Glama

List tracked jobs

freeapply_list_jobs
Read-onlyIdempotent

List and search tracked jobs, look up one by ID, or filter by status or outcome to find job details and IDs; read-only.

Instructions

Lists the user's tracked jobs, most recent activity first (submitted, else updated, else found): the jobs themselves (totals and rates: freeapply_get_stats). Use: to find a job_id, look up one job by job_id, or answer questions about particular jobs. Not for adding or changing jobs (freeapply_claim_job, freeapply_update_job). Removing a job is the user's, in the dashboard. Behavior: read-only. Filters combine: a job must match all given. limit and offset page through the same order (default 200 from 0); a page shorter than limit is the last. Parameters: job_id returns just that job (empty if unknown); status and outcome match exactly; search finds text in the title, company or location, ignoring case. Returns: [{id, title, company, location, work_mode, pay_text, pay_min, pay_max, url, apply_url, fit_score, status, status_note, outcome, outcome_at, source, found_at, updated_at, method, submitted_at, confirmation, resume_path, cover_path, reply_count}]; empty when nothing matched.

Input Schema

NameRequiredDescriptionDefault
limitNoMost jobs to return (default 200).
job_idNoOne job by its id.
offsetNoJobs to skip (default 0).
searchNoText to find.
statusNoExact status filter.
outcomeNoExact employer-outcome filter.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.0.6
    • addedInput schema / properties / job_id
      Added value: +{
      +  "description": "One job by its id.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / limit / description
      Previous value: -"Most jobs to return (default 200); fewer returned means the end."New value: +"Most jobs to return (default 200)."
    • changedInput schema / properties / offset / description
      Previous value: -"Jobs to skip, for the next page (default 0)."New value: +"Jobs to skip (default 0)."
    • changedInput schema / properties / search / description
      Previous value: -"Text in the title, company or location, ignoring case."New value: +"Text to find."
  2. Changed5 schema fields changedv1.0.4
    • changedInput schema / properties / limit / description
      Previous value: -"Most jobs to return. Optional; default 200."New value: +"Most jobs to return (default 200); fewer returned means the end."
    • changedInput schema / properties / offset / description
      Previous value: -"Jobs to skip, for the next page. Optional; default 0."New value: +"Jobs to skip, for the next page (default 0)."
    • changedInput schema / properties / outcome / description
      Previous value: -"Only jobs with this employer outcome. Optional."New value: +"Exact employer-outcome filter."
    • changedInput schema / properties / search / description
      Previous value: -"Text to find in the title, company or location. Optional."New value: +"Text in the title, company or location, ignoring case."
    • changedInput schema / properties / status / description
      Previous value: -"Only jobs with this status. Optional."New value: +"Exact status filter."
  3. Changed10 schema fields changedv1.0.1
    • addedInput schema / properties / limit / default
      Added value: +200
    • addedInput schema / properties / limit / description
      Added value: +"Most jobs to return. Optional; default 200."
    • addedInput schema / properties / limit / maximum
      Added value: +2000
    • addedInput schema / properties / limit / minimum
      Added value: +1
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "description": "Jobs to skip, for the next page. Optional; default 0.",
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / outcome / description
      Added value: +"Only jobs with this employer outcome. Optional."
    • addedInput schema / properties / outcome / enum
      Added value: +[
      +  "acknowledged",
      +  "replied",
      +  "assessment",
      +  "interview",
      +  "rejected",
      +  "offer",
      +  "withdrawn"
      +]
    • addedInput schema / properties / search / description
      Added value: +"Text to find in the title, company or location. Optional."
    • addedInput schema / properties / status / description
      Added value: +"Only jobs with this status. Optional."
    • addedInput schema / properties / status / enum
      Added value: +[
      +  "found",
      +  "ready",
      +  "applied",
      +  "skipped",
      +  "needs_info",
      +  "needs_account",
      +  "blocked",
      +  "failed"
      +]
  4. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint, so the 'read-only' line is redundant, but the description goes well beyond them: filter combination is AND across all given params, pagination preserves the same ordering with a short-page-means-last rule, and empty results are specified for both no-match and unknown job_id. That is the kind of behavioral detail annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then clearly segmented into Use / Behavior / Parameters / Returns, with zero filler. The enumerated 21-field return list is long, but it substitutes for a missing output schema, so it earns its space; only the restated defaults are pure repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the field-level return list is exactly what an agent needs to know what it will get back, and ordering, filtering, pagination limits, and empty-result behavior are all covered. Nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3; the description earns above that by adding semantics the schema lacks — 'search' is scoped to title, company or location and is case-insensitive, job_id returns empty (not an error) when unknown, and status/outcome are exact matches. The default-200/offset-0 behavior is restated rather than added, keeping it off a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Lists the user's tracked jobs') plus the exact ordering rule (submitted, else updated, else found). It explicitly separates itself from freeapply_get_stats (totals/rates) and freeapply_claim_job / freeapply_update_job (mutation), so an agent can route correctly without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

A dedicated 'Use:' clause enumerates the three concrete jobs this serves (find a job_id, look up one job, answer questions about particular jobs), and a 'Not for' clause names the sibling tools that handle adding/changing plus notes that removal happens in the dashboard. Both the positive and negative routing conditions are explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.