---
title: "Get talent flow analysis for a company"
method: POST
path: "/v1/talent-flow"
tags: ["Company info"]
---

# Get talent flow analysis for a company

`POST /v1/talent-flow`

Visualizes talent movement at a company. Use 'joiners' to see where a company is hiring from — which competitors, universities, and regions it pulls talent from during the time window. Use 'leavers' to see where a company's alumni are going — which companies or startups are attracting its former employees. Processes up to 10,000 profiles per request. Large companies may take up to two minutes to analyze.

<span>⚡ <strong>Rate limit:</strong> 30 requests per 1 minute</span>

<span>💰 <strong>Cost:</strong> 5 credits per talent flow report&nbsp;<span title="Pricing shown is default pricing. Actual pricing may vary.">ⓘ</span></span>

<span>⏱ <strong>Recommended timeout:</strong> 2 minutes&nbsp;<span title="Recommended timeout: set your HTTP client timeout to at least 2 minutes for this endpoint.">ⓘ</span></span>

## Request body

- object
  - `apiKey` string, required — Your Fiber API key
  - `company` union, required — Company to analyze. Set identifier to 'linkedinUrl', 'linkedinSlug', 'linkedinOrgId', or 'domain' and provide the corresponding value.
    - object
      - `identifier` 'linkedinUrl', required
      - `value` string, required — LinkedIn company URL (e.g. 'https://www.linkedin.com/company/openai').
    - object
      - `identifier` 'linkedinSlug', required
      - `value` string, required — LinkedIn company slug (e.g. 'openai').
    - object
      - `identifier` 'linkedinOrgId', required
      - `value` string, required — LinkedIn numeric organization ID (e.g. '11130470').
    - object
      - `identifier` 'domain', required
      - `value` string, required — Company website domain (e.g. 'openai.com').
  - `direction` 'joiners' | 'leavers', required — Direction of talent flow. 'joiners' finds people who started at the company within the window and reports where they came from. 'leavers' finds people who left the company within the window and reports where they went.
  - `dateRange` object, required
    - `lowerBound` string, nullable
    - `upperBound` string, nullable

## Response `200`

Default Response

- object
  - `output` object, required
    - `direction` 'joiners' | 'leavers', required — Direction of the analysis.
    - `company` object, required — Company that was analyzed.
      - `name` string, required — Company name.
      - `linkedinOrgId` string, required — LinkedIn organization ID (e.g. '1441' for Google).
      - `domains` string[], required — Company website domains.
      - `linkedinSlug` string, nullable — LinkedIn company slug (e.g. 'anthropic').
    - `window` object, required — Time window for the analysis.
      - `after` string, nullable — Start of the analysis window (YYYY-MM-DD). Null means no lower bound.
      - `before` string, nullable — End of the analysis window (YYYY-MM-DD). Null means no upper bound.
    - `peopleCount` integer, required — Number of people who joined (joiners) or left (leavers) the company within the analysis window.
    - `companyBuckets` object[], required — Where people came from (joiners) or went to (leavers), sorted by count descending.
      - `companyName` string, required — Company name.
      - `domain` string, nullable — Company website domain (e.g. 'amazon.com').
      - `linkedinUrl` string, nullable — LinkedIn company URL.
      - `linkedinOrgId` string, nullable — LinkedIn organization ID.
      - `count` integer, required — Number of people who came from this company (joiners) or went to this company (leavers).
      - `percent` number, required — Percentage of total people (0-100, one decimal place).
      - `stage` string, nullable — Funding stage (e.g. 'Series A', 'Acquired', 'IPO').
      - `totalFundingUsd` number, nullable — Total funding raised in USD, if available.
      - `valuationUsd` number, nullable — Latest known valuation in USD, if available.
    - `yearsOfExperience` object, required — Years of experience at the time of the join or leave event.
      - `count` integer, required — Number of data points.
      - `median` number, nullable — Median value.
      - `mean` number, nullable — Mean (average) value.
      - `stdDev` number, nullable — Standard deviation.
      - `p25` number, nullable — 25th percentile.
      - `p75` number, nullable — 75th percentile.
      - `min` number, nullable — Minimum value.
      - `max` number, nullable — Maximum value.
    - `tenureMonths` object, required — Tenure at the analyzed company, in months.
      - `count` integer, required — Number of data points.
      - `median` number, nullable — Median value.
      - `mean` number, nullable — Mean (average) value.
      - `stdDev` number, nullable — Standard deviation.
      - `p25` number, nullable — 25th percentile.
      - `p75` number, nullable — 75th percentile.
      - `min` number, nullable — Minimum value.
      - `max` number, nullable — Maximum value.
    - `breakdowns` object, required — Categorical breakdowns of the analyzed population.
      - `bySeniority` object[], required — Breakdown by seniority level.
        - `seniority` string, required — Seniority level label.
        - `count` integer, required — Number of people at this seniority.
        - `percent` number, required — Percentage of total people (0-100).
      - `byJobFunction` object[], required — Breakdown by job function.
        - `jobFunction` string, required — Job function label.
        - `count` integer, required — Number of people in this function.
        - `percent` number, required — Percentage of total people (0-100).
      - `byCountry` object[], required — Breakdown by country.
        - `countryCode` string, required — ISO 3166-1 alpha-3 country code (e.g. 'USA', 'GBR', 'IND').
        - `countryName` string, required — Full English country name.
        - `count` integer, required — Number of people in this country.
        - `percent` number, required — Percentage of total people (0-100).
      - `byMetro` object[], required — Breakdown by metro area.
        - `slug` string, required — Region identifier. Preset metros use slugs like 'sf-bay-area'; non-preset metros are clustered and use 'unknown-metro' with centroid coordinates; profiles with no location use 'no-location'.
        - `name` string, required — Metro area display name.
        - `count` integer, required — Number of people in this metro area.
        - `percent` number, required — Percentage of total people (0-100).
        - `centroid` object, nullable — Centroid coordinates for clustered metros. Null for preset regions and no-location.
          - `lat` number, required — Centroid latitude.
          - `lon` number, required — Centroid longitude.
      - `bySchool` object[], required — Breakdown by school or university.
        - `school` string, required — School or university name.
        - `count` integer, required — Number of people from this school.
        - `percent` number, required — Percentage of total people (0-100).
      - `byYearsOfExperience` object[], required — Years of experience distribution histogram.
        - `label` string, required — Years of experience range label.
        - `count` integer, required — Number of people in this range.
        - `percent` number, required — Percentage of total people (0-100).
    - `generatedAt` string, required — ISO 8601 timestamp when the report was generated.
    - `markdownSummary` string, required — Human-readable markdown summary of the report, including tables and charts.
  - `chargeInfo` union, required
    - object — Credits were charged immediately for this operation
      - `method` 'charged-now', required
      - `creditsCharged` number, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits will be charged after the operation completes
      - `method` 'charging-later', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits that were charged for an asynchronous operation
      - `method` 'charged-for-async-process', required
      - `creditsCharged` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — No credits were charged for this operation
      - `method` 'free', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits were refunded for this operation
      - `method` 'credits-refunded', required
      - `creditsRefunded` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
  - `warnings` object[], nullable — Warnings about extraneous fields in request
    - `field` string, required — Full path to extraneous field (e.g., 'searchParams.ExtraField')
    - `message` string, required — Warning message
  - `advice` string[], nullable — Tips, recommendations, and suggestions for using this API effectively.

## Other responses

- `400` — Default Response
- `401` — Default Response
- `402` — Default Response
- `403` — Default Response
- `404` — Default Response
- `422` — Default Response
- `429` — Default Response
- `500` — Default Response
- `503` — Default Response

---

[API](https://skmtc.net/fiber/apis/fiber-ai-api.md) · [All operations](https://skmtc.net/fiber/apis/fiber-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fiber/fiber-ai-api/revisions/720c63a313eb/schema)
