Skip to main content
POST
/
accounts
/
company_hiring
curl --request POST \
  --url https://app.pipecorn.com/api/v2/accounts/company_hiring \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
{
  "company_domain": "notion.so"
}
'
{
  "total_jobs": 42,
  "truncated": true,
  "company": {
    "name": "Acme",
    "domain": "acme.com",
    "linkedin_url": "https://linkedin.com/company/acme"
  },
  "jobs": [
    {
      "job_title": "Senior Backend Engineer",
      "job_url": "https://example.com/jobs/1",
      "job_location": "Paris France",
      "employment_statuses": [
        "full_time"
      ],
      "date_posted": "2026-05-30",
      "description": "Build cool stuff with Rails.",
      "hiring_team": [
        {
          "name": "Alice Doe",
          "title": "Engineering Manager",
          "linkedin_url": "https://linkedin.com/in/alice"
        }
      ]
    }
  ]
}
{
"error": 400,
"message": "Provide at least one of: company_domain, company_name, company_linkedin_url"
}
{
"error": 401,
"message": "Insufficient credits"
}
{
"error": 422,
"message": "Invalid country code(s): USA. Use 2-letter ISO 3166-1 alpha-2 codes (e.g. US, FR)."
}
{
"error": 429,
"message": "Too many requests"
}
Get the list of open job postings indexed for a company using one company identifier (domain, company name, or LinkedIn URL). Results are sourced from TheirStack.

Credits and rate limits

  • Credits: 1 credit per job returned. You are only charged for the jobs actually returned, and never for more jobs than your available credits allow. A lookup that returns no jobs costs nothing.
  • Rate limit: 5 requests per second per user

Required identification

Provide at least one of:
  • company_domain
  • company_name
  • company_linkedin_url
If none are provided, the API returns:
{
  "error": 400,
  "message": "Provide at least one of: company_domain, company_name, company_linkedin_url"
}

Optional parameters

  • posted_within_days: Only return jobs posted within the last N days. Must be one of the selectable look-back windows: 7, 30, 60, 90, or 180. Defaults to 30 when omitted; any other value returns 422.
  • limit: Maximum number of jobs to return, a positive integer capped at 100. Because billing is per job, use this to bound how many credits a single lookup can spend. Only enough pages to satisfy the limit are fetched.
  • full_description: When true, return each job’s full description. Defaults to false, in which case descriptions are truncated to a 300-character snippet.
  • job_title_keywords: Array of strings. Only return jobs whose title matches one of these keywords.
  • excluded_job_title_keywords: Array of strings. Exclude jobs whose title matches one of these keywords.
  • job_description_keywords: Array of strings. Only return jobs whose description contains one of these keywords.
  • excluded_job_description_keywords: Array of strings. Exclude jobs whose description contains one of these keywords.
  • job_country_codes: Array of 2-letter ISO 3166-1 alpha-2 country codes (e.g. US, FR). Only return jobs located in these countries. Codes are case-insensitive.
  • excluded_job_country_codes: Array of 2-letter ISO 3166-1 alpha-2 country codes. Exclude jobs located in these countries.
Each keyword filter must be an array of strings, otherwise the API returns 422. Invalid country codes also return 422.

Example request

{
  "company_domain": "notion.so",
  "posted_within_days": 30,
  "limit": 10,
  "full_description": false,
  "job_title_keywords": ["engineer", "developer"],
  "excluded_job_title_keywords": ["intern"],
  "job_country_codes": ["US", "FR"]
}

Example response

The truncated flag is true when more jobs matched than were returned (because of the limit, the 100-job ceiling, or your available credits).
{
  "total_jobs": 42,
  "truncated": true,
  "company": {
    "name": "Acme",
    "domain": "acme.com",
    "linkedin_url": "https://linkedin.com/company/acme"
  },
  "jobs": [
    {
      "job_title": "Senior Backend Engineer",
      "job_url": "https://example.com/jobs/1",
      "job_location": "Paris France",
      "employment_statuses": ["full_time"],
      "date_posted": "2026-05-30",
      "description": "Build cool stuff with Rails.",
      "hiring_team": [
        {
          "name": "Alice Doe",
          "title": "Engineering Manager",
          "linkedin_url": "https://linkedin.com/in/alice"
        }
      ]
    }
  ]
}

Authorizations

X-API-KEY
string
header
required

Your API key

Body

application/json
company_domain
string

Company website domain

Example:

"notion.so"

company_name
string

Company name

Example:

"Notion"

company_linkedin_url
string<uri>

LinkedIn company URL

Example:

"https://www.linkedin.com/company/notionhq/"

posted_within_days
enum<integer>
default:30

Only return jobs posted within the last N days. Must be one of the selectable look-back windows: 7, 30, 60, 90, or 180. Defaults to 30 when omitted; any other value returns 422.

Available options:
7,
30,
60,
90,
180
Example:

30

limit
integer

Maximum number of jobs to return. A positive integer capped at 100. Because billing is 1 credit per job, use this to bound how many credits a single lookup can spend. Only enough pages to satisfy the limit are fetched.

Required range: 1 <= x <= 100
Example:

10

full_description
boolean
default:false

When true, return each job's full description. Defaults to false, in which case descriptions are truncated to a 300-character snippet.

Example:

false

job_title_keywords
string[]

Only return jobs whose title matches one of these keywords.

Example:
["engineer", "developer"]
excluded_job_title_keywords
string[]

Exclude jobs whose title matches one of these keywords.

Example:
["intern"]
job_description_keywords
string[]

Only return jobs whose description contains one of these keywords.

Example:
["rails", "ruby"]
excluded_job_description_keywords
string[]

Exclude jobs whose description contains one of these keywords.

Example:
["php"]
job_country_codes
string[]

Only return jobs located in these countries. 2-letter ISO 3166-1 alpha-2 country codes (e.g. US, FR); case-insensitive.

Example:
["US", "FR"]
excluded_job_country_codes
string[]

Exclude jobs located in these countries. 2-letter ISO 3166-1 alpha-2 country codes (e.g. US, FR); case-insensitive.

Example:
["CA"]

Response

Successfully retrieved job postings

total_jobs
integer

Total number of matching job postings (may exceed the number returned)

Example:

42

truncated
boolean

True when more jobs matched than were returned (because of the limit, the 100-job ceiling, or your available credits).

Example:

true

company
object

The hiring company, resolved from the first matching job.

jobs
object[]

List of job postings