{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/datahyena-com/json-schema/datahyena-com-hiring-profile-dto-schema.json",
  "title": "HiringProfileDto",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/datahyena-com-openapi.json#/components/schemas/HiringProfileDto",
  "type": "object",
  "properties": {
    "company": {
      "$ref": "#/$defs/CompanyDto"
    },
    "stance": {
      "type": "string",
      "enum": [
        "frozen",
        "none_open",
        "expanding",
        "building_founding_team",
        "building_leadership",
        "building_gtm",
        "scaling_engineering",
        "hiring_steadily",
        "no_public_board"
      ],
      "description": "The company hiring stance right now. no_public_board means we found no public job board, which is not the same as not hiring."
    },
    "traits": {
      "type": "array",
      "description": "Every stance that applies, most significant first.",
      "items": {
        "type": "string",
        "enum": [
          "frozen",
          "none_open",
          "expanding",
          "building_founding_team",
          "building_leadership",
          "building_gtm",
          "scaling_engineering",
          "hiring_steadily",
          "no_public_board"
        ]
      }
    },
    "board": {
      "type": [
        "object",
        "null"
      ],
      "allOf": [
        {
          "$ref": "#/$defs/HiringBoardDto"
        }
      ]
    },
    "openRoles": {
      "type": "number",
      "description": "Open roles the board reports."
    },
    "leadershipRoles": {
      "type": "number",
      "description": "Open leadership roles (C-level, VP, Head, Director)."
    },
    "foundingRoles": {
      "type": "number",
      "description": "Open founding or first-hire roles."
    },
    "byRoleFamily": {
      "description": "Open roles by role family.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/HiringBreakdownDto"
      }
    },
    "byFunction": {
      "description": "Open roles by function.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/HiringBreakdownDto"
      }
    },
    "technologies": {
      "description": "Business tools the open roles name, most frequent first.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/HiringTechnologyCountDto"
      }
    },
    "recentSignals": {
      "description": "Hiring signals from the last 90 days, newest first, up to 10.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/HiringSignalResponseItem"
      }
    }
  },
  "required": [
    "company",
    "stance",
    "traits",
    "board",
    "openRoles",
    "leadershipRoles",
    "foundingRoles",
    "byRoleFamily",
    "byFunction",
    "technologies",
    "recentSignals"
  ],
  "$defs": {
    "CompanyDto": {
      "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"
          ]
        },
        "createdAt": {
          "type": [
            "object",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "object",
            "null"
          ]
        }
      },
      "required": [
        "id",
        "name",
        "domain",
        "website",
        "description",
        "linkedinHandle",
        "linkedinUrl",
        "linkedinGeoId",
        "linkedinIndustryId",
        "naicsCode",
        "naicsLevel",
        "hqCity",
        "hqCountry",
        "industryGroup",
        "industrySubTags",
        "verticals",
        "employeeCountBucket",
        "foundedYear",
        "businessModel",
        "createdAt",
        "updatedAt"
      ]
    },
    "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"
      ]
    },
    "HiringBoardDto": {
      "type": "object",
      "properties": {
        "platform": {
          "type": "string",
          "description": "The company's hiring platform, or careers_page."
        },
        "careersUrl": {
          "type": [
            "object",
            "null"
          ]
        },
        "readAt": {
          "type": "string",
          "description": "When we last read it."
        },
        "complete": {
          "type": [
            "object",
            "null"
          ],
          "description": "Whether the last read listed every open role the board reports."
        }
      },
      "required": [
        "platform",
        "careersUrl",
        "readAt",
        "complete"
      ]
    },
    "HiringBreakdownDto": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "openRoles": {
          "type": "number"
        }
      },
      "required": [
        "key",
        "openRoles"
      ]
    },
    "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"
      ]
    },
    "HiringSignalResponseItem": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "eventType": {
          "type": "string"
        },
        "company": {
          "$ref": "#/$defs/CompanyDto"
        },
        "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"
        },
        "confidenceScore": {
          "type": [
            "object",
            "null"
          ],
          "minimum": 0,
          "maximum": 1
        },
        "confidence": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "high",
            "medium",
            "low"
          ]
        }
      },
      "required": [
        "id",
        "eventType",
        "company",
        "function",
        "seniority",
        "roleFamily",
        "country",
        "technologies",
        "announcedAt",
        "endedAt",
        "active",
        "roleCount",
        "roles",
        "board",
        "discoveredAt",
        "confidenceScore",
        "confidence"
      ]
    },
    "HiringTechnologyCountDto": {
      "type": "object",
      "properties": {
        "technology": {
          "type": "string"
        },
        "openRoles": {
          "type": "number"
        }
      },
      "required": [
        "technology",
        "openRoles"
      ]
    }
  }
}