---
title: "Company hiring profiles (bulk)"
method: POST
path: "/v1/companies/hiring"
tags: ["companies"]
---

# Company hiring profiles (bulk)

`POST /v1/companies/hiring`

## Request

- Base URL: `https://api.datahyena.com`
- URL: `https://api.datahyena.com/v1/companies/hiring`
- Auth: API key in header `X-API-Key`

Profile up to 25 companies. Costs one credit per profile returned, served in order until credits run out; the rest are marked skipped. Companies we have not read yet are marked building and read straight away, and cost nothing. Unresolved companies cost nothing.

## Request body

- CompanyHiringBulkDto
  - `companies` CompanyTimelineSelectorDto[], required: Companies to profile, each by id, domain, name, or linkedinUrl. 1 to 25 per request.
    - `id` string: Datahyena company id.
    - `domain` string
    - `name` string
    - `linkedinUrl` string

## Response `200`

- CompanyHiringBulkItemDto[]
  - `query` CompanyTimelineSelectorDto, required
    - `id` string: Datahyena company id.
    - `domain` string
    - `name` string
    - `linkedinUrl` string
  - `status` 'served' | 'building' | 'not_found' | 'skipped_insufficient_credits', required: building means we had not read this company and have started now; ask again in a few minutes.
  - `profile` HiringProfileDto
    - `company` CompanyDto, required
      - `id` object, nullable, required
      - `name` string, required
      - `domain` object, nullable, required
      - `website` object, nullable, required: 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` object, nullable, required
      - `linkedinHandle` object, nullable, required
      - `linkedinUrl` object, nullable, required
      - `linkedinGeoId` object, nullable, required
      - `linkedinIndustryId` object, nullable, required
      - `naicsCode` object, nullable, required: NAICS 2022 code derived from the industry classification. Null when no honest mapping exists.
      - `naicsLevel` 2 | 3 | 4, nullable, required: Depth of naicsCode: 2 = sector, 3 = subsector, 4 = industry group.
      - `hqCity` object, nullable, required
      - `hqCountry` CountryDto, required
        - `code` string, required: ISO 3166-1 alpha-2 country code.
        - `name` string, required: Human-readable country name.
      - `industryGroup` object, nullable, required
      - `industrySubTags` string[], required
      - `verticals` string[], required
      - `employeeCountBucket` object, nullable, required
      - `foundedYear` object, nullable, required
      - `businessModel` object, nullable, required
      - `createdAt` object, nullable, required
      - `updatedAt` object, nullable, required
    - `stance` 'frozen' | 'none_open' | 'expanding' | 'building_founding_team' | 'building_leadership' | 'building_gtm' | 'scaling_engineering' | 'hiring_steadily' | 'no_public_board', required: 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` string[], required: Every stance that applies, most significant first.
    - `board` HiringBoardDto, required
      - `platform` string, required: The company's hiring platform, or careers_page.
      - `careersUrl` object, nullable, required
      - `readAt` string, required: When we last read it.
      - `complete` object, nullable, required: Whether the last read listed every open role the board reports.
    - `openRoles` number, required: Open roles the board reports.
    - `leadershipRoles` number, required: Open leadership roles (C-level, VP, Head, Director).
    - `foundingRoles` number, required: Open founding or first-hire roles.
    - `byRoleFamily` HiringBreakdownDto[], required: Open roles by role family.
      - `key` string, required
      - `openRoles` number, required
    - `byFunction` HiringBreakdownDto[], required: Open roles by function.
      - `key` string, required
      - `openRoles` number, required
    - `technologies` HiringTechnologyCountDto[], required: Business tools the open roles name, most frequent first.
      - `technology` string, required
      - `openRoles` number, required
    - `recentSignals` HiringSignalResponseItem[], required: Hiring signals from the last 90 days, newest first, up to 10.
      - `id` string, required
      - `eventType` string, required
      - `company` CompanyDto, required
        - `id` object, nullable, required
        - `name` string, required
        - `domain` object, nullable, required
        - `website` object, nullable, required: 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` object, nullable, required
        - `linkedinHandle` object, nullable, required
        - `linkedinUrl` object, nullable, required
        - `linkedinGeoId` object, nullable, required
        - `linkedinIndustryId` object, nullable, required
        - `naicsCode` object, nullable, required: NAICS 2022 code derived from the industry classification. Null when no honest mapping exists.
        - `naicsLevel` 2 | 3 | 4, nullable, required: Depth of naicsCode: 2 = sector, 3 = subsector, 4 = industry group.
        - `hqCity` object, nullable, required
        - `hqCountry` CountryDto, required
          - `code` string, required: ISO 3166-1 alpha-2 country code.
          - `name` string, required: Human-readable country name.
        - `industryGroup` object, nullable, required
        - `industrySubTags` string[], required
        - `verticals` string[], required
        - `employeeCountBucket` object, nullable, required
        - `foundedYear` object, nullable, required
        - `businessModel` object, nullable, required
        - `createdAt` object, nullable, required
        - `updatedAt` object, nullable, required
      - `function` string, required: The function the signal is about, or all for company-wide signals.
      - `seniority` object, nullable, required
      - `roleFamily` object, nullable, required: The role family the signal is about, for example sales_development or revops.
      - `country` CountryDto, required
        - `code` string, required: ISO 3166-1 alpha-2 country code.
        - `name` string, required: Human-readable country name.
      - `technologies` string[], required: Technologies named across the roles behind the signal.
      - `announcedAt` string, required: When the signal started.
      - `endedAt` object, nullable, required: When every role behind it closed.
      - `active` boolean, required: Whether any role behind the signal is still open.
      - `roleCount` number, required: Number of open roles behind the signal.
      - `roles` HiringRoleDto[], required: Up to 10 roles behind the signal.
        - `title` string, required
        - `function` string, required
        - `seniority` string, required
        - `roleFamily` object, nullable, required
        - `location` object, nullable, required
        - `postedAt` object, nullable, required
        - `url` object, nullable, required
        - `salary` HiringSalaryDto, required
          - `min` object, nullable, required
          - `max` object, nullable, required
          - `currency` object, nullable, required
          - `interval` 'year' | 'month' | 'week' | 'day' | 'hour', nullable, required
        - `technologies` string[], required: Technologies the role names.
      - `board` string, required: The company's hiring platform.
      - `discoveredAt` string, required
      - `confidenceScore` object, nullable, required
      - `confidence` 'high' | 'medium' | 'low', nullable, required

## Other responses

- `400`: Invalid query parameter, body, or pagination cursor.
- `401`: Missing, invalid, or disabled API key.
- `402`: Workspace has no credits available for the request.
- `403`: Request blocked by abuse prevention policy.
- `429`: Rate limit exceeded for this workspace and plan.

---

[API](https://skmtc.dev/datahyena/apis/datahyena-public-api.md) · [All operations](https://skmtc.dev/datahyena/apis/datahyena-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/datahyena/apis/datahyena-public-api/revisions/0de0060625e4?raw)
