Skip to main content
Glama

Ats New Postings

ats_new_postings
Read-onlyIdempotent

Diff a board's current postings against the last time this tool was called for the same ats+board_token (snapshot kept in KV, dated). The FIRST call for a board has no prior snapshot, so it returns every current job as new (snapshot_bootstrap:true) rather than a misleading empty diff. Pass "since" (ISO date) to also require posted_at >= since where the ATS reports a date.

Input Schema

NameRequiredDescriptionDefault
atsYesWhich ATS the board is on.
sinceNoOptional ISO-8601 date/time; only postings with posted_at on or after this (where the ATS reports a date) count as new.
board_tokenYesSame board_token shape as ats_jobs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "ats": "lever",
      -    "board_token": "spotify"
      -  }
      -]New value: +[
      +  {
      +    "ats": "lever",
      +    "board_token": "spotify"
      +  },
      +  {
      +    "ats": "teamtailor",
      +    "board_token": "career"
      +  }
      +]
    • changedInput schema / properties / ats / enum
      Previous value: -[
      -  "greenhouse",
      -  "lever",
      -  "ashby",
      -  "smartrecruiters",
      -  "recruitee",
      -  "bamboohr",
      -  "workday",
      -  "workable"
      -]New value: +[
      +  "greenhouse",
      +  "lever",
      +  "ashby",
      +  "smartrecruiters",
      +  "recruitee",
      +  "bamboohr",
      +  "workday",
      +  "workable",
      +  "teamtailor",
      +  "personio",
      +  "jobvite",
      +  "breezy",
      +  "pinpoint",
      +  "rippling",
      +  "icims"
      +]
  2. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Adds substantial context the annotations do not: the tool is stateful (snapshot kept in KV, dated, keyed to ats+board_token), the first call has no baseline and deliberately returns all jobs with snapshot_bootstrap:true instead of an empty diff, and 'since' is conditional on the ATS reporting a date. This is exactly the non-obvious behavior an agent needs before invoking.

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?

Three dense sentences, front-loaded with the core diff purpose before the bootstrap caveat and the 'since' detail. The final 'since' sentence partly duplicates the schema, but each sentence carries real information.

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?

For a stateful, three-param diff tool with no output schema, the description covers the critical semantics (baseline existence, bootstrap, date filtering). It leaves the structure of a normal diff response and error modes (invalid ats/board_token) unstated, but nothing essential to calling it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100%, so all three params are already documented, and the description's note on 'since' (posted_at >= value, only where the ATS reports a date) largely restates the schema text. Baseline 3 applies.

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 precise verb (diff) and resource (a board's current postings vs. the prior snapshot), scoped by ats+board_token. It is clearly distinguishable from the plain listing siblings (ats_jobs, ats_company_jobs) because it returns changes rather than a full listing.

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

Usage Guidelines3/5

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

The description frames intent well ('diff ... against the last time this tool was called') and explains the first-call edge case, but it never names an alternative or states when to prefer ats_jobs/ats_company_jobs over this tool. Usage is implied by the diff framing rather than explicitly routed.

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.