How to Automate Exa ICP Lead Generation — Find Your Perfect Customers with Semantic AI with n8n

Your sales team is drowning in bad-fit leads. You bought a list of 10,000 "SaaS companies," blasted them with cold email, and got a 0.4% reply rate — mostly angry unsubscribes. The problem was never y

How to Automate Exa ICP Lead Generation — Find Your Perfect Customers with Semantic AI with n8n

Your sales team is drowning in bad-fit leads. You bought a list of 10,000 "SaaS companies," blasted them with cold email, and got a 0.4% reply rate — mostly angry unsubscribes. The problem was never your copy or your sending infrastructure. The problem is that keyword-based lead databases don't understand what your ideal customer actually is. They match on firmographic checkboxes — industry code, headcount range, funding stage — and miss the thing that actually predicts a sale: does this company have the specific problem your product solves?

This article shows you how to build an automated ICP (Ideal Customer Profile) lead engine in n8n that uses Exa's neural search to find companies by meaning, not keywords, and GPT-4o to score and rank each one against your real buying criteria — so your team only ever touches leads worth touching.

Why keyword lead lists fail technical founders

Traditional prospecting tools index companies by explicit metadata. If you search "workflow automation companies," you get whoever wrote "workflow automation" on their homepage. You do not get the logistics company that quietly runs 40 spreadsheets and desperately needs automation but describes itself as "third-party fulfillment." That company is your perfect customer, and keyword search is structurally blind to it.

The second failure is scoring. Even when a list tool returns 500 plausible companies, someone on your team has to open each one, read the site, and guess whether it fits. At two minutes per company that's 16 hours of an SDR's week spent on qualification instead of conversations. Most teams skip it and spray the whole list — which is exactly why reply rates crater.

Exa solves the discovery problem: it's a search engine built on embeddings, so it retrieves pages by semantic similarity to a description of your ideal customer. n8n plus GPT-4o solves the scoring problem: every result gets read, evaluated against your criteria, and assigned a priority — automatically, at scale, for fractions of a cent each.

The solution: define your ICP once, let semantic AI hunt

The workflow follows a simple pipeline. You describe your ideal customer in plain English — once. Exa's neural search returns companies whose actual web presence resembles that description. Each result is enriched with page content, then handed to GPT-4o, which scores the fit on your dimensions (problem match, buying signals, company stage) and outputs a structured record. High scorers flow straight into your CRM or a Google Sheet; low scorers are logged and discarded. You wake up to a ranked list of companies that genuinely match, with a one-line reason for each score.

Because the ICP definition lives in one place, tuning the engine is trivial: change the description, change who it finds. No re-scraping, no new list purchase, no manual review pass.

Step-by-step: building the workflow in n8n

Here's the node-by-node build. The whole thing runs on a schedule and needs three credentials: an Exa API key, an OpenAI key, and wherever you store leads.

1. Schedule Trigger. Add a Schedule Trigger node set to run daily (e.g. 06:00). This gives you a fresh batch of leads every morning without touching the workflow.

2. Set — define your ICP. Add a Set (Edit Fields) node and create a string field called icp_description. Write it as a rich sentence, not keywords: "Mid-market B2B logistics and fulfillment companies (50–500 employees) that still coordinate operations across manual spreadsheets and email, likely to benefit from workflow automation." This single field is the brain of the whole system.

3. HTTP Request — Exa neural search. Add an HTTP Request node. Method POST, URL https://api.exa.ai/search. Under Headers add x-api-key with your Exa key and Content-Type: application/json. In the JSON body set "query" to {{$json.icp_description}}, "type": "neural", "numResults": 25, and add "contents": { "text": true } so Exa returns page text in the same call — this saves you a separate scraping step. Neural type is what makes the match semantic rather than lexical.

4. Split Out / Item Lists. Exa returns an array under results. Add a Split Out node on the field results so each company becomes its own item and flows through scoring independently.

5. OpenAI (GPT-4o) — score the fit. Add an OpenAI node (or the AI Agent node with an OpenAI Chat Model), model gpt-4o. In the system prompt, instruct it to act as a lead qualification analyst and to return only JSON. Feed it both the ICP and the company: "ICP: {{$('Set').item.json.icp_description}}. Company: {{$json.title}} — {{$json.url}}. Page content: {{$json.text}}. Score 0–100 for fit and return {score, tier, reason, signals}." Turn on JSON output (response format) so the node returns parseable fields, not prose. GPT-4o reads the actual page text, so the score reflects reality, not the domain name.

6. Filter — keep only qualified leads. Add a Filter node with the condition {{$json.score}} greater than or equal to 70. Everything below your threshold is dropped here, so downstream you only ever process real prospects. Tune this number as you learn what your reps convert.

7. Google Sheets / HubSpot / Airtable — deliver. Add your destination node (Google Sheets: Append or an HubSpot create-contact node) and map title, url, score, tier, reason, and signals. Optionally add a Slack node to ping the team with the top 3 by score each morning.

That's it — seven nodes, one ICP sentence, a ranked lead list every day.

The benefits you feel in week one

Precision over volume. Twenty-five semantically matched, GPT-scored companies beat 5,000 scraped ones. Your reply rates climb because every contact actually has the problem you solve.

Zero manual qualification. The 16 hours a week your team spent reading company websites is gone. GPT-4o does the reading and hands back a one-line reason per lead, so a human can sanity-check the top of the list in five minutes.

Instant strategy tuning. Testing a new segment used to mean buying a new list. Now you edit one Set field and re-run. Want to pivot from logistics to healthcare ops? Rewrite the sentence.

Cost that scales down, not up. Exa charges per search and GPT-4o per token; scoring 25 companies costs cents. Compare that to per-seat list-tool licenses that punish you for growing.

Common pitfalls (and how to avoid them)

Writing your ICP like a keyword query. "SaaS companies" gives Exa nothing to reason about. Neural search rewards specificity and context — describe the situation, the pain, and the stage. The richer the sentence, the sharper the results.

Forgetting to request page contents. If you omit "contents": { "text": true } from the Exa body, GPT-4o scores off the title and URL alone and hallucinates fit. Always pass the real text so the model reads what's actually on the page.

Letting GPT-4o return prose instead of JSON. Without an explicit JSON response format and a strict schema in the prompt, the model wraps its answer in commentary and your Filter node breaks on a missing score field. Force JSON output and validate it.

Setting the score threshold too high on day one. An 85+ filter may return zero leads until you've calibrated. Start at 70, watch which scored leads your reps actually convert, then tighten. The threshold is a dial, not a constant.

Ignoring Exa rate limits and duplicates. Running the workflow hourly against the same ICP surfaces the same companies. Add a dedupe step (a Remove Duplicates node keyed on url, or a lookup against your CRM) before writing, so your team isn't handed yesterday's leads again.

Build it once, describe your perfect customer once, and let semantic AI do the hunting every morning. Your pipeline stops being a volume game and starts being a fit game — which is the only version of prospecting that actually scales.

Exa ICP Lead Generation — Find Your Perfect Customers with Semantic AI
PRONTO PARA USAR

Ja construimos isso pra voce

Nao comece do zero. O Exa ICP Lead Generation — Find Your Perfect Customers with Semantic AI e um workflow n8n pronto para instalar — conecta suas ferramentas em minutos, sem codigo.

Instalar por $79.0 →