> **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).

# updateTrackerPersonList

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

**Tags:** `Tracker`

Update person tracker list

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

## Description

Update a person 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 people 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": "person_changed_company"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "toCompanies": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if they moved TO one of these companies (domains or slugs). Omit for any."
              },
              "fromCompanies": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if they moved FROM one of these companies. Omit for any."
              },
              "toTitleKeywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if their title at the new company contains one of these keywords."
              },
              "toSeniorityLevels": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "Internship",
                    "Entry level",
                    "Associate",
                    "Mid-Senior level",
                    "Director",
                    "Executive"
                  ]
                },
                "minItems": 1,
                "description": "Only alert if their seniority at the new company is one of these levels."
              },
              "toEmploymentTypes": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "Full-time",
                    "Part-time",
                    "Contract",
                    "Internship",
                    "Temporary",
                    "Volunteer"
                  ]
                },
                "minItems": 1,
                "description": "Only alert for these employment types at the new company. Omit for any."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person changed 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": "person_title_changed"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "titleKeywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if new title contains one of these keywords. Omit for any title change."
              },
              "toSeniority": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "Internship",
                    "Entry level",
                    "Associate",
                    "Mid-Senior level",
                    "Director",
                    "Executive"
                  ]
                },
                "minItems": 1,
                "description": "Only alert if the new position's seniority level matches one of these. Omit for any seniority."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person title 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": "person_stealth_changed"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "entered",
                  "exited",
                  "either"
                ],
                "description": "Whether to alert on entering stealth, exiting, or either"
              }
            },
            "required": [
              "type",
              "entityType",
              "direction"
            ],
            "title": "Person stealth 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": "person_open_to_work"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "started",
                  "stopped",
                  "either"
                ],
                "description": "Whether to alert when they start or stop signaling open-to-work"
              }
            },
            "required": [
              "type",
              "entityType",
              "direction"
            ],
            "title": "Person open to work"
          },
          {
            "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": "person_is_hiring"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "started",
                  "stopped",
                  "either"
                ],
                "description": "Whether to alert when they start or stop signaling is-hiring"
              }
            },
            "required": [
              "type",
              "entityType",
              "direction"
            ],
            "title": "Person is hiring"
          },
          {
            "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": "person_headline_changed"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "keywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if new headline contains one of these keywords. Omit for any change."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person headline 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": "person_location_changed"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "toCountries": {
                "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 if moved to one of these countries. Omit for any relocation."
              },
              "fromCountries": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$",
                  "minLength": 3,
                  "maxLength": 3
                },
                "minItems": 1,
                "description": "Only alert if they moved FROM one of these countries. Omit for any."
              },
              "regions": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Region codes (e.g. 'X-EMEA', 'X-APAC'). Only alert if destination country is in one of these regions. Omit for any."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person 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": "person_tag_gained"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "student",
                    "attended-top-us-university",
                    "attended-top-global-university",
                    "second-time-founder",
                    "deep-technical-background",
                    "major-tech-company-experience",
                    "fortune-500-executive",
                    "recently-changed-companies",
                    "recently-promoted",
                    "decision-maker",
                    "c-suite",
                    "experienced-executive",
                    "phd",
                    "influencer",
                    "board-member"
                  ]
                },
                "minItems": 1,
                "description": "Alert when the person gains any of these system-assigned tags."
              }
            },
            "required": [
              "type",
              "entityType",
              "tags"
            ],
            "title": "Person tag gained"
          },
          {
            "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": "person_posted"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "minReactions": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0,
                "description": "Only alert for posts with at least this many reactions. Omit for any."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person 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": "person_posted_with_keyword"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "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": "Person 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": "person_reacted_to_post"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "keywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert for reactions on posts whose content or author name matches these keywords. Omit for any reaction."
              },
              "reactionTypes": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "LIKE",
                    "LOVE",
                    "INSIGHTFUL",
                    "CELEBRATE",
                    "SUPPORT",
                    "FUNNY"
                  ]
                },
                "minItems": 1,
                "description": "Only alert for these reaction types. Omit for any type."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person reacted to post"
          },
          {
            "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": "person_commented_on_post"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "keywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert for comments where the comment text, post content (when available from provider), or post author name matches these keywords. Omit for any comment."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person commented on post"
          },
          {
            "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": "person_skills_added"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "skills": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert for these specific skills being added. Omit for any new skill."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person skills 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": "person_got_promoted"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "seniorityKeywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if new title contains these seniority keywords (e.g. 'VP', 'Director'). Omit for any promotion."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person got promoted"
          },
          {
            "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": "person_started_company"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person started 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": "person_employment_type_changed"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "toTypes": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "Full-time",
                    "Part-time",
                    "Contract",
                    "Internship",
                    "Temporary",
                    "Volunteer"
                  ]
                },
                "minItems": 1,
                "description": "Only alert if new employment type is one of these. Omit for any change."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person employment type 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": "person_connections_milestone"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "threshold": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "description": "Connection count to watch for crossing"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "above",
                  "below"
                ],
                "description": "Whether to alert when crossing above or below the threshold"
              }
            },
            "required": [
              "type",
              "entityType",
              "threshold",
              "direction"
            ],
            "title": "Person connections 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": "person_follower_milestone"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "threshold": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "description": "Follower count to watch for crossing"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "above",
                  "below"
                ],
                "description": "Whether to alert when crossing above or below the threshold"
              }
            },
            "required": [
              "type",
              "entityType",
              "threshold",
              "direction"
            ],
            "title": "Person follower 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": "person_summary_changed"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "keywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if new summary contains one of these keywords. Omit for any change."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person summary 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": "person_new_certification"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "certificationKeywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert for certifications matching these keywords. Omit for any new cert."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person new certification"
          },
          {
            "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": "person_became_verified"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person became verified"
          },
          {
            "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": "person_became_premium"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "started",
                  "stopped",
                  "either"
                ],
                "description": "Whether to alert when they start or stop having premium status"
              }
            },
            "required": [
              "type",
              "entityType",
              "direction"
            ],
            "title": "Person became premium"
          },
          {
            "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": "person_became_influencer"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "started",
                  "stopped",
                  "either"
                ],
                "description": "Whether to alert when they join or leave the influencer program"
              }
            },
            "required": [
              "type",
              "entityType",
              "direction"
            ],
            "title": "Person became influencer"
          },
          {
            "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": "person_became_top_voice"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "started",
                  "stopped",
                  "either"
                ],
                "description": "Whether to alert when they earn or lose the top voice badge"
              }
            },
            "required": [
              "type",
              "entityType",
              "direction"
            ],
            "title": "Person became top voice"
          },
          {
            "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": "person_got_demoted"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "seniorityKeywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if the previous title contained these seniority keywords (e.g. 'VP', 'Director'). Omit for any demotion."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person got demoted"
          },
          {
            "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": "person_stuck_in_role"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "thresholdMonths": {
                "type": "integer",
                "minimum": 1,
                "description": "Alert when the person has been in their current role for at least this many months without a title change."
              }
            },
            "required": [
              "type",
              "entityType",
              "thresholdMonths"
            ],
            "title": "Person stuck in role"
          },
          {
            "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": "person_tenure_milestone"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "thresholdMonths": {
                "type": "integer",
                "minimum": 1,
                "description": "Alert when the person has been at their current company for at least this many months, regardless of role changes or promotions."
              }
            },
            "required": [
              "type",
              "entityType",
              "thresholdMonths"
            ],
            "title": "Person tenure milestone"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "person_changed_company": "#/components/schemas/PersonChangedCompany",
            "person_title_changed": "#/components/schemas/PersonTitleChanged",
            "person_stealth_changed": "#/components/schemas/PersonStealthChanged",
            "person_open_to_work": "#/components/schemas/PersonOpenToWork",
            "person_is_hiring": "#/components/schemas/PersonIsHiring",
            "person_headline_changed": "#/components/schemas/PersonHeadlineChanged",
            "person_location_changed": "#/components/schemas/PersonLocationChanged",
            "person_tag_gained": "#/components/schemas/PersonTagGained",
            "person_posted": "#/components/schemas/PersonPosted",
            "person_posted_with_keyword": "#/components/schemas/PersonPostedWithKeyword",
            "person_reacted_to_post": "#/components/schemas/PersonReactedToPost",
            "person_commented_on_post": "#/components/schemas/PersonCommentedOnPost",
            "person_skills_added": "#/components/schemas/PersonSkillsAdded",
            "person_got_promoted": "#/components/schemas/PersonGotPromoted",
            "person_started_company": "#/components/schemas/PersonStartedCompany",
            "person_employment_type_changed": "#/components/schemas/PersonEmploymentTypeChanged",
            "person_connections_milestone": "#/components/schemas/PersonConnectionsMilestone",
            "person_follower_milestone": "#/components/schemas/PersonFollowerMilestone",
            "person_summary_changed": "#/components/schemas/PersonSummaryChanged",
            "person_new_certification": "#/components/schemas/PersonNewCertification",
            "person_became_verified": "#/components/schemas/PersonBecameVerified",
            "person_became_premium": "#/components/schemas/PersonBecamePremium",
            "person_became_influencer": "#/components/schemas/PersonBecameInfluencer",
            "person_became_top_voice": "#/components/schemas/PersonBecameTopVoice",
            "person_got_demoted": "#/components/schemas/PersonGotDemoted",
            "person_stuck_in_role": "#/components/schemas/PersonStuckInRole",
            "person_tenure_milestone": "#/components/schemas/PersonTenureMilestone"
          }
        }
      },
      "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": "person_changed_company"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "toCompanies": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if they moved TO one of these companies (domains or slugs). Omit for any."
              },
              "fromCompanies": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if they moved FROM one of these companies. Omit for any."
              },
              "toTitleKeywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if their title at the new company contains one of these keywords."
              },
              "toSeniorityLevels": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "Internship",
                    "Entry level",
                    "Associate",
                    "Mid-Senior level",
                    "Director",
                    "Executive"
                  ]
                },
                "minItems": 1,
                "description": "Only alert if their seniority at the new company is one of these levels."
              },
              "toEmploymentTypes": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "Full-time",
                    "Part-time",
                    "Contract",
                    "Internship",
                    "Temporary",
                    "Volunteer"
                  ]
                },
                "minItems": 1,
                "description": "Only alert for these employment types at the new company. Omit for any."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person changed 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": "person_title_changed"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "titleKeywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if new title contains one of these keywords. Omit for any title change."
              },
              "toSeniority": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "enum": [
                    "Internship",
                    "Entry level",
                    "Associate",
                    "Mid-Senior level",
                    "Director",
                    "Executive"
                  ]
                },
                "minItems": 1,
                "description": "Only alert if the new position's seniority level matches one of these. Omit for any seniority."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person title 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": "person_stealth_changed"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "entered",
                  "exited",
                  "either"
                ],
                "description": "Whether to alert on entering stealth, exiting, or either"
              }
            },
            "required": [
              "type",
              "entityType",
              "direction"
            ],
            "title": "Person stealth 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": "person_open_to_work"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "started",
                  "stopped",
                  "either"
                ],
                "description": "Whether to alert when they start or stop signaling open-to-work"
              }
            },
            "required": [
              "type",
              "entityType",
              "direction"
            ],
            "title": "Person open to work"
          },
          {
            "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": "person_is_hiring"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "started",
                  "stopped",
                  "either"
                ],
                "description": "Whether to alert when they start or stop signaling is-hiring"
              }
            },
            "required": [
              "type",
              "entityType",
              "direction"
            ],
            "title": "Person is hiring"
          },
          {
            "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": "person_headline_changed"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "keywords": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Only alert if new headline contains one of these keywords. Omit for any change."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person headline 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": "person_location_changed"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "toCountries": {
                "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 if moved to one of these countries. Omit for any relocation."
              },
              "fromCountries": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$",
                  "minLength": 3,
                  "maxLength": 3
                },
                "minItems": 1,
                "description": "Only alert if they moved FROM one of these countries. Omit for any."
              },
              "regions": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "description": "Region codes (e.g. 'X-EMEA', 'X-APAC'). Only alert if destination country is in one of these regions. Omit for any."
              }
            },
            "required": [
              "type",
              "entityType"
            ],
            "title": "Person 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": "person_tag_gained"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "student",
                    "attended-top-us-university",
                    "attended-top-global-university",
                    "second-time-founder",
                    "deep-technical-background",
                    "major-tech-company-experience",
                    "fortune-500-executive",
                    "recently-changed-companies",
                    "recently-promoted",
                    "decision-maker",
                    "c-suite",
                    "experienced-executive",
                    "phd",
                    "influencer",
                    "board-member"
                  ]
                },
                "minItems": 1,
                "description": "Alert when the person gains any of these system-assigned tags."
              }
            },
            "required": [
              "type",
              "entityType",
              "tags"
            ],
            "title": "Person tag gained"
          },
          {
            "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": "person_posted"
              },
              "entityType": {
                "type": "string",
                "const": "person"
              },
              "
… _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": "person_changed_company"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "toCompanies": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert if they moved TO one of these companies (domains or slugs). Omit for any."
                  },
                  "fromCompanies": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert if they moved FROM one of these companies. Omit for any."
                  },
                  "toTitleKeywords": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert if their title at the new company contains one of these keywords."
                  },
                  "toSeniorityLevels": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "Internship",
                        "Entry level",
                        "Associate",
                        "Mid-Senior level",
                        "Director",
                        "Executive"
                      ]
                    },
                    "minItems": 1,
                    "description": "Only alert if their seniority at the new company is one of these levels."
                  },
                  "toEmploymentTypes": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "Full-time",
                        "Part-time",
                        "Contract",
                        "Internship",
                        "Temporary",
                        "Volunteer"
                      ]
                    },
                    "minItems": 1,
                    "description": "Only alert for these employment types at the new company. Omit for any."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Person changed 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": "person_title_changed"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "titleKeywords": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert if new title contains one of these keywords. Omit for any title change."
                  },
                  "toSeniority": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "Internship",
                        "Entry level",
                        "Associate",
                        "Mid-Senior level",
                        "Director",
                        "Executive"
                      ]
                    },
                    "minItems": 1,
                    "description": "Only alert if the new position's seniority level matches one of these. Omit for any seniority."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Person title 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": "person_stealth_changed"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "entered",
                      "exited",
                      "either"
                    ],
                    "description": "Whether to alert on entering stealth, exiting, or either"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "direction",
                  "id"
                ],
                "title": "Person stealth 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": "person_open_to_work"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "started",
                      "stopped",
                      "either"
                    ],
                    "description": "Whether to alert when they start or stop signaling open-to-work"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "direction",
                  "id"
                ],
                "title": "Person open to work"
              },
              {
                "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": "person_is_hiring"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "started",
                      "stopped",
                      "either"
                    ],
                    "description": "Whether to alert when they start or stop signaling is-hiring"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "direction",
                  "id"
                ],
                "title": "Person is hiring"
              },
              {
                "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": "person_headline_changed"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "keywords": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert if new headline 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": "Person headline 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": "person_location_changed"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "toCountries": {
                    "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 if moved to one of these countries. Omit for any relocation."
                  },
                  "fromCountries": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "pattern": "^[A-Z]{3}$",
                      "minLength": 3,
                      "maxLength": 3
                    },
                    "minItems": 1,
                    "description": "Only alert if they moved FROM one of these countries. Omit for any."
                  },
                  "regions": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Region codes (e.g. 'X-EMEA', 'X-APAC'). Only alert if destination country is in one of these regions. Omit for any."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Person 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": "person_tag_gained"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "tags": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "student",
                        "attended-top-us-university",
                        "attended-top-global-university",
                        "second-time-founder",
                        "deep-technical-background",
                        "major-tech-company-experience",
                        "fortune-500-executive",
                        "recently-changed-companies",
                        "recently-promoted",
                        "decision-maker",
                        "c-suite",
                        "experienced-executive",
                        "phd",
                        "influencer",
                        "board-member"
                      ]
                    },
                    "minItems": 1,
                    "description": "Alert when the person gains any of these system-assigned tags."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "tags",
                  "id"
                ],
                "title": "Person tag gained"
              },
              {
                "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": "person_posted"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "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": "Person 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": "person_posted_with_keyword"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "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": "Person 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": "person_reacted_to_post"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "keywords": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert for reactions on posts whose content or author name matches these keywords. Omit for any reaction."
                  },
                  "reactionTypes": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "LIKE",
                        "LOVE",
                        "INSIGHTFUL",
                        "CELEBRATE",
                        "SUPPORT",
                        "FUNNY"
                      ]
                    },
                    "minItems": 1,
                    "description": "Only alert for these reaction types. Omit for any type."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Person reacted to post"
              },
              {
                "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": "person_commented_on_post"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "keywords": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert for comments where the comment text, post content (when available from provider), or post author name matches these keywords. Omit for any comment."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Person commented on post"
              },
              {
                "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": "person_skills_added"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "skills": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert for these specific skills being added. Omit for any new skill."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Person skills 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": "person_got_promoted"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "seniorityKeywords": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert if new title contains these seniority keywords (e.g. 'VP', 'Director'). Omit for any promotion."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Person got promoted"
              },
              {
                "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": "person_started_company"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Person started 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": "person_employment_type_changed"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "toTypes": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "Full-time",
                        "Part-time",
                        "Contract",
                        "Internship",
                        "Temporary",
                        "Volunteer"
                      ]
                    },
                    "minItems": 1,
                    "description": "Only alert if new employment type is one of these. 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": "Person employment type 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": "person_connections_milestone"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "threshold": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "description": "Connection count to watch for crossing"
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "above",
                      "below"
                    ],
                    "description": "Whether to alert when crossing above or below the threshold"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "threshold",
                  "direction",
                  "id"
                ],
                "title": "Person connections 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": "person_follower_milestone"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "threshold": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "description": "Follower count to watch for crossing"
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "above",
                      "below"
                    ],
                    "description": "Whether to alert when crossing above or below the threshold"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "threshold",
                  "direction",
                  "id"
                ],
                "title": "Person follower 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": "person_summary_changed"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "keywords": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert if new summary 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": "Person summary 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": "person_new_certification"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "certificationKeywords": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert for certifications matching these keywords. Omit for any new cert."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Person new certification"
              },
              {
                "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": "person_became_verified"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Person became verified"
              },
              {
                "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": "person_became_premium"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "started",
                      "stopped",
                      "either"
                    ],
                    "description": "Whether to alert when they start or stop having premium status"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "direction",
                  "id"
                ],
                "title": "Person became premium"
              },
              {
                "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": "person_became_influencer"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "started",
                      "stopped",
                      "either"
                    ],
                    "description": "Whether to alert when they join or leave the influencer program"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "direction",
                  "id"
                ],
                "title": "Person became influencer"
              },
              {
                "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": "person_became_top_voice"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "direction": {
                    "type": "string",
                    "enum": [
                      "started",
                      "stopped",
                      "either"
                    ],
                    "description": "Whether to alert when they earn or lose the top voice badge"
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "direction",
                  "id"
                ],
                "title": "Person became top voice"
              },
              {
                "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": "person_got_demoted"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "seniorityKeywords": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "minItems": 1,
                    "description": "Only alert if the previous title contained these seniority keywords (e.g. 'VP', 'Director'). Omit for any demotion."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "id"
                ],
                "title": "Person got demoted"
              },
              {
                "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": "person_stuck_in_role"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "thresholdMonths": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Alert when the person has been in their current role for at least this many months without a title change."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "thresholdMonths",
                  "id"
                ],
                "title": "Person stuck in role"
              },
              {
                "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": "person_tenure_milestone"
                  },
                  "entityType": {
                    "type": "string",
                    "const": "person"
                  },
                  "thresholdMonths": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Alert when the person has been at their current company for at least this many months, regardless of role changes or promotions."
                  },
                  "id": {
                    "type": "string",
                    "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
                  }
                },
                "required": [
                  "isDummy",
                  "type",
                  "entityType",
                  "thresholdMonths",
                  "id"
                ],
                "title": "Person tenure milestone"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "person_changed_company": "#/components/schemas/PersonChangedCompanyResponse",
                "person_title_changed": "#/components/schemas/PersonTitleChangedResponse",
                "person_stealth_changed": "#/components/schemas/PersonStealthChangedResponse",
                "person_open_to_work": "#/components/schemas/PersonOpenToWorkResponse",
                "person_is_hiring": "#/components/schemas/PersonIsHiringResponse",
                "person_headline_changed": "#/components/schemas/PersonHeadlineChangedResponse",
                "person_location_changed": "#/components/schemas/PersonLocationChangedResponse",
                "person_tag_gained": "#/components/schemas/PersonTagGainedResponse",
                "person_posted": "#/components/schemas/PersonPostedResponse",
                "person_posted_with_keyword": "#/components/schemas/PersonPostedWithKeywordResponse",
                "person_reacted_to_post": "#/components/schemas/PersonReactedToPostResponse",
                "person_commented_on_post": "#/components/schemas/PersonCommentedOnPostResponse",
                "person_skills_added": "#/components/schemas/PersonSkillsAddedResponse",
                "person_got_promoted": "#/components/schemas/PersonGotPromotedResponse",
                "person_started_company": "#/components/schemas/PersonStartedCompanyResponse",
                "person_employment_type_changed": "#/components/schemas/PersonEmploymentTypeChangedResponse",
                "person_connections_milestone": "#/components/schemas/PersonConnectionsMilestoneResponse",
                "person_follower_milestone": "#/components/schemas/PersonFollowerMilestoneResponse",
                "person_summary_changed": "#/components/schemas/PersonSummaryChangedResponse",
                "person_new_certification": "#/components/schemas/PersonNewCertificationResponse",
                "person_became_verified": "#/components/schemas/PersonBecameVerifiedResponse",
                "person_became_premium": "#/components/schemas/PersonBecamePremiumResponse",
                "person_became_influencer": "#/components/schemas/PersonBecameInfluencerResponse",
                "person_became_top_voice": "#/components/schemas/PersonBecameTopVoiceResponse",
                "person_got_demoted": "#/components/schemas/PersonGotDemotedResponse",
                "person_stuck_in_role": "#/components/schemas/PersonStuckInRoleResponse",
                "person_tenure_milestone": "#/components/schemas/PersonTenureMilestoneResponse"
              }
            }
          },
          "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."
        },
        "personCount": {
          "type": "integer",
          "minimum": 0,
          "description": "Number of people 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",
        "personCount",
        "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": {
                "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",
            "message"
          ],
          "description": "Credits will be charged after the operation completes"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charged-for-async-process"
              ]
            },
            "creditsCharged": {
              "type": "number"
            },
            "message": {
              "type": "string"
            },
            "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",
            "message"
          ],
          "description": "Credits that were char
… _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)
