Company Research

Company Research

This guide walks through building a comprehensive picture of a target company using Voyager’s company, employee, and content endpoints.

Step 1: Find the Company

Search for the company to get its universal name (used in all subsequent calls):

$curl -s "$BASE/api/search/companies?keywords=Notion" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER"

Note the universalName from the results (e.g., "notionhq").

The universalName is the string after /company/ in a LinkedIn company URL. For example, https://www.linkedin.com/company/notionhq has universal name notionhq.

Step 2: Get Company Profile

Company profile fetches are async jobs:

$# Start the job
$RESP=$(curl -s "$BASE/api/companies/notionhq" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER")
$JOB_ID=$(echo "$RESP" | jq -r '.jobId')
$
$# Poll for result
$curl -s "$BASE/api/jobs/$JOB_ID" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER"

The result includes company name, industry, employee count, description, headquarters, and more.

Step 3: Get Company Posts

See what the company has been posting recently:

$curl -s "$BASE/api/company/notionhq/posts?count=10" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER"

Step 4: Get Company Updates Feed

For a broader view of company activity:

$curl -s "$BASE/api/company/NUMERIC_COMPANY_ID/updates?limit=10" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER"

The /updates endpoint requires a numeric company ID (from the company profile entityUrn), while /posts accepts the universal name string.

Step 5: Get Employees

Employee exports are async jobs:

$# All employees
$RESP=$(curl -s "$BASE/api/companies/notionhq/employees?limit=50" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER")
$JOB_ID=$(echo "$RESP" | jq -r '.jobId')
$
$# Filter by role
$RESP=$(curl -s "$BASE/api/companies/notionhq/employees?limit=50&keywords=engineering" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER")

Poll the job for results:

$curl -s "$BASE/api/jobs/$JOB_ID" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER"

Step 6: Find Specific Decision-Makers

Use people search with the company filter for targeted lookups:

$curl -s "$BASE/api/search/people?company=Notion&keywords=Head+of+Engineering&count=5" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER"

Step 7: Batch Company Research

Research multiple companies at once:

$# Batch company profiles (async job)
$curl -s -X POST "$BASE/api/companies/read" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER" \
> -H "Content-Type: application/json" \
> -d '{"companies": [{"universalName": "stripe"}, {"universalName": "notionhq"}, {"universalName": "figma"}]}'
$
$# Batch employee exports (async job)
$curl -s -X POST "$BASE/api/companies/employees/read" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER" \
> -H "Content-Type: application/json" \
> -d '{"companies": [{"universalName": "stripe"}], "limit": 50, "keywords": "engineering"}'

Complete Research Script

$export BASE=https://li.scaleabm.org
$export KEY=voy_YOUR_API_KEY
$export USER=your-username
$COMPANY="notionhq"
$
$# 1. Company profile
$echo "--- Company Profile ---"
$RESP=$(curl -s "$BASE/api/companies/$COMPANY" \
> -H "Authorization: Bearer $KEY" -H "X-User-Id: $USER")
$JOB_ID=$(echo "$RESP" | jq -r '.jobId')
$sleep 5
$curl -s "$BASE/api/jobs/$JOB_ID" \
> -H "Authorization: Bearer $KEY" -H "X-User-Id: $USER" | jq '.job.result'
$
$# 2. Recent posts
$echo "--- Recent Posts ---"
$curl -s "$BASE/api/company/$COMPANY/posts?count=5" \
> -H "Authorization: Bearer $KEY" -H "X-User-Id: $USER" | jq '.data'
$
$# 3. Engineering employees
$echo "--- Engineering Team ---"
$RESP=$(curl -s "$BASE/api/companies/$COMPANY/employees?limit=20&keywords=engineering" \
> -H "Authorization: Bearer $KEY" -H "X-User-Id: $USER")
$JOB_ID=$(echo "$RESP" | jq -r '.jobId')
$sleep 10
$curl -s "$BASE/api/jobs/$JOB_ID" \
> -H "Authorization: Bearer $KEY" -H "X-User-Id: $USER" | jq '.job.result'
$
$# 4. Leadership search
$echo "--- Leadership ---"
$curl -s "$BASE/api/search/people?company=Notion&keywords=VP+Director+Head&count=10" \
> -H "Authorization: Bearer $KEY" -H "X-User-Id: $USER" | jq '.results[] | {name: .fullName, title: .headline}'

Error Handling

ScenarioResolution
Company returns 404Universal name may be incorrect — use search to find it
Employee export times outReduce limit or add keywords filter
Job stays pendingSome exports take 30-60 seconds for large companies