Hiring Velocity

Track company hiring pace with department breakdowns, location distribution, and historical trend analysis to identify growth signals.

Aggregate hiring metrics showing company hiring pace, department breakdowns, and historical trends.

Why This Signal Matters

  • Growth indicator - High hiring velocity signals company expansion and budget
  • Department focus - See which teams are growing fastest
  • Trend analysis - Compare 30/60/90 day hiring patterns
  • Location insights - Understand geographic expansion

Available Subtypes

Subtype EnumCategoryDescription
hiringVelocityhiringAggregate hiring metrics showing company hiring pace and breakdowns

Signal Categories

Signals are organized into these categories:

CategoryDescription
hiringHiring activity metrics

Schema

{
  "signal_id": "1327e29c-f215-4c14-85e3-4d7a1782a986",
  "signal_type": "hiring-velocity",
  "signal_subtype": "hiringVelocity",
  "detected_at": "2025-12-31T12:47:26Z",
  "association": "company",
  "company": {
    "name": "Illumina",
    "domain": "illumina.com",
    "linkedin_url": "linkedin.com/company/illumina",
    "industries": [
      "Biotechnology Research"
    ],
    "employee_count_low": 5001,
    "employee_count_high": 10000
  },
  "data": {
    "takeaway": "Hiring velocity: Moderate growth for a very large company. When companies with > 5000 employees have open roles between 1% and 5% of their workforce, that's considered steady hiring.",
    "numberOfEmployees": 7501,
    "numberOfOpenRoles": 79,
    "hiringVelocityPct": 1.05,
    "historicalComparison": {
      "rolesOpenedLast30d": 79,
      "rolesOpenedPrev30d": 38,
      "rolesOpenedPrev60d": 19,
      "trend": "increasing"
    },
    "departments": [
      {
        "category": "engineering",
        "count": "59",
        "pct": 74.7
      },
      {
        "category": "sales",
        "count": "40",
        "pct": 50.6
      },
      {
        "category": "management",
        "count": "32",
        "pct": 40.5
      },
      {
        "category": "quality_assurance",
        "count": "19",
        "pct": 24.1
      },
      {
        "category": "directors",
        "count": "15",
        "pct": 19.0
      }
    ],
    "locations": [
      {
        "category": "San Diego, California, United States",
        "count": "45",
        "pct": 57.0
      },
      {
        "category": "Singapore, Singapore",
        "count": "25",
        "pct": 31.6
      },
      {
        "category": "India",
        "count": "10",
        "pct": 12.7
      },
      {
        "category": "Cambridge, United Kingdom",
        "count": "6",
        "pct": 7.6
      },
      {
        "category": "Shanghai, China",
        "count": "5",
        "pct": 6.3
      }
    ],
    "seniority": [
      {
        "category": "non_manager",
        "count": "96",
        "pct": 121.5
      },
      {
        "category": "manager",
        "count": "28",
        "pct": 35.4
      },
      {
        "category": "director",
        "count": "11",
        "pct": 13.9
      },
      {
        "category": "head",
        "count": "1",
        "pct": 1.3
      }
    ],
    "contracts": [
      {
        "category": "full time",
        "count": "101",
        "pct": 127.8
      },
      {
        "category": "commission",
        "count": "58",
        "pct": 73.4
      },
      {
        "category": "remote",
        "count": "38",
        "pct": 48.1
      },
      {
        "category": "hybrid",
        "count": "18",
        "pct": 22.8
      },
      {
        "category": "all levels",
        "count": "17",
        "pct": 21.5
      }
    ]
  }
}

Field Reference

Core Fields

FieldTypeRequiredDescription
signal_idstring (UUID)Unique identifier for this signal
signal_typestringAlways "hiring-velocity"
signal_subtypestringAlways "hiringVelocity" (hiringVelocity)
detected_atstring (ISO 8601)Timestamp when signal was detected
associationstringAlways "company"

Company Object

FieldTypeRequiredDescription
company.namestringCompany name
company.domainstringCompany website domain
company.linkedin_urlstring (URL)LinkedIn company URL
company.industriesarray[string]Industry classifications
company.employee_count_lowintegerLower bound of employee count
company.employee_count_highintegerUpper bound of employee count

Data Object

FieldTypeRequiredDescription
data.takeawaystringHuman-readable velocity context
data.numberOfEmployeesintegerTotal employee count
data.numberOfOpenRolesintegerTotal open positions
data.hiringVelocityPctfloatOpen roles as percentage of headcount
data.historicalComparison.rolesOpenedLast30dintegerRoles opened in last 30 days
data.historicalComparison.rolesOpenedPrev30dintegerRoles opened 30-60 days ago
data.historicalComparison.rolesOpenedPrev60dintegerRoles opened 60-90 days ago
data.historicalComparison.trendstringTrend direction based on historical comparison (increasing, steady, decreasing)
data.departmentsarray[string]Department breakdown with category, count, pct
data.departments[].categorystringDepartment category (see allowed values above)
data.departments[].countstringNumber of open roles in this department
data.departments[].pctfloatPercentage of total open roles (may exceed 100% as roles can belong to multiple categories)
data.locationsarray[string]Location breakdown with category, count, pct
data.locations[].categorystringLocation name (city, state, country)
data.locations[].countstringNumber of open roles in this location
data.locations[].pctfloatPercentage of total open roles (may exceed 100% as roles can be in multiple locations)
data.seniorityarray[string]Seniority breakdown with category, count, pct
data.seniority[].categorystringSeniority level category (c_level, director, founder, head, manager, non_manager, owner, partner, president, vice_president)
data.seniority[].countstringNumber of open roles at this seniority
data.seniority[].pctfloatPercentage of total open roles (may exceed 100% as roles can span multiple seniority levels)
data.contractsarray[string]Contract type breakdown with category, count, pct
data.contracts[].categorystringContract type (full time, part time, contract, remote, etc.)
data.contracts[].countstringNumber of open roles with this contract type
data.contracts[].pctfloatPercentage of total open roles (may exceed 100% as roles can have multiple contract attributes)

Coverage

  • Refresh: Weekly
  • Coverage: 21,000,000 companies