Skip to main content
Glama

Watch Company Jobs

watch_company_jobs
Read-only

Job-change monitoring for up to 50 company domains: with known_job_ids per domain from an earlier answer, returns only new and closed jobs. The scan is free and returns a quote_id; $0.01 is charged only per company whose jobs changed or that needs a first baseline, at most $0.50. Unchanged companies are free. Use when an agent tracks hiring at a list of accounts daily.

Input Schema

NameRequiredDescriptionDefault
contextNoOptional. A few words on why you are calling this tool. Recorded without your identity to improve the tools; leave out personal data.
domainsNoPublic company domains without a URL scheme, path or port.
quote_idNoquote_id from step 1. Send it alone to pay and receive the results.
known_job_idsNoMap of domain to the job_id list from your previous answer. Domains without an entry get a full first baseline.

Output Schema

NameRequiredDescriptionDefault
codeNo
coldNohot-buyers: domains below the threshold, free.
nextNo
statusNoquote: pay with quote_id to get the results. nothing_billable: no charge. ok: paid results.
resultsNoPaid rows, after step 2.
sandboxNo
quote_idNo
statusesNoStatus of every domain, free.
price_usdNo
expires_atNo
billable_countNo
price_micro_usdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / description
      Added value: +"Create a quote with domains (1–50) and optional known_job_ids, OR redeem with quote_id and no scan fields. Never mix quote_id with domains or known_job_ids."
    • removedInput schema / oneOf
      Removed value: -[
      -  {
      -    "not": {
      -      "required": [
      -        "quote_id"
      -      ]
      -    },
      -    "required": [
      -      "domains"
      -    ]
      -  },
      -  {
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "domains"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "known_job_ids"
      -          ]
      -        }
      -      ]
      -    },
      -    "required": [
      -      "quote_id"
      -    ]
      -  }
      -]
    • removedOutput schema / anyOf
      Removed value: -[
      -  {
      -    "properties": {
      -      "billable_count": {
      -        "type": "integer"
      -      },
      -      "cold": {
      -        "description": "hot-buyers: domains below the threshold, free.",
      -        "items": {
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "expires_at": {
      -        "format": "date-time",
      -        "type": "string"
      -      },
      -      "next": {
      -        "type": "string"
      -      },
      -      "price_micro_usd": {
      -        "type": "integer"
      -      },
      -      "price_usd": {
      -        "type": "number"
      -      },
      -      "quote_id": {
      -        "type": "string"
      -      },
      -      "results": {
      -        "description": "Paid rows, after step 2.",
      -        "items": {
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "sandbox": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "demo_domain": {
      -            "const": true,
      -            "type": "boolean"
      -          },
      -          "note": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "demo_domain",
      -          "note"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "description": "quote: pay with quote_id to get the results. nothing_billable: no charge. ok: paid results.",
      -        "enum": [
      -          "quote",
      -          "nothing_billable",
      -          "ok"
      -        ],
      -        "type": "string"
      -      },
      -      "statuses": {
      -        "description": "Status of every domain, free.",
      -        "items": {
      -          "type": "object"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "properties": {
      -      "code": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "status": {
      -        "maximum": 599,
      -        "minimum": 400,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "code"
      -    ],
      -    "type": "object"
      -  }
      -]
    • addedOutput schema / description
      Added value: +"Fields only; full schema in GET /v1/catalog."
    • addedOutput schema / properties
      Added value: +{
      +  "billable_count": {},
      +  "code": {},
      +  "cold": {
      +    "description": "hot-buyers: domains below the threshold, free."
      +  },
      +  "expires_at": {},
      +  "next": {},
      +  "price_micro_usd": {},
      +  "price_usd": {},
      +  "quote_id": {},
      +  "results": {
      +    "description": "Paid rows, after step 2."
      +  },
      +  "sandbox": {},
      +  "status": {
      +    "description": "quote: pay with quote_id to get the results. nothing_billable: no charge. ok: paid results."
      +  },
      +  "statuses": {
      +    "description": "Status of every domain, free."
      +  }
      +}
  2. Changed5 schema fields changed
    • removedInput schema / description
      Removed value: -"Create a quote with domains (1–50) and optional known_job_ids, OR redeem with quote_id and no scan fields. Never mix quote_id with domains or known_job_ids."
    • addedInput schema / oneOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "quote_id"
      +      ]
      +    },
      +    "required": [
      +      "domains"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "domains"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "known_job_ids"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "quote_id"
      +    ]
      +  }
      +]
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "billable_count": {
      +        "type": "integer"
      +      },
      +      "cold": {
      +        "description": "hot-buyers: domains below the threshold, free.",
      +        "items": {
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "expires_at": {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "next": {
      +        "type": "string"
      +      },
      +      "price_micro_usd": {
      +        "type": "integer"
      +      },
      +      "price_usd": {
      +        "type": "number"
      +      },
      +      "quote_id": {
      +        "type": "string"
      +      },
      +      "results": {
      +        "description": "Paid rows, after step 2.",
      +        "items": {
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "sandbox": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "demo_domain": {
      +            "const": true,
      +            "type": "boolean"
      +          },
      +          "note": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "demo_domain",
      +          "note"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "description": "quote: pay with quote_id to get the results. nothing_billable: no charge. ok: paid results.",
      +        "enum": [
      +          "quote",
      +          "nothing_billable",
      +          "ok"
      +        ],
      +        "type": "string"
      +      },
      +      "statuses": {
      +        "description": "Status of every domain, free.",
      +        "items": {
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "code": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "status": {
      +        "maximum": 599,
      +        "minimum": 400,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "code"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedOutput schema / description
      Removed value: -"Fields only; full schema in GET /v1/catalog."
    • removedOutput schema / properties
      Removed value: -{
      -  "billable_count": {},
      -  "code": {},
      -  "cold": {
      -    "description": "hot-buyers: domains below the threshold, free."
      -  },
      -  "expires_at": {},
      -  "next": {},
      -  "price_micro_usd": {},
      -  "price_usd": {},
      -  "quote_id": {},
      -  "results": {
      -    "description": "Paid rows, after step 2."
      -  },
      -  "sandbox": {},
      -  "status": {
      -    "description": "quote: pay with quote_id to get the results. nothing_billable: no charge. ok: paid results."
      -  },
      -  "statuses": {
      -    "description": "Status of every domain, free."
      -  }
      -}
  3. Changed3 schema fields changed
    • removedOutput schema / anyOf
      Removed value: -[
      -  {
      -    "properties": {
      -      "billable_count": {
      -        "type": "integer"
      -      },
      -      "cold": {
      -        "description": "hot-buyers: domains below the threshold, free.",
      -        "items": {
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "expires_at": {
      -        "format": "date-time",
      -        "type": "string"
      -      },
      -      "next": {
      -        "type": "string"
      -      },
      -      "price_micro_usd": {
      -        "type": "integer"
      -      },
      -      "price_usd": {
      -        "type": "number"
      -      },
      -      "quote_id": {
      -        "type": "string"
      -      },
      -      "results": {
      -        "description": "Paid rows, after step 2.",
      -        "items": {
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "sandbox": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "demo_domain": {
      -            "const": true,
      -            "type": "boolean"
      -          },
      -          "note": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "demo_domain",
      -          "note"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "description": "quote: pay with quote_id to get the results. nothing_billable: no charge. ok: paid results.",
      -        "enum": [
      -          "quote",
      -          "nothing_billable",
      -          "ok"
      -        ],
      -        "type": "string"
      -      },
      -      "statuses": {
      -        "description": "Status of every domain, free.",
      -        "items": {
      -          "type": "object"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "properties": {
      -      "code": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "status": {
      -        "maximum": 599,
      -        "minimum": 400,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "code"
      -    ],
      -    "type": "object"
      -  }
      -]
    • addedOutput schema / description
      Added value: +"Fields only; full schema in GET /v1/catalog."
    • addedOutput schema / properties
      Added value: +{
      +  "billable_count": {},
      +  "code": {},
      +  "cold": {
      +    "description": "hot-buyers: domains below the threshold, free."
      +  },
      +  "expires_at": {},
      +  "next": {},
      +  "price_micro_usd": {},
      +  "price_usd": {},
      +  "quote_id": {},
      +  "results": {
      +    "description": "Paid rows, after step 2."
      +  },
      +  "sandbox": {},
      +  "status": {
      +    "description": "quote: pay with quote_id to get the results. nothing_billable: no charge. ok: paid results."
      +  },
      +  "statuses": {
      +    "description": "Status of every domain, free."
      +  }
      +}
  4. Changed2 schema fields changed
    • addedInput schema / description
      Added value: +"Create a quote with domains (1–50) and optional known_job_ids, OR redeem with quote_id and no scan fields. Never mix quote_id with domains or known_job_ids."
    • removedInput schema / oneOf
      Removed value: -[
      -  {
      -    "not": {
      -      "required": [
      -        "quote_id"
      -      ]
      -    },
      -    "required": [
      -      "domains"
      -    ]
      -  },
      -  {
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "domains"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "known_job_ids"
      -          ]
      -        }
      -      ]
      -    },
      -    "required": [
      -      "quote_id"
      -    ]
      -  }
      -]
  5. Added

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations: it discloses the two-step quote→redeem flow, that the scan is free and returns a quote_id, the $0.01 per-changed-company charge, the $0.50 cap, and that unchanged companies are free. It also explains that a domain with no known_job_ids entry pays for a first baseline — exactly the cost/auth-style context annotations cannot carry.

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-loads the purpose, then the differential behavior, then pricing, then the usage cue — a sensible order with no filler. Minor redundancy: 'at most $0.50' and 'Unchanged companies are free' restate the same charging logic already implied by the per-changed-company rate.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the description covers the two-step flow, domain cap, cost ceiling and billing trigger. Residual gaps are minor: 'closed jobs' is not defined, and nothing says what happens on partial scan failure or how long a quote_id stays valid.

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 is 3. The description still adds real meaning by explaining the consequence of known_job_ids ('returns only new and closed jobs' versus a full baseline) and by implication tying quote_id to the prior step, which the schema states only mechanically ('quote_id from step 1').

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+resource ('Job-change monitoring for up to 50 company domains') plus the exact output semantics: only new and closed jobs relative to known_job_ids. That clearly separates it from siblings like get_company_open_jobs (single-company snapshot) and get_company_hiring_intent without needing schema inspection.

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

Usage Guidelines4/5

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

Explicitly names the usage context: 'Use when an agent tracks hiring at a list of accounts daily.' The list-based, recurring/differential nature is clear. However, it never explicitly contrasts itself with get_company_open_jobs or get_company_hiring_intent, so the agent must infer that one-off single-company lookups belong to a sibling.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.