addrbookFor publishers
← The evidence ledger

Evidence row 305127

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 2a025aed-e4ef-41ea-9b39-d230da911edc
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
6a2e173cd46462375bdd6036ddee522db5822923c03ac4fe2482d4e20ec2cc4b
Leaf
0x65c32418e3c914ce2ab606bfe8b9781a1b1a2bd44acacc7c35ccdcae57d06587

What was observed

{
  "count": 4,
  "tools": [
    {
      "description": "Answers 'how many jobs has AI replaced (or cost) this year?' with the register's published count: roles disclosed in layoffs linked to AI, roles where the employer itself named AI, the evidence-weighted headline figure, and the independent Challenger, Gray & Christmas count of US cuts attributed to AI. Each figure carries its scope (worldwide or US), its period and its definition, plus the ready-made answer sentence. The totals are computed over the whole register, so they are the published figures, not a sum of search results. Takes no arguments.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "count_ai_job_losses"
    },
    {
      "description": "Current reading of the AI Layoffs Index, a 0-100 score of AI-attributed job-loss pressure scaled against AI's own history since 2023 (not a share of all jobs). Returns the value, its band, the uncertainty range, the change vs last month, the three weighted components with what each reads, the as-of date, and a ready-made citation string. Takes no arguments.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "get_ai_layoffs_index"
    },
    {
      "description": "Did a specific company cut jobs because of AI? Returns the register's verdict for that company (explicit, mixed or blamed: the strongest grade among its cuts), its answer (the strongest position its own words hold: declared, cited, conflicting, attrition, denied, not-named, or statement for a workforce statement with no cut), a plain-language summary, the roles it disclosed vs the roles counted as AI-attributed, and every recorded event with the employer's own words and source. It also lists the company's later cuts that the register checked and left out because neither the employer nor credible press linked them to AI (later_cuts_not_ai_linked, never counted), so a question about the newest layoff is answered either way. Accepts a company name such as 'Klarna' or 'Salesforce'. If the company is not in the register, says so and what that does and does not mean; for a notable layoff the register checked and found not linked to AI, it returns that answer with the employer's own reason and source.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "company": {
            "description": "Company name, e.g. 'Klarna', 'IBM', 'Salesforce'. Partial names work.",
            "maxLength": 120,
            "minLength": 1,
            "pattern": "\\S",
            "type": "string"
          }
        },
        "required": [
          "company"
        ],
        "type": "object"
      },
      "name": "get_company_ai_layoffs"
    },
    {
      "description": "Search the source-cited register of layoffs linked to AI (one row per event, 2023 to date). Filter by company, free text, attribution, evidence tier, execution status, country, sector, affected role and date range; call with no arguments for the most recent events. Each event returns the employer's own stated reason (claim), roles counted vs reported but not counted, execution status, and a link to its source and its ailayoffs.org company page; set full_context for each event's longer context paragraph.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "attribution": {
            "description": "Keep only these attribution levels. explicit: The company itself declared the layoff AI-related, without citing other material factors. blamed: A credible source named AI, but the company did not. Shown as context and never counted: the register's standard requires the employer's own words to name AI, so a blamed event is a failed claim, not a discounted one. mixed: AI was cited alongside other material factors (cost, demand).",
            "items": {
              "enum": [
                "explicit",
                "mixed",
                "blamed"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "company": {
            "description": "Company name or part of it, e.g. 'Klarna'.",
            "maxLength": 120,
            "pattern": "\\S",
            "type": "string"
          },
          "counted_only": {
            "description": "Only events whose roles the register counts as AI-attributed (drops events that are reported but not counted).",
            "type": "boolean"
          },
          "country": {
            "description": "Country as recorded, partial match, e.g. 'United States', 'India', 'Sweden'. For US-based roles use us_only.",
            "maxLength": 80,
            "pattern": "\\S",
            "type": "string"
          },
          "evidence_tier": {
            "description": "Keep only these evidence tiers. tier1 (Primary-source attributed): AI named as a workforce driver in the company's own SEC filing, on-record earnings call, or official statement, with the event corroborated by a structured source. tier2 (Reputable-press attributed): AI named as a cause by credible journalism quoting a named company source, but not yet in a company filing. tier3 (Inferred / single-source): Attribution from one secondary tracker, an unnamed source, or vague forward-looking language.",
            "items": {
              "enum": [
                "tier1",
                "tier2",
                "tier3"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "execution": {
            "description": "Keep only these execution statuses. executed: The reduction has been carried out. partial: Some of the cut is done, the rest pending. announced: A stated plan, not yet carried out (often multi-year). unknown: Execution status not established. reversed: The cut was rolled back or rehired against (e.g. Commonwealth Bank).",
            "items": {
              "enum": [
                "executed",
                "partial",
                "announced",
                "reversed",
                "unknown"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "full_context": {
            "description": "Also return each event's context paragraph. Several times longer, so best with a small limit; get_company_ai_layoffs always includes it for one company.",
            "type": "boolean"
          },
          "limit": {
            "description": "Maximum events to return (default 10, at most 50).",
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "query": {
            "description": "Free text matched against the company, the stated reason, the context paragraph, sector, country, affected roles and source name. Every word must appear. Example: 'customer service'.",
            "maxLength": 200,
            "pattern": "\\S",
            "type": "string"
          },
          "role": {
            "description": "Affected function or occupation, partial match, e.g. 'customer service', 'engineering'.",
            "maxLength": 80,
            "pattern": "\\S",
            "type": "string"
          },
          "sector": {
            "description": "Sector, partial match, e.g. 'Financial', 'Software'.",
            "maxLength": 80,
            "pattern": "\\S",
            "type": "string"
          },
          "since": {
            "description": "Earliest event date, inclusive: YYYY, YYYY-MM or YYYY-MM-DD.",
            "pattern": "^\\d{4}(-\\d{2}(-\\d{2})?)?$",
            "type": "string"
          },
          "sort": {
            "description": "newest first (default), oldest first, or the largest disclosed cut first.",
            "enum": [
              "newest",
              "oldest",
              "largest"
            ],
            "type": "string"
          },
          "until": {
            "description": "Latest event date, inclusive: YYYY, YYYY-MM or YYYY-MM-DD.",
            "pattern": "^\\d{4}(-\\d{2}(-\\d{2})?)?$",
            "type": "string"
          },
          "us_only": {
            "description": "Only events whose affected roles are US-based.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "name": "search_ai_layoff_events"
    }
  ]
}

What the leaf hashes

{"body":"6a2e173cd46462375bdd6036ddee522db5822923c03ac4fe2482d4e20ec2cc4b","id":305127,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793056278097063,"prev":null,"subject":"2a025aed-e4ef-41ea-9b39-d230da911edc","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x65c378c9d2ecad891c51cfe4eab78d29adfd0ba9277c07834613d1ac4cee41e2
  2. 0x1f93fc95754be9fb53d77e293f635ed06da875de7fbf92ebc881fc604c344f9a
  3. 0x17d26e4bf6a3f85122d98a5569870f42d49365fa3794144e6fb3fd91b4c9d551
  4. 0x74d2cc6fa14d0f093a2493d9bfa0a5223c10fe308569cbd7b915d40a5de81db2
  5. 0x844894ad27373929bc13af3c2ef00947e59547b437c2ce93eee00b278135ea31
  6. 0xa089fabddcf8ca27fef04b669280f44341d3b2c4f9fbd479669d4eceb85ddf9a
  7. 0x798292c9b8cb4118721c9554189a67d5b7142425fa2182b7adb71382cdd2c5e9
  8. 0x2d3853d593e9d3722e1943818695c5ebbd034e5ecf8829fd8b084f77b9e350f5
  9. 0x61265e6f546630d1b2e8062415c704111501a1eb9cf68051cc6a4cdcc97f8f08
  10. 0x5296420e1acf9644fca56dfcfebe9911f7cbd593b603e3a280043d869ff6edc4
  11. 0x2184826674dda59cfc6d24bc12b2c70a5f4db29f874e67fded919c1410503d2e
  12. 0x611b1c1b68d04a71934006e383071a8f3836400d60beb86d81dd038bc102029f
  13. 0x13f4b94ecf613d585c952b5363dad2b247a55371eb8e358bb89dc033e83128b1
  14. 0x9a79c65e077cd9da9d436b3ade6f5ddc0d244510c4d5903ef2f02d81205f7666
  15. 0xa2d436d488e3600b0e5c3e3ed9c9234cd52853c59830b786334fd0c4292d9f40
  16. 0x47b89901b0f07938a6b9a66ddf35683903f79d756a7c7763665fd632758b08d0
  17. 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON