{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fiber-ai/json-schema/fiber-ai-person-contact-change-response-schema.json",
  "title": "Contact change",
  "x-generated": "2026-11-07",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/fiber-ai-api-openapi.json#/components/schemas/PersonContactChangeResponse",
  "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."
    },
    "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."
    },
    "type": {
      "type": "string",
      "const": "person_contact_change"
    },
    "id": {
      "type": "string",
      "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
    }
  },
  "required": [
    "isDummy",
    "entityType",
    "type",
    "id"
  ]
}