Skip to main content
POST
/
api
/
v2
/
tech
/
companies
/
intent-search
curl -sS -X POST "https://api.openfunnel.dev/api/v2/tech/companies/intent-search" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tech": "Snowflake", "activity": "migrating off Redshift to Snowflake", "lookback_days": 180, "limit": 50}'
{
  "job_id": "<string>",
  "message": "<string>",
  "requested_limit": 123,
  "status": "pending"
}

Headers

X-API-Key
string
required

Body

application/json

Request body for the async tech + activity-intent search. Same search inputs as Search Companies By Tech Stack, plus the required activity to verify and a limit on qualified companies.

tech
string
required

Technology to search for in job descriptions (e.g. 'Snowflake', 'Kubernetes').

Required string length: 1 - 128
activity
string
required

The activity intent to verify, e.g. 'migrating off Redshift to Snowflake' or 'building a central analytics engineering team that owns dbt models'. Acts as a HARD filter: a company qualifies only when its job posting mentions the tech in a way consistent with this activity.

Required string length: 1 - 500
Examples:

"migrating off Redshift to Snowflake"

"migrating workloads from VMs to Kubernetes"

variations
string[] | null

Optional alternate phrasings of the tech (e.g. 'K8s' for Kubernetes). Each is OR-matched as a phrase.

lookback_days
integer
default:365

Lookback window in days (1–365).

Required range: 1 <= x <= 365
limit
integer
default:100

Maximum number of QUALIFIED companies to return. The scan walks the ranked pool and early-stops once this many companies pass intent verification.

Required range: 1 <= x <= 500
exclude_vendor
boolean
default:true

When true (default), excludes job posts from the vendor of the technology being searched.

exclude_aggregators
boolean
default:true

Exclude well-known LinkedIn job aggregators and reposters (jobs-via-*, lensa, ziprecruiter, etc.). ON by default.

exclude_company_slugs
string[] | null

Additional LinkedIn company slugs to exclude on top of the default aggregator block-list.

enrich
boolean
default:false

Hydrate qualified companies with firmographics (employee count, website, LinkedIn, HQ, industries, funding, revenue). Auto-enabled when any firmographic filter is set.

hq_country_code
string | null

Filter by company HQ ISO 3166-1 alpha-3 code (e.g. USA, GBR, IND, DEU). Full list of 250 codes via GET /api/v2/tech/country-options (under Agent Helpers). Auto-enables enrich.

Required string length: 3
min_employee_count
integer | null

Inclusive lower bound on company employee count. Auto-enables enrich.

Required range: x >= 0
max_employee_count
integer | null

Inclusive upper bound on company employee count. Auto-enables enrich.

Required range: x >= 0

Response

Job accepted. Returns a job_id to poll for status and results.

Returned immediately when a tech intent-search job is submitted.

job_id
string
required

Async job id. Poll GET /api/v2/tech/companies/intent-search/{job_id} for status and results.

message
string
required

Human-readable next-step hint.

requested_limit
integer
required

The requested maximum number of qualified companies.

status
string
default:pending

Job status at submit time (always pending).