← all tools
Enrichment

Exa

Search the web by meaning instead of by keyword.

Exa is a contact enrichment tool, and one of the 52 tools hyreflow connects to Claude, ChatGPT and other AI assistants. Through hyreflow, an AI agent can run 7 actions, all of which look something up. Paid Exa actions cost 0.1 to 40 credits per request, from your hyreflow credit balance, so you need no Exa account.

Cost per call0.1–40 cr / call
Your own keynot needed
CategoryEnrichment

Exa is a search engine built for machines. You describe what you are looking for and it finds pages that match the idea, then hands over the actual text. It is how the agent researches a company, finds lookalikes, or answers something no database holds.

Exa is discovery and research. It finds and reads; enrichment turns what it found into people you can contact.

What can you ask Claude or ChatGPT to do with Exa?

With hyreflow connected, you ask for the outcome in plain language and the assistant runs Exa for you. For example:

  • “Read this candidate profile url, then use Exa and Apollo to find recently funded SaaS companies they would fit”
  • “Find agencies that look like this one and check who they are hiring on TheirStack”
  • “Research these five firms and summarise what they actually do”
  • “Find engineering blog posts from companies using Rust, then source the authors on GitHub”

Which tools work well with Exa?

In a hyreflow run, Exa is most often paired with Apollo, GitHub, TheirStack and Firecrawl.

  • Apollo

    turn the companies Exa found into named contacts

  • GitHub

    go from a technical article to the engineer who wrote it

  • TheirStack

    check whether the companies Exa surfaced are hiring

  • Firecrawl

    pull the full page when a summary is not enough

Which Exa actions can an AI agent run through hyreflow?

Through hyreflow, an AI agent can run 7 Exa actions, all of which look something up. Paid Exa actions cost 0.1 to 40 credits per request, from your hyreflow credit balance, so you need no Exa account.

Exa actionWhat it doesCost through hyreflow
Find similarLooks something up0.2 credits per request
SearchLooks something upup to 0.3 credits per request
Start agent runLooks something upup to 40 credits per request
AnswerLooks something up0.1 credits per request
List agent runsLooks something upfree
Get agent runLooks something upfree
Get contentsLooks something up0.1 credits per request

One credit is priced on the pricing page. The full price list for every tool is in the pricing tables.

Which hyreflow skills use Exa?

39 hyreflow skills call Exa as part of the run. A skill is a whole pipeline your agent already knows, end to end.

Sourcing

Build Boolean and X-ray search strings from a job spec

use whenyou have a spec and want search strings you can paste into LinkedIn, Google or your ATS, without hand-typing forty title variants

SerperAI ArkProspeoLemlistApolloExa
starts from a job spec · 7 stepsget the prompt →
Sourcing

Find more candidates like the best person you ever placed

use whenyou can point at one person and say more like this, faster than you can write the brief that describes them

AI ArkProspeoLeadMagicExahyreflow AgentFullEnrichLusha
starts from a candidate · 8 stepsget the prompt →
Sourcing

Map a whole talent pool, including the half that is not looking

use whenthe role is hard, the obvious search is exhausted, and you need to prove to a client that you have covered the market

AI ArkExaProspeoLushaPredictLeadsFullEnrichLeadMagic
starts from a job spec · 8 stepsget the prompt →
Sourcing

Turn a company's public team page into a qualified candidate list

use whena company's own team page already lists the people you want, and the databases hardly know the firm exists

FirecrawlExaSerperAI ArkProspeoLeadMagichyreflow AgentFullEnrich
starts from a list · 8 stepsget the prompt →
Sourcing

Turn a conference speaker list into candidates worth approaching

use whenan industry event has published its speakers and the people on stage look like the hire your client wants

FirecrawlExaSerperAI ArkProspeoLeadMagicFullEnrichEnrichleyLemlist
starts from a list · 7 stepsget the prompt →
Sourcing

Turn a job spec into a ranked shortlist with contact details

use whenyou have a live role and want a shortlist you would actually send to the client, not a raw export

ExaAI ArkProspeoLeadMagicFullEnrichEnrichleyLemlist
starts from a job spec · 7 stepsget the prompt →

See all 39 skills that use Exa →

How does an AI agent know how to use Exa?

hyreflow ships a written playbook for Exa, and the agent loads it before the first call. Auth, rate limits, what each call costs, which actions need your approval, and the mistakes worth avoiding. It is the difference between an agent that knows the tool and one that guesses at it.

Read the Exa docs →
Show the raw playbookwritten for the agent

Routing layer for Exa API work. WHAT/guardrails here; HOW in reference/endpoints.md and lib/exa.py. Full docs cached at reference/docs/exa/raw/llms-full.txt.

Auth & config

  • Base URL: https://api.exa.ai
  • Auth: header x-api-key (Exa → Dashboard → API Keys). Env EXA_API_KEY; never hardcode.
  • No cursor pagination: search/find_similar return up to num_results (provider-capped); raise it or refine the query for more.

Operations

  • search(query, type=, category=, num_results=, contents=) — neural/auto search. type: auto|neural|keyword|fast|deep. category: company | research paper | news | linkedin profile | etc. Pass contents={"text": True} to get page text in one call.
  • get_contents(urls, text=, ...) — cleaned page text/highlights/summary for URLs.
  • find_similar(url, num_results=) — expand from a seed URL (lookalike pages/companies).
  • answer(query, text=) — cited LLM answer grounded in Exa results.
  • Everything else (websets people/company search, monitors, chat/completions) → generic request(method, path, json=) + cached docs.

Cost note

Every search / get_contents / find_similar / answer call is charged, including one that matches nothing — Exa prices the request it accepted. The card price covers the base request; results beyond the first 10, a per-result summary, extra content types, more URLs, and a deep/deep-reasoning type each raise it. Keep num_results tight, ask only for the content types you will read, and prefer one search with contents over separate calls. Agent runs are charged when they complete (a failed/cancelled run is not charged; auto effort has no cap — set an explicit effort and bound outputSchema arrays with maxItems when spend must be predictable). No outreach side-effects — read-only research tool, so no send guardrails (just spend awareness).

Handoff

Use Exa for discovery + research in the recruiting funnel: find candidate/company pages and signals → pull text → hand structured findings to enrichment (Apollo/Lusha/etc.) or to an ATS write. Pairs with the rest of the sourcing pipeline.

Field notes (production experience)

Field-shape note: these are vendor-native operational notes. The client returns the raw vendor JSON and uses the method names in this file — read field shapes accordingly (no normalized-wrapper / result.data. prefix).

  • type vs category are independent: type = search strategy (auto/fast/neural/deep); category = result-type filter (company/people/news/financial report). type:"news" is a 422 error - use category:"news".
  • Order: run search/contents first and inspect citations; treat answer as the synthesis layer, not the first retrieval step, when precision matters.
  • Use focused queries + small numResults on pilots, widen only if recall is low.

Callable surface — lib/exa.py

Import: from lib.exa import Exa → instantiate Exa() (reads key from env). Base: https://api.exa.ai. Generic passthrough: request(method, path, *, params, json).

  • answer(query: str, *, text: bool = False, **opts) -> dict — POST /answer — LLM answer grounded in Exa search results, with citations.
  • budget_remaining() -> dict — Remaining Exa balance — NOT callable by a workspace. It reads a Hyreflow-side Exa balance rather than the caller's own account, so connecting your own Exa key does not unlock it; the engine refuses it on the workspace path regardless of BYOK.
  • find_similar(url: str, *, num_results: int = 10, **opts) -> dict — POST /findSimilar — find pages semantically similar to a seed URL.
  • get_agent_run(run_id: str) -> dict — GET /agent/runs/{run_id} — fetch an Exa Agent run's status and result.
  • get_contents(urls: list[str], *, text: bool = True, **opts) -> dict — POST /contents — fetch cleaned page content for URLs (text/highlights/summary).
  • list_agent_runs(*, limit: int = 10, **opts) -> dict — GET /agent/runs — list recent Exa Agent runs (id/status/createdAt/request).
  • ping() -> dict — BYOK key-verification probe. Exa's usage endpoint needs an api-key id in the path, so this fires the cheapest real search (1 result) to confirm the key authenticates — NOT free, ~1 search charge on the caller's own Exa account.
  • search(query: str, *, num_results: int = 10, type: str | None = None, category: str | None = None, contents: dict | None = None, **opts) -> dict — POST /search — neural/auto web search. type: auto|neural|keyword|fast|deep.
  • start_agent_run(query: str, *, output_schema: dict | None = None, effort: str | None = None, input: dict | None = None, data_sources: list | None = None, previous_run_id: str | None = None, **opts) -> dict — POST /agent/runs — start an async Exa Agent research/list-build run; returns a run id to poll.

Questions about Exa and hyreflow

Can I use Exa inside Claude or ChatGPT?

Yes. hyreflow is a connector for Claude, ChatGPT and other AI assistants. Once hyreflow is connected, you ask for the outcome in plain language and the assistant calls Exa for you. hyreflow exposes 7 Exa actions this way.

Do I need my own Exa account to use it with hyreflow?

No. hyreflow holds the Exa account and bills each action from your hyreflow credits.

What does Exa cost through hyreflow?

Paid Exa actions cost 0.1 to 40 credits per request, from your hyreflow credit balance, so you need no Exa account. 2 actions are free. hyreflow can show the cost of a paid action before it runs.

How do I connect Exa to an AI agent over MCP?

Add the hyreflow MCP server to your assistant and sign in. hyreflow calls the Exa API directly and exposes its actions as tools the assistant can run, so there is no separate Exa server to install.

Connect hyreflow to your assistant →

Put Exa to work from one prompt

Connect hyreflow to Claude or ChatGPT and ask for the outcome. It reads the playbook above before it makes a single call.