ai_prospecting
ai_prospecting answers one question: who are the best people to
approach at this account? It runs OnFire’s prospecting engine against one
or many target companies and returns a ranked, tiered prospect list.
When to use it
Section titled “When to use it”- “Find buyers at Acme.” / “Who should I talk to at these 30 companies?”
Litmus test: if the request names the people or the criteria (title,
persona, technology, location), that’s ask_onfire.
If it asks the engine to surface the best prospects for an account, it’s
this tool.
Not for identity resolution (match_company /
match_person), emails and phones
(contact_data_enrichment), or
scoring one named person — there is no single-person action.
Inputs
Section titled “Inputs”| Parameter | Type | Required | Description |
|---|---|---|---|
action | "run" | No | The only supported action. Defaults to "run". |
company_linkedin_url | string | Yes* | Target company LinkedIn URL — shortcut for a single-element list. |
linkedin_urls | string[] | Yes* | Company LinkedIn URLs for a batch run. Takes precedence over company_linkedin_url. |
use_cache | boolean | No | Return cached results from a recent identical run. Default false; ignored on shadow runs. |
activate_shadow_run | boolean | No | Run against the caller’s shadow schema. Ignored while impersonating tenants. |
run_ids | number[] | No | Run ids from a prior still_running response — resumes polling without re-submitting. |
include_field_glossary | boolean | No | Legacy opt-in that inlines the ~12 KB glossary. Prefer ai_prospecting_field_glossary. |
target_tenant_id | string | No | Super tenants only. |
* One of linkedin_urls or company_linkedin_url is required. The tenant
comes from your OAuth session — don’t pass it.
Returns
Section titled “Returns”Runs take one to three minutes. The server polls internally and returns either a completed envelope or a resumable one.
Completed:
dataset— handle to the full ranked prospect list.top_picks— the ranked “start here” subset with tier, warm-intro path, and ready-made talking points.priority_summary— count histograms (tier 1 prospects, platinum/gold warm intros, alumni, tech champions).preview_rows— a few projected prospect rows for a sanity check.facets— distributions over tier, warm-intro tier, alumni flag, persona tags, and per-company breakdown.field_indexandfield_glossary_resource_uri.total_prospects,filtered_prospects,ranking_method,message.
Still running: {status, message, companies, run_ids} — call again,
passing run_ids back.
Notes & limits
Section titled “Notes & limits”- The full prospect list is never inlined — it lives in a short-lived
dataset. Slice it with
query_datasetsor inspect it withdescribe_dataset. - On a retry, prefer passing
run_ids. Re-calling with the same company URLs also works — server-side dedup means you never get a duplicate run. - Projected rows cover identity, ranking and tier, persona classification, warm-intro path, signals and outreach payload, career momentum, and narrative reasoning. Module internals and schema internals are never returned.
- To enrich the run’s contacts, hand its
dataset_idstraight tocontact_data_enrichment. - Full playbook:
load_onfire_guide("ai_prospecting").
Example agent prompts
Section titled “Example agent prompts”“Run AI prospecting for linkedin.com/company/acme and linkedin.com/company/globex. Use the cache.”
“Who are the top five people to approach at Acme, and why?”