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": "Unauthorized"
}{
"error": "Not enough enrichment credits left",
"code": "insufficient_credits",
"top_up_url": "https://app.pipecorn.com/settings/subscriptions/credits"
}{
"error": "You have reached your weekly enrichment credit limit for this workspace",
"code": "workspace_limit_exceeded"
}{
"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"
}Company hiring (job postings)
Retrieve the list of open job postings for a given company
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": "Unauthorized"
}{
"error": "Not enough enrichment credits left",
"code": "insufficient_credits",
"top_up_url": "https://app.pipecorn.com/settings/subscriptions/credits"
}{
"error": "You have reached your weekly enrichment credit limit for this workspace",
"code": "workspace_limit_exceeded"
}{
"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"
}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
402 Payment Required and code: "insufficient_credits" before any job is fetched.
A workspace weekly credit limit returns 403 Forbidden with
code: "workspace_limit_exceeded" instead. See
Credit and limit errors.
Required identification
Provide at least one of:company_domaincompany_namecompany_linkedin_url
{
"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, or180. Defaults to30when omitted; any other value returns422.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: Whentrue, return each job’s full description. Defaults tofalse, 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.
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
Thetruncated 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
Your API key
Body
Company website domain
"notion.so"
Company name
"Notion"
LinkedIn company URL
"https://www.linkedin.com/company/notionhq/"
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.
7, 30, 60, 90, 180 30
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.
1 <= x <= 10010
When true, return each job's full description. Defaults to false, in which case descriptions are truncated to a 300-character snippet.
false
Only return jobs whose title matches one of these keywords.
["engineer", "developer"]
Exclude jobs whose title matches one of these keywords.
["intern"]
Only return jobs whose description contains one of these keywords.
["rails", "ruby"]
Exclude jobs whose description contains one of these keywords.
["php"]
Only return jobs located in these countries. 2-letter ISO 3166-1 alpha-2 country codes (e.g. US, FR); case-insensitive.
["US", "FR"]
Exclude jobs located in these countries. 2-letter ISO 3166-1 alpha-2 country codes (e.g. US, FR); case-insensitive.
["CA"]
Response
Successfully retrieved job postings
Total number of matching job postings (may exceed the number returned)
42
True when more jobs matched than were returned (because of the limit, the 100-job ceiling, or your available credits).
true
The hiring company, resolved from the first matching job.
Show child attributes
Show child attributes
List of job postings
Show child attributes
Show child attributes
Was this page helpful?