> **For AI agents:** this page is a focused, LLM-optimized view of a
> single Fiber AI operation. Before calling it, fetch the routing
> instructions at [`https://api.fiber.ai/llms.txt`](https://api.fiber.ai/llms.txt) and the full operation
> index at [`https://api.fiber.ai/ai-docs/index.md`](https://api.fiber.ai/ai-docs/index.md).

# updateTrackerCompanyList

`PATCH /v1/tracker/company-lists/{listId}`

**Tags:** `Tracker`

Update company tracker list

**Endpoint:** `https://api.fiber.ai/v1/tracker/company-lists/{listId}`

## Description

Update a company tracker list. Supports replace-all (`trackingRules`) or granular (`addRules`/`removeRuleIds`) rule management — but not both in one request.

⚡ Rate limit: 120 requests per 1 minute

💰 Cost: FREE! No credits are charged for this API. ⓘ

## Parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `listId` | path | yes | The unique ID of the tracker list. |

## Request body (JSON Schema)

```json
{
  "type": "object",
  "properties": {
    "apiKey": {
      "type": "string",
      "description": "Your Fiber API key"
    },
    "name": {
      "type": [
        "string",
        "null"
      ],
      "minLength": 1,
      "maxLength": 200,
      "description": "New name for the list."
    },
    "refreshIntervalDays": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "maximum": 90,
      "description": "New check interval in days."
    },
    "isActive": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Pause or resume monitoring on the list."
    },
    "maxDynamicMembers": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "maximum": 10000,
      "description": "For dynamic lists only: update the maximum number of companies to keep in the list. Lowering it applies going forward (the refresh stops adding past the new cap; existing over-cap members are not evicted). Ignored for static lists."
    },
    "trackingRules": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "headcount_crossed_threshold"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "above",
                  "below"
                ],
                "description": "Whether to alert when headcount crosses the threshold going up or down"
              },
              "threshold": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "description": "The employee count threshold to watch for crossing. Any positive integer is accepted."
              }
            },
            "required": [
              "type",
              "entityType",
              "direction",
              "threshold"
            ],
            "title": "Headcount crossed threshold"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "headcount_growth_percent"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "minPercentChange": {
                "type": "number",
                "exclusiveMinimum": 0,
                "maximum": 1000,
                "description": "Minimum percent change to trigger (e.g. 20 means 20% growth)"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "grew",
                  "shrank",
                  "either"
                ],
                "description": "Whether to alert on growth, shrinkage, or either"
              },
              "minStartingHeadcount": {
                "type": [
                  "integer",
                  "null"
                ],
                "exclusiveMinimum": 0,
                "description": "Only alert if the company had at least this many employees before the change. Omit for any starting size."
              }
            },
            "required": [
              "type",
              "entityType",
              "minPercentChange",
              "direction"
            ],
            "title": "Headcount growth percent"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "new_funding_round"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "minAmountUsd": {
                "type": [
                  "number",
                  "null"
                ],
                "minimum": 0,
                "description": "Only alert for rounds above this amount. Omit for any amount."
              },
              "roundTypes": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "pre_seed",
                    "seed",
                    "angel",
                    "series_a",
                    "series_b",
                    "series_c",
                    "series_d",
                    "series_e",
                    "series_f",
                    "series_g",
                    "private_equity",
                    "debt_financing",
                    "grant",
                    "convertible_note",
                    "corporate_round",
                    "undisclosed"
                  ]
                },
                "minItems": 1,
                "description": "Round types to alert on. Defaults to equity-focused types when omitted. Set explicitly to include debt/grant types."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "New funding round"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "funding_stage_changed"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "toStages": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "pre_seed",
                    "seed",
                    "series_a",
                    "series_b",
                    "series_c",
                    "series_d",
                    "series_e",
                    "series_f",
                    "series_g",
                    "private_equity",
                    "public",
                    "acquired"
                  ]
                },
                "minItems": 1,
                "description": "Only alert if new stage is one of these. Omit for any stage change."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Funding stage changed"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "job_posting_with_keyword"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "keywords": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Alert when a job posting contains any of these keywords in the selected search fields."
              },
              "searchFields": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "title",
                    "description"
                  ]
                },
                "minItems": 1,
                "description": "Job posting fields to search for the keywords. Omit to search the title only."
              },
              "seniorityLevels": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "Internship",
                    "Entry level",
                    "Associate",
                    "Mid-Senior level",
                    "Director",
                    "Executive"
                  ]
                },
                "minItems": 1,
                "description": "Only alert for these seniority levels. Omit for any level."
              },
              "modalities": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "On-site",
                    "Remote",
                    "Hybrid"
                  ]
                },
                "minItems": 1,
                "description": "Only alert for these job modalities. Omit for any."
              },
              "locationTypes": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "remote",
                    "on_site",
                    "hybrid"
                  ]
                },
                "minItems": 1,
                "description": "Deprecated. Use modalities instead.",
                "deprecated": true
              },
              "minPostings": {
                "type": [
                  "integer",
                  "null"
                ],
                "exclusiveMinimum": 0,
                "description": "Only alert if at least this many NEW matching postings are detected in a single check cycle. Omit for 1 (any new match)."
              }
            },
            "required": [
              "type",
              "entityType",
              "keywords"
            ],
            "title": "Job posting with keyword"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "job_posting_in_function"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "jobFunctions": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "Accounting",
                    "Administrative",
                    "Advertising",
                    "Analyst",
                    "Art / Creative",
                    "Business Development",
                    "Community & Social Services",
                    "Consulting",
                    "Customer Service",
                    "Design",
                    "Distribution",
                    "Education",
                    "Engineering",
                    "Entrepreneurship",
                    "Finance",
                    "General Business",
                    "Health Care Provider",
                    "Human Resources",
                    "Information Technology",
                    "Legal",
                    "Management",
                    "Manufacturing",
                    "Marketing",
                    "Military & Protective Services",
                    "Other",
                    "Product Management",
                    "Production",
                    "Program & Product Management",
                    "Project Management",
                    "Public Relations",
                    "Purchasing",
                    "Quality Assurance",
                    "Real Estate",
                    "Research",
                    "Sales",
                    "Science",
                    "Strategy / Planning",
                    "Supply Chain",
                    "Training",
                    "Writing / Editing"
                  ]
                },
                "description": "Alert when a job posting is in any of these departments/functions."
              },
              "minPostings": {
                "type": [
                  "integer",
                  "null"
                ],
                "exclusiveMinimum": 0,
                "description": "Only alert if at least this many NEW matching postings are detected in a single check cycle. Omit for 1 (any new match)."
              }
            },
            "required": [
              "type",
              "entityType",
              "jobFunctions"
            ],
            "title": "Job posting in function"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "news_with_keyword"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "keywords": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Alert when a news article title or summary matches any keyword"
              },
              "sentiment": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "positive",
                  "negative",
                  "neutral",
                  null
                ],
                "description": "Only alert for news with this sentiment. Omit for any sentiment."
              }
            },
            "required": [
              "type",
              "entityType",
              "keywords"
            ],
            "title": "News with keyword"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "company_news"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "sentiment": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "positive",
                  "negative",
                  "neutral",
                  null
                ],
                "description": "Only alert for news with this sentiment. Omit for any sentiment."
              },
              "minArticles": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "description": "Only alert when at least this many articles are detected in a single check. Useful for filtering noise from single tangential mentions. Omit for any count."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Company news"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "hq_location_changed"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "HQ location changed"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "company_status_changed"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "toStatuses": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "operating",
                    "acquired",
                    "closed",
                    "ipo",
                    "subsidiary"
                  ]
                },
                "minItems": 1,
                "description": "Only alert if new status is one of these. Omit for any status change."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Company status changed"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "technology_added"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "technologies": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert for these technologies. Omit for any new technology."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Technology added"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "company_posted"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "minReactions": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0,
                "description": "Only alert for posts with at least this many reactions. Omit for any."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Company posted"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "company_posted_with_keyword"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "keywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Alert for posts matching these keywords."
              },
              "minReactions": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0,
                "description": "Only alert for posts with at least this many reactions. Omit for any."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Company posted with keyword"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "follower_count_growth"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "minAbsoluteGrowth": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0,
                "description": "Minimum absolute follower increase to trigger. Omit or set to 0 for any increase."
              },
              "minPercentGrowth": {
                "type": [
                  "number",
                  "null"
                ],
                "exclusiveMinimum": 0,
                "description": "Minimum percent follower increase to trigger. Omit for any increase."
              },
              "minStartingFollowerCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "exclusiveMinimum": 0,
                "description": "Only alert if the company had at least this many followers before the growth. Omit for any starting count."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Follower count growth"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "company_name_changed"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Company name changed"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "company_description_changed"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "keywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if new description contains one of these keywords. Omit for any change."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Company description changed"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "company_went_inactive"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "description": "Fires when a company becomes inactive.",
            "title": "Company went inactive"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "employee_count_milestone"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "milestone": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "description": "The employee count threshold to watch for crossing. Any positive integer is accepted. Equivalent to 'threshold' in headcount_crossed_threshold."
              },
              "direction": {
                "type": "string",
                "enum": [
                  "above",
                  "below"
                ],
                "description": "Whether to alert when crossing above or below the milestone"
              }
            },
            "required": [
              "type",
              "entityType",
              "milestone",
              "direction"
            ],
            "description": "Fires when the employee count crosses the specified value. Supports any positive integer, not just round milestones. Functionally equivalent to headcount_crossed_threshold.",
            "title": "Employee count milestone"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "new_office_location"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "countries": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$",
                  "minLength": 3,
                  "maxLength": 3
                },
                "minItems": 1,
                "description": "ISO 3166-1 alpha-3 country codes (e.g. 'USA', 'GBR', 'DEU'). Only alert for offices in these countries. Omit for any new office."
              },
              "cities": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "City names (e.g. 'San Francisco', 'London', 'Berlin'). Only alert for offices in these cities. Omit for any new office."
              },
              "regions": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Region codes (e.g. 'X-EMEA', 'X-APAC', 'X-EUROPE'). Expands to constituent country codes. Omit for any."
              },
              "states": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "State or province names (e.g. 'California', 'Ontario'). Omit for any."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "New office location"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "company_logo_changed"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Company logo changed"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "acquired_company"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "minPriceUsd": {
                "type": [
                  "number",
                  "null"
                ],
                "minimum": 0,
                "description": "Only alert for acquisitions above this price. Omit for any acquisition."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Acquired company"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "new_investor"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "investorNames": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert when a new investor's name matches one of these (exact, case-insensitive). Omit for any new investor."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "New investor"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "recently_hired_with_title"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "titleKeywords": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Title keywords to search for. Fires when the company hires someone whose title matches any keyword."
              },
              "minNewHires": {
                "type": [
                  "integer",
                  "null"
                ],
                "exclusiveMinimum": 0,
                "description": "Minimum number of NEW hires detected in a single check cycle to trigger the alert. Only counts employees who appeared since the last check. Omit for 1."
              }
            },
            "required": [
              "type",
              "entityType",
              "titleKeywords"
            ],
            "title": "Recently hired with title"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "department_size_threshold"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "department": {
                "type": "string",
                "enum": [
                  "Accounting",
                  "Administrative",
                  "Advertising",
                  "Analyst",
                  "Art / Creative",
                  "Business Development",
                  "Community & Social Services",
                  "Consulting",
                  "Customer Service",
                  "Design",
                  "Distribution",
                  "Education",
                  "Engineering",
                  "Entrepreneurship",
                  "Finance",
                  "General Business",
                  "Health Care Provider",
                  "Human Resources",
                  "Information Technology",
                  "Legal",
                  "Management",
                  "Manufacturing",
                  "Marketing",
                  "Military & Protective Services",
                  "Other",
                  "Product Management",
                  "Production",
                  "Program & Product Management",
                  "Project Management",
                  "Public Relations",
                  "Purchasing",
                  "Quality Assurance",
                  "Real Estate",
                  "Research",
                  "Sales",
                  "Science",
                  "Strategy / Planning",
                  "Supply Chain",
                  "Training",
                  "Writing / Editing"
                ],
                "description": "Department to track. Matched against the company's organizational structure."
              },
              "threshold": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "description": "The employee count threshold to watch for crossing"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "above",
                  "below"
                ],
                "description": "Whether to alert when department size crosses above or below the threshold"
              }
            },
            "required": [
              "type",
              "entityType",
              "department",
              "threshold",
              "direction"
            ],
            "title": "Department size threshold"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "recent_layoffs"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "minPeopleAffected": {
                "type": [
                  "integer",
                  "null"
                ],
                "exclusiveMinimum": 0,
                "description": "Only alert if at least this many people were laid off. Omit for any layoff."
              },
              "minPercentAffected": {
                "type": [
                  "number",
                  "null"
                ],
                "exclusiveMinimum": 0,
                "maximum": 100,
                "description": "Only alert if at least this percentage of the workforce was laid off. Omit for any layoff."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Recent layoffs"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "headcount_crossed_threshold": "#/components/schemas/HeadcountCrossedThreshold",
            "headcount_growth_percent": "#/components/schemas/HeadcountGrowthPercent",
            "new_funding_round": "#/components/schemas/NewFundingRound",
            "funding_stage_changed": "#/components/schemas/FundingStageChanged",
            "job_posting_with_keyword": "#/components/schemas/JobPostingWithKeyword",
            "job_posting_in_function": "#/components/schemas/JobPostingInFunction",
            "news_with_keyword": "#/components/schemas/NewsWithKeyword",
            "company_news": "#/components/schemas/CompanyNews",
            "hq_location_changed": "#/components/schemas/HqLocationChanged",
            "company_status_changed": "#/components/schemas/CompanyStatusChanged",
            "technology_added": "#/components/schemas/TechnologyAdded",
            "company_posted": "#/components/schemas/CompanyPosted",
            "company_posted_with_keyword": "#/components/schemas/CompanyPostedWithKeyword",
            "follower_count_growth": "#/components/schemas/FollowerCountGrowth",
            "company_name_changed": "#/components/schemas/CompanyNameChanged",
            "company_description_changed": "#/components/schemas/CompanyDescriptionChanged",
            "company_went_inactive": "#/components/schemas/CompanyWentInactive",
            "employee_count_milestone": "#/components/schemas/EmployeeCountMilestone",
            "new_office_location": "#/components/schemas/NewOfficeLocation",
            "company_logo_changed": "#/components/schemas/CompanyLogoChanged",
            "acquired_company": "#/components/schemas/AcquiredCompany",
            "new_investor": "#/components/schemas/NewInvestor",
            "recently_hired_with_title": "#/components/schemas/RecentlyHiredWithTitle",
            "department_size_threshold": "#/components/schemas/DepartmentSizeThreshold",
            "recent_layoffs": "#/components/schemas/RecentLayoffs"
          }
        }
      },
      "minItems": 0,
      "maxItems": 25,
      "description": "Replace ALL existing rules with this set. Pass empty array to clear all rules. Omit to leave unchanged. Cannot be used with `addRules`/`removeRuleIds`."
    },
    "addRules": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "headcount_crossed_threshold"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "above",
                  "below"
                ],
                "description": "Whether to alert when headcount crosses the threshold going up or down"
              },
              "threshold": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "description": "The employee count threshold to watch for crossing. Any positive integer is accepted."
              }
            },
            "required": [
              "type",
              "entityType",
              "direction",
              "threshold"
            ],
            "title": "Headcount crossed threshold"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "headcount_growth_percent"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "minPercentChange": {
                "type": "number",
                "exclusiveMinimum": 0,
                "maximum": 1000,
                "description": "Minimum percent change to trigger (e.g. 20 means 20% growth)"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "grew",
                  "shrank",
                  "either"
                ],
                "description": "Whether to alert on growth, shrinkage, or either"
              },
              "minStartingHeadcount": {
                "type": [
                  "integer",
                  "null"
                ],
                "exclusiveMinimum": 0,
                "description": "Only alert if the company had at least this many employees before the change. Omit for any starting size."
              }
            },
            "required": [
              "type",
              "entityType",
              "minPercentChange",
              "direction"
            ],
            "title": "Headcount growth percent"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "new_funding_round"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "minAmountUsd": {
                "type": [
                  "number",
                  "null"
                ],
                "minimum": 0,
                "description": "Only alert for rounds above this amount. Omit for any amount."
              },
              "roundTypes": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "pre_seed",
                    "seed",
                    "angel",
                    "series_a",
                    "series_b",
                    "series_c",
                    "series_d",
                    "series_e",
                    "series_f",
                    "series_g",
                    "private_equity",
                    "debt_financing",
                    "grant",
                    "convertible_note",
                    "corporate_round",
                    "undisclosed"
                  ]
                },
                "minItems": 1,
                "description": "Round types to alert on. Defaults to equity-focused types when omitted. Set explicitly to include debt/grant types."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "New funding round"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "funding_stage_changed"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "toStages": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "pre_seed",
                    "seed",
                    "series_a",
                    "series_b",
                    "series_c",
                    "series_d",
                    "series_e",
                    "series_f",
                    "series_g",
                    "private_equity",
                    "public",
                    "acquired"
                  ]
                },
                "minItems": 1,
                "description": "Only alert if new stage is one of these. Omit for any stage change."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Funding stage changed"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "job_posting_with_keyword"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "keywords": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Alert when a job posting contains any of these keywords in the selected search fields."
              },
              "searchFields": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "title",
                    "description"
                  ]
                },
                "minItems": 1,
                "description": "Job posting fields to search for the keywords. Omit to search the title only."
              },
              "seniorityLevels": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "Internship",
                    "Entry level",
                    "Associate",
                    "Mid-Senior level",
                    "Director",
                    "Executive"
                  ]
                },
                "minItems": 1,
                "description": "Only alert for these seniority levels. Omit for any level."
              },
              "modalities": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "On-site",
                    "Remote",
                    "Hybrid"
                  ]
                },
                "minItems": 1,
                "description": "Only alert for these job modalities. Omit for any."
              },
              "locationTypes": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "remote",
                    "on_site",
                    "hybrid"
                  ]
                },
                "minItems": 1,
                "description": "Deprecated. Use modalities instead.",
                "deprecated": true
              },
              "minPostings": {
                "type": [
                  "integer",
                  "null"
                ],
                "exclusiveMinimum": 0,
                "description": "Only alert if at least this many NEW matching postings are detected in a single check cycle. Omit for 1 (any new match)."
              }
            },
            "required": [
              "type",
              "entityType",
              "keywords"
            ],
            "title": "Job posting with keyword"
          },
          {
            "type": "object",
            "properties": {
              "lookbackDays": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 90,
                "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
              },
              "isDummy": {
                "type": "boolean",
                "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
              },
              "type": {
                "type": "string",
                "const": "job_posting_in_function"
              },
              "entityType": {
                "type": "string",
                "const": "company"
              },
              "jobFunctions": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "Accounting",
                    "Administrative",
                    "Advertising",
                    "Analyst",
                    "Art / Creative",
                    "Business Development",
                    "Community & Social Services",
                    "Consulting",
                    "Customer Service",
                    "Design",
                    "Distribution",
                    "Education",
                    "Engineering",
                    "Entrepreneurship",
                    "Finance",
                    "General Business",
                    "Health Care Provider",
                    "Human Resources",
                    "Information Technology",
                    "Legal",
                    "Management",
                    "Manufacturing",
                    "Marketing",
                    "Military & Protective Services",
                    "Other",
                    "Product Management",
                    "Production",
                    "Program & Product Management",
                    "Project Management",
                    "Public Relations",
                    "Purchasing",
                  
… _truncated to 65536 chars for ai-docs._
```

## Response — success (JSON Schema)

```json
{
  "type": "object",
  "properties": {
    "output": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Tracker list ID."
        },
        "name": {
          "type": "string",
          "description": "Name of the list."
        },
        "refreshIntervalDays": {
          "type": "integer",
          "description": "Check interval in days."
        },
        "trackingRules": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "headcount_crossed_threshold"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "above",
                      "below"
                    ],
                    "description": "Whether to alert when headcount crosses the threshold going up or down"
                  },
                  "threshold": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "description": "The employee count threshold to watch for crossing. Any positive integer is accepted."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "direction",
                  "threshold",
                  "id"
                ],
                "title": "Headcount crossed threshold"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "headcount_growth_percent"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "minPercentChange": {
                    "type": "number",
                    "exclusiveMinimum": 0,
                    "maximum": 1000,
                    "description": "Minimum percent change to trigger (e.g. 20 means 20% growth)"
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "grew",
                      "shrank",
                      "either"
                    ],
                    "description": "Whether to alert on growth, shrinkage, or either"
                  },
                  "minStartingHeadcount": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "exclusiveMinimum": 0,
                    "description": "Only alert if the company had at least this many employees before the change. Omit for any starting size."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "minPercentChange",
                  "direction",
                  "id"
                ],
                "title": "Headcount growth percent"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "new_funding_round"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "minAmountUsd": {
                    "type": [
                      "number",
                      "null"
                    ],
                    "minimum": 0,
                    "description": "Only alert for rounds above this amount. Omit for any amount."
                  },
                  "roundTypes": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "pre_seed",
                        "seed",
                        "angel",
                        "series_a",
                        "series_b",
                        "series_c",
                        "series_d",
                        "series_e",
                        "series_f",
                        "series_g",
                        "private_equity",
                        "debt_financing",
                        "grant",
                        "convertible_note",
                        "corporate_round",
                        "undisclosed"
                      ]
                    },
                    "minItems": 1,
                    "description": "Round types to alert on. Defaults to equity-focused types when omitted. Set explicitly to include debt/grant types."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "New funding round"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "funding_stage_changed"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "toStages": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "pre_seed",
                        "seed",
                        "series_a",
                        "series_b",
                        "series_c",
                        "series_d",
                        "series_e",
                        "series_f",
                        "series_g",
                        "private_equity",
                        "public",
                        "acquired"
                      ]
                    },
                    "minItems": 1,
                    "description": "Only alert if new stage is one of these. Omit for any stage change."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Funding stage changed"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "job_posting_with_keyword"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "keywords": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Alert when a job posting contains any of these keywords in the selected search fields."
                  },
                  "searchFields": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "title",
                        "description"
                      ]
                    },
                    "minItems": 1,
                    "description": "Job posting fields to search for the keywords. Omit to search the title only."
                  },
                  "seniorityLevels": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "Internship",
                        "Entry level",
                        "Associate",
                        "Mid-Senior level",
                        "Director",
                        "Executive"
                      ]
                    },
                    "minItems": 1,
                    "description": "Only alert for these seniority levels. Omit for any level."
                  },
                  "modalities": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "On-site",
                        "Remote",
                        "Hybrid"
                      ]
                    },
                    "minItems": 1,
                    "description": "Only alert for these job modalities. Omit for any."
                  },
                  "locationTypes": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "remote",
                        "on_site",
                        "hybrid"
                      ]
                    },
                    "minItems": 1,
                    "description": "Deprecated. Use modalities instead.",
                    "deprecated": true
                  },
                  "minPostings": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "exclusiveMinimum": 0,
                    "description": "Only alert if at least this many NEW matching postings are detected in a single check cycle. Omit for 1 (any new match)."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "keywords",
                  "id"
                ],
                "title": "Job posting with keyword"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "job_posting_in_function"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "jobFunctions": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "Accounting",
                        "Administrative",
                        "Advertising",
                        "Analyst",
                        "Art / Creative",
                        "Business Development",
                        "Community & Social Services",
                        "Consulting",
                        "Customer Service",
                        "Design",
                        "Distribution",
                        "Education",
                        "Engineering",
                        "Entrepreneurship",
                        "Finance",
                        "General Business",
                        "Health Care Provider",
                        "Human Resources",
                        "Information Technology",
                        "Legal",
                        "Management",
                        "Manufacturing",
                        "Marketing",
                        "Military & Protective Services",
                        "Other",
                        "Product Management",
                        "Production",
                        "Program & Product Management",
                        "Project Management",
                        "Public Relations",
                        "Purchasing",
                        "Quality Assurance",
                        "Real Estate",
                        "Research",
                        "Sales",
                        "Science",
                        "Strategy / Planning",
                        "Supply Chain",
                        "Training",
                        "Writing / Editing"
                      ]
                    },
                    "description": "Alert when a job posting is in any of these departments/functions."
                  },
                  "minPostings": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "exclusiveMinimum": 0,
                    "description": "Only alert if at least this many NEW matching postings are detected in a single check cycle. Omit for 1 (any new match)."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "jobFunctions",
                  "id"
                ],
                "title": "Job posting in function"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "news_with_keyword"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "keywords": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Alert when a news article title or summary matches any keyword"
                  },
                  "sentiment": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "enum": [
                      "positive",
                      "negative",
                      "neutral",
                      null
                    ],
                    "description": "Only alert for news with this sentiment. Omit for any sentiment."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "keywords",
                  "id"
                ],
                "title": "News with keyword"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "company_news"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "sentiment": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "enum": [
                      "positive",
                      "negative",
                      "neutral",
                      null
                    ],
                    "description": "Only alert for news with this sentiment. Omit for any sentiment."
                  },
                  "minArticles": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "description": "Only alert when at least this many articles are detected in a single check. Useful for filtering noise from single tangential mentions. Omit for any count."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Company news"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "hq_location_changed"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "HQ location changed"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "company_status_changed"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "toStatuses": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "operating",
                        "acquired",
                        "closed",
                        "ipo",
                        "subsidiary"
                      ]
                    },
                    "minItems": 1,
                    "description": "Only alert if new status is one of these. Omit for any status change."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Company status changed"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "technology_added"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "technologies": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert for these technologies. Omit for any new technology."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Technology added"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "company_posted"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "minReactions": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 0,
                    "description": "Only alert for posts with at least this many reactions. Omit for any."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Company posted"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "company_posted_with_keyword"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "keywords": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Alert for posts matching these keywords."
                  },
                  "minReactions": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 0,
                    "description": "Only alert for posts with at least this many reactions. Omit for any."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Company posted with keyword"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "follower_count_growth"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "minAbsoluteGrowth": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 0,
                    "description": "Minimum absolute follower increase to trigger. Omit or set to 0 for any increase."
                  },
                  "minPercentGrowth": {
                    "type": [
                      "number",
                      "null"
                    ],
                    "exclusiveMinimum": 0,
                    "description": "Minimum percent follower increase to trigger. Omit for any increase."
                  },
                  "minStartingFollowerCount": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "exclusiveMinimum": 0,
                    "description": "Only alert if the company had at least this many followers before the growth. Omit for any starting count."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Follower count growth"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "company_name_changed"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Company name changed"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "company_description_changed"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "keywords": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert if new description contains one of these keywords. Omit for any change."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Company description changed"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "company_went_inactive"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "description": "Fires when a company becomes inactive.",
                "title": "Company went inactive"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "employee_count_milestone"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "milestone": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "description": "The employee count threshold to watch for crossing. Any positive integer is accepted. Equivalent to 'threshold' in headcount_crossed_threshold."
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "above",
                      "below"
                    ],
                    "description": "Whether to alert when crossing above or below the milestone"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "milestone",
                  "direction",
                  "id"
                ],
                "description": "Fires when the employee count crosses the specified value. Supports any positive integer, not just round milestones. Functionally equivalent to headcount_crossed_threshold.",
                "title": "Employee count milestone"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "new_office_location"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "countries": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "pattern": "^[A-Z]{3}$",
                      "minLength": 3,
                      "maxLength": 3
                    },
                    "minItems": 1,
                    "description": "ISO 3166-1 alpha-3 country codes (e.g. 'USA', 'GBR', 'DEU'). Only alert for offices in these countries. Omit for any new office."
                  },
                  "cities": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "City names (e.g. 'San Francisco', 'London', 'Berlin'). Only alert for offices in these cities. Omit for any new office."
                  },
                  "regions": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Region codes (e.g. 'X-EMEA', 'X-APAC', 'X-EUROPE'). Expands to constituent country codes. Omit for any."
                  },
                  "states": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "State or province names (e.g. 'California', 'Ontario'). Omit for any."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "New office location"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "company_logo_changed"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Company logo changed"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "acquired_company"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "minPriceUsd": {
                    "type": [
                      "number",
                      "null"
                    ],
                    "minimum": 0,
                    "description": "Only alert for acquisitions above this price. Omit for any acquisition."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Acquired company"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "new_investor"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "investorNames": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert when a new investor's name matches one of these (exact, case-insensitive). Omit for any new investor."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "New investor"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "recently_hired_with_title"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "titleKeywords": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Title keywords to search for. Fires when the company hires someone whose title matches any keyword."
                  },
                  "minNewHires": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "exclusiveMinimum": 0,
                    "description": "Minimum number of NEW hires detected in a single check cycle to trigger the alert. Only counts employees who appeared since the last check. Omit for 1."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "titleKeywords",
                  "id"
                ],
                "title": "Recently hired with title"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "department_size_threshold"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "department": {
                    "type": "string",
                    "enum": [
                      "Accounting",
                      "Administrative",
                      "Advertising",
                      "Analyst",
                      "Art / Creative",
                      "Business Development",
                      "Community & Social Services",
                      "Consulting",
                      "Customer Service",
                      "Design",
                      "Distribution",
                      "Education",
                      "Engineering",
                      "Entrepreneurship",
                      "Finance",
                      "General Business",
                      "Health Care Provider",
                      "Human Resources",
                      "Information Technology",
                      "Legal",
                      "Management",
                      "Manufacturing",
                      "Marketing",
                      "Military & Protective Services",
                      "Other",
                      "Product Management",
                      "Production",
                      "Program & Product Management",
                      "Project Management",
                      "Public Relations",
                      "Purchasing",
                      "Quality Assurance",
                      "Real Estate",
                      "Research",
                      "Sales",
                      "Science",
                      "Strategy / Planning",
                      "Supply Chain",
                      "Training",
                      "Writing / Editing"
                    ],
                    "description": "Department to track. Matched against the company's organizational structure."
                  },
                  "threshold": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "description": "The employee count threshold to watch for crossing"
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "above",
                      "below"
                    ],
                    "description": "Whether to alert when department size crosses above or below the threshold"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "department",
                  "threshold",
                  "direction",
                  "id"
                ],
                "title": "Department size threshold"
              },
              {
                "type": "object",
                "properties": {
                  "lookbackDays": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 90,
                    "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
                  },
                  "isDummy": {
                    "type": "boolean",
                    "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
                  },
                  "type": {
                    "type": "string",
                    "const": "recent_layoffs"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "company"
                  },
                  "minPeopleAffected": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "exclusiveMinimum": 0,
                    "description": "Only alert if at least this many people were laid off. Omit for any layoff."
                  },
                  "minPercentAffected": {
                    "type": [
                      "number",
                      "null"
                    ],
                    "exclusiveMinimum": 0,
                    "maximum": 100,
                    "description": "Only alert if at least this percentage of the workforce was laid off. Omit for any layoff."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Recent layoffs"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "headcount_crossed_threshold": "#/components/schemas/HeadcountCrossedThresholdResponse",
                "headcount_growth_percent": "#/components/schemas/HeadcountGrowthPercentResponse",
                "new_funding_round": "#/components/schemas/NewFundingRoundResponse",
                "funding_stage_changed": "#/components/schemas/FundingStageChangedResponse",
                "job_posting_with_keyword": "#/components/schemas/JobPostingWithKeywordResponse",
                "job_posting_in_function": "#/components/schemas/JobPostingInFunctionResponse",
                "news_with_keyword": "#/components/schemas/NewsWithKeywordResponse",
                "company_news": "#/components/schemas/CompanyNewsResponse",
                "hq_location_changed": "#/components/schemas/HqLocationChangedResponse",
                "company_status_changed": "#/components/schemas/CompanyStatusChangedResponse",
                "technology_added": "#/components/schemas/TechnologyAddedResponse",
                "company_posted": "#/components/schemas/CompanyPostedResponse",
                "company_posted_with_keyword": "#/components/schemas/CompanyPostedWithKeywordResponse",
                "follower_count_growth": "#/components/schemas/FollowerCountGrowthResponse",
                "company_name_changed": "#/components/schemas/CompanyNameChangedResponse",
                "company_description_changed": "#/components/schemas/CompanyDescriptionChangedResponse",
                "company_went_inactive": "#/components/schemas/CompanyWentInactiveResponse",
                "employee_count_milestone": "#/components/schemas/EmployeeCountMilestoneResponse",
                "new_office_location": "#/components/schemas/NewOfficeLocationResponse",
                "company_logo_changed": "#/components/schemas/CompanyLogoChangedResponse",
                "acquired_company": "#/components/schemas/AcquiredCompanyResponse",
                "new_investor": "#/components/schemas/NewInvestorResponse",
                "recently_hired_with_title": "#/components/schemas/RecentlyHiredWithTitleResponse",
                "department_size_threshold": "#/components/schemas/DepartmentSizeThresholdResponse",
                "recent_layoffs": "#/components/schemas/RecentLayoffsResponse"
              }
            }
          },
          "description": "Active tracking rules on this list, with IDs for granular management."
        },
        "isActive": {
          "type": "boolean",
          "description": "Whether the list is actively being checked."
        },
        "isArchived": {
          "type": "boolean",
          "description": "Whether the list is archived."
        },
        "companyCount": {
          "type": "integer",
          "minimum": 0,
          "description": "Number of companies in this list."
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "When the list was created."
        },
        "nextRefreshAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "When the entire list will next be refreshed. All entities in the list are checked together at this time. Null if the list has no active entities or is inactive."
        },
        "isDynamic": {
          "type": "boolean",
          "description": "Whether this list's membership is query-driven and auto-refreshed (dynamic) rather than manually managed (static)."
        }
      },
      "required": [
        "id",
        "name",
        "refreshIntervalDays",
        "isActive",
        "isArchived",
        "companyCount",
        "createdAt",
        "isDynamic"
      ]
    },
    "chargeInfo": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charged-now"
              ]
            },
            "creditsCharged": {
              "type": "number"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsCharged"
          ],
          "description": "Credits were charged immediately for this operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charging-later"
              ]
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
  
… _truncated to 65536 chars for ai-docs._
```

---

Canonical JSON: [`https://api.fiber.ai/openapi.json`](https://api.fiber.ai/openapi.json)
Operation index: [`https://api.fiber.ai/ai-docs/index.md`](https://api.fiber.ai/ai-docs/index.md)
