Exa Search News
exa_search_newsA find-companies News-mode discovery source, used alongside
search_news_events and tavily_search — the News-mode skill owns
the routing (which signals fan out here). Each query retrieves the
top recent news articles matching it, and each article comes back as
pre-extracted company rows (name, domain, one-line event), so unlike
tavily_search there is no article-extraction step. Covers narrative
signals PredictLeads' typed categories miss (AI initiatives,
role-scoped exec changes, plant incidents) and fills its zero-result
gaps on typed events.
Compose queries in positive form describing the event sought, e.g. "manufacturing companies announcing new plant openings in the United States" — one query per signal, all in one call (the tool fans them out in parallel; one tool call is one LLM round). Don't embed exclusions — vector retrieval has no concept of "not", so naming an excluded term biases results towards it.
Each query retrieves the 10 most relevant recent articles. Pass
lookback_days to bound how far back to look (default 30); articles
published before that window are excluded server-side. A news scan
passes the window from its trigger prompt.
Costs 0.5 Sliq credits per query that returns without error, so a batch of 4 queries costs 2 credits; a failed query is free. Free on BYO Exa (a connected Exa key). Soft-fails on insufficient credits: the charge is capped at the remaining balance.
When this runs in an agent, every company with a domain is saved to the
Output tab as a company row (deduped by domain) carrying its article in
data.signals — except a company whose domain is the article's own
host, which is often the outlet's domain misread as the company's. To
filter the saved companies, record a verdict on each saved row with
record_search_results, under the domain it was saved with.
Dict with companies array, count, and created_identifiers (the
domains this call newly added to the list). Each company row is
{company_name, domain, event, headquarters, source_url, title, published_at, query} — domain is lowercased-bare or None when
the article didn't reveal one (resolve those downstream before
recording), event is a one-line description of what happened,
source_url/title/published_at identify the article, and
query names the originating query. Rows are deduped by domain
across queries (first article wins).
If every query failed with an upstream error and nothing landed,
also exa_available: False plus a human-readable error — a
source outage, NOT a genuinely empty feed. Partial failure (some
queries errored, others returned) stays silent and reports only
the companies.
On insufficient Sliq credits the call is refused before running —
it raises InsufficientCreditsError instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| queries | Yes | One positive-form news query per signal. Pass a list of one for a single-signal lookup. | |
| agent_id | No | Optional — a specific agent to save the companies into. Omit it to use the running agent, which is the usual case. | |
| list_name | No | Short kebab slug naming the Output-tab list bucket. Absent, companies land in the 'default' list. | |
| lookback_days | No | Days of news history to scan (default 30). |