Skip to main content
POST
/
api
/
v2
/
signal
/
deploy
/
hiring-for-role
Find Companies hiring for a specific role
curl --request POST \
  --url https://api.openfunnel.dev/api/v2/signal/deploy/hiring-for-role \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <x-api-key>' \
  --data '
{
  "name": "<string>",
  "role": "<string>",
  "descriptive_icp": "<string>",
  "icp_id": 123,
  "timeframe": 90,
  "speed_mode": false,
  "accounts": [
    {
      "website": "<string>",
      "linkedin_url": "<string>"
    }
  ],
  "repeat": false,
  "account_audience_name": "<string>",
  "people_audience_name": "<string>",
  "max_credit_limit": 123,
  "enable_safe_crm_addition": false,
  "auto_enrich_people_emails": false,
  "advanced_people_finder": false
}
'
{
  "signal_id": 123,
  "status": "<string>"
}

Headers

X-API-Key
string
required

Body

application/json

Sentence: [descriptive_icp] companies hiring for [role]

Find companies actively posting job listings for a specific role, filtered against your ICP.

name
string
required

Name/identifier for this signal run

role
string
required

The role to search for. Examples: 'Solutions Engineer', 'VP of Sales', 'Data Engineer', 'DevOps Lead'.

descriptive_icp
string | null

Helps you specify a Company Category to target. It can be any company description in natural language (a category, industry, or business model), but never firmographic filters like employee count, location, or funding, which belong only in your ICP (icp_id). The items below are just examples of possible descriptive ICPs. Examples: B2B SaaS Companies, B2B Fintech Companies, Neobanking Companies, B2B Customer Support SaaS Companies, Health-tech SaaS companies that sell to dentists, or Companies that offer Developer Observability Solutions. Optional - when omitted, searches across all industries.

icp_id
integer | null

ICP ID for firmographic filtering. Required unless accounts are provided.

timeframe
integer | null
default:90

Lookback window in days (default: 90, max: 365)

speed_mode
boolean | null
default:false

Skip blocklist, deduplication, and industry checks for faster time-to-first-result. Tradeoff: may surface blocklisted or duplicate accounts.

accounts
V2AccountInput · object[] | null

Upload a list of accounts (website and/or linkedin_url) to run the signal against. When provided, trait search is skipped and these accounts are used directly. At least one of icp_id or accounts must be provided.

repeat
boolean | null
default:false

Run this signal daily to discover new results (default: false, runs once)

account_audience_name
string | null

Audience name for auto-adding discovered accounts (default: ' - Accounts')

people_audience_name
string | null

Audience name for people enrichment (default: ' - People')

max_credit_limit
integer | null

Credit limit for this signal. Signal stops once this many credits are consumed.

enable_safe_crm_addition
boolean | null
default:false

Auto-add discovered accounts to CRM in safe mode. New accounts are created; existing accounts are enriched without ownership changes.

auto_enrich_people_emails
boolean | null
default:false

Enrich discovered people with work emails. Requires enable_safe_crm_addition to be true.

advanced_people_finder
boolean | null
default:false

Enable advanced LLM-based people finder for deeper people discovery.

Response

Successful Response

Common response shape for signal deployment endpoints. Returns at minimum the signal_id and a status. Some agents return additional fields (e.g. message, campaign_id) which are not documented in this shape.

signal_id
integer
required

ID of the deployed signal. Use this to poll signal status or fetch results.

status
string
required

Deployment status (e.g. 'accepted', 'running').