{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/datahyena-com/json-schema/datahyena-com-public-hiring-signal-response-item-schema.json",
  "title": "PublicHiringSignalResponseItem",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/datahyena-com-openapi.json#/components/schemas/PublicHiringSignalResponseItem",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "eventType": {
      "type": "string"
    },
    "function": {
      "type": "string",
      "description": "The function the signal is about, or all for company-wide signals."
    },
    "seniority": {
      "type": [
        "object",
        "null"
      ]
    },
    "roleFamily": {
      "type": [
        "object",
        "null"
      ],
      "description": "The role family the signal is about, for example sales_development or revops."
    },
    "country": {
      "description": "The new country, on location_expansion signals.",
      "type": [
        "object",
        "null"
      ],
      "allOf": [
        {
          "$ref": "#/$defs/CountryDto"
        }
      ]
    },
    "technologies": {
      "description": "Technologies named across the roles behind the signal.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "announcedAt": {
      "type": "string",
      "description": "When the signal started."
    },
    "endedAt": {
      "type": [
        "object",
        "null"
      ],
      "description": "When every role behind it closed."
    },
    "active": {
      "type": "boolean",
      "description": "Whether any role behind the signal is still open."
    },
    "roleCount": {
      "type": "number",
      "description": "Number of open roles behind the signal."
    },
    "roles": {
      "description": "Up to 10 roles behind the signal.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/HiringRoleDto"
      }
    },
    "board": {
      "type": "string",
      "description": "The company's hiring platform."
    },
    "discoveredAt": {
      "type": "string"
    },
    "company": {
      "$ref": "#/$defs/PublicCompanyDto"
    }
  },
  "required": [
    "id",
    "eventType",
    "function",
    "seniority",
    "roleFamily",
    "country",
    "technologies",
    "announcedAt",
    "endedAt",
    "active",
    "roleCount",
    "roles",
    "board",
    "discoveredAt",
    "company"
  ],
  "$defs": {
    "CountryDto": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "description": "ISO 3166-1 alpha-2 country code."
        },
        "name": {
          "type": "string",
          "description": "Human-readable country name."
        }
      },
      "required": [
        "code",
        "name"
      ]
    },
    "HiringRoleDto": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string"
        },
        "function": {
          "type": "string"
        },
        "seniority": {
          "type": "string"
        },
        "roleFamily": {
          "type": [
            "object",
            "null"
          ]
        },
        "location": {
          "type": [
            "object",
            "null"
          ]
        },
        "postedAt": {
          "type": [
            "object",
            "null"
          ]
        },
        "url": {
          "type": [
            "object",
            "null"
          ]
        },
        "salary": {
          "description": "Posted pay range.",
          "type": [
            "object",
            "null"
          ],
          "allOf": [
            {
              "$ref": "#/$defs/HiringSalaryDto"
            }
          ]
        },
        "technologies": {
          "description": "Technologies the role names.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "title",
        "function",
        "seniority",
        "roleFamily",
        "location",
        "postedAt",
        "url",
        "salary",
        "technologies"
      ]
    },
    "HiringSalaryDto": {
      "type": "object",
      "properties": {
        "min": {
          "type": [
            "object",
            "null"
          ]
        },
        "max": {
          "type": [
            "object",
            "null"
          ]
        },
        "currency": {
          "type": [
            "object",
            "null"
          ]
        },
        "interval": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "year",
            "month",
            "week",
            "day",
            "hour"
          ]
        }
      },
      "required": [
        "min",
        "max",
        "currency",
        "interval"
      ]
    },
    "PublicCompanyDto": {
      "type": "object",
      "properties": {
        "id": {
          "type": [
            "object",
            "null"
          ]
        },
        "name": {
          "type": "string"
        },
        "domain": {
          "type": [
            "object",
            "null"
          ]
        },
        "website": {
          "type": [
            "object",
            "null"
          ],
          "description": "The address the company website loads at, which can differ from domain (for example a www host). Null when no working site is known."
        },
        "description": {
          "type": [
            "object",
            "null"
          ]
        },
        "linkedinHandle": {
          "type": [
            "object",
            "null"
          ]
        },
        "linkedinUrl": {
          "type": [
            "object",
            "null"
          ]
        },
        "linkedinGeoId": {
          "type": [
            "object",
            "null"
          ]
        },
        "linkedinIndustryId": {
          "type": [
            "object",
            "null"
          ]
        },
        "naicsCode": {
          "type": [
            "object",
            "null"
          ],
          "description": "NAICS 2022 code derived from the industry classification. Null when no honest mapping exists."
        },
        "naicsLevel": {
          "type": [
            "number",
            "null"
          ],
          "enum": [
            2,
            3,
            4
          ],
          "description": "Depth of naicsCode: 2 = sector, 3 = subsector, 4 = industry group."
        },
        "hqCity": {
          "type": [
            "object",
            "null"
          ]
        },
        "hqCountry": {
          "type": [
            "object",
            "null"
          ],
          "allOf": [
            {
              "$ref": "#/$defs/CountryDto"
            }
          ]
        },
        "industryGroup": {
          "type": [
            "object",
            "null"
          ]
        },
        "industrySubTags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "verticals": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "employeeCountBucket": {
          "type": [
            "object",
            "null"
          ]
        },
        "foundedYear": {
          "type": [
            "object",
            "null"
          ]
        },
        "businessModel": {
          "type": [
            "object",
            "null"
          ]
        }
      },
      "required": [
        "id",
        "name",
        "domain",
        "website",
        "description",
        "linkedinHandle",
        "linkedinUrl",
        "linkedinGeoId",
        "linkedinIndustryId",
        "naicsCode",
        "naicsLevel",
        "hqCity",
        "hqCountry",
        "industryGroup",
        "industrySubTags",
        "verticals",
        "employeeCountBucket",
        "foundedYear",
        "businessModel"
      ]
    }
  }
}