Skip to main content

Enrich company leads with Firecrawl, OpenRouter AI, and Supabase

Workflow preview

Workflow preview
100%
Enrich company leads with Firecrawl, OpenRouter AI, and Supabase preview
Open on n8n.io

1. Workflow Overview

What this does Uses Firecrawl to scrape any company website and extract structured business signals from it. The enriched profile is automatically saved to Supabase. A self hosted, free alternative...

Best for

  • Lead Generation automation workflows
  • AI Summarization automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.stickynote, n8n-nodes-base.webhook, n8n-nodes-base.code, @n8n/n8n-nodes-langchain.agent, @n8n/n8n-nodes-langchain.lmchatopenrouter, @mendable/n8n-nodes-firecrawl.firecrawltool, @n8n/n8n-nodes-langchain.outputparserstructured, n8n-nodes-base.supabase

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Firecrawl.

Original n8n.io source

1.1 Workflow description

Title
Enrich company leads with Firecrawl, OpenRouter AI, and Supabase
Workflow name
Enrich company leads with Firecrawl, OpenRouter AI, and Supabase

What this does

Uses Firecrawl to scrape any company website and extract structured business signals from it. The enriched profile is automatically saved to Supabase. A self-hosted, free alternative to paid enrichment APIs like Apollo or Clay, powered by Firecrawl.

How it works

  1. Webhook receives a POST request with a url field (bare domain or full URL)
  2. Verify URL node validates and normalizes the domain
  3. Firecrawl scrapes the target website and searches for additional company data
  4. AI Agent (OpenRouter) extracts structured business signals from the scraped content
  5. Structured Output Parser formats the result into a clean JSON profile
  6. Supabase checks for duplicates before inserting, then saves the enriched profile
  7. Respond to Webhook returns the enriched result (or a 422 error if the URL was invalid)

Business signals extracted

Company name, industry, pricing model, free trial availability, employee size signal, funding stage, tech stack and integrations detected, target customer profile, trust signals (certifications, reviews, customer count), hiring status and open roles count.

Requirements

  • Firecrawl API key
  • OpenRouter API key (or swap for any OpenAI-compatible model)
  • Supabase project (setup SQL provided below)

Setup

  1. Create a Supabase project and run the following SQL in the SQL editor:
CREATE TABLE lead_enrichment (
 id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
 created_at TIMESTAMPTZ DEFAULT now(),
 updated_at TIMESTAMPTZ DEFAULT now(),
 domain TEXT NOT NULL UNIQUE,
 company_name TEXT,
 industry TEXT,
 pricing_model TEXT,
 has_free_trial BOOLEAN,
 employee_signal TEXT,
 funding_stage TEXT,
 tech_stack TEXT[],
 integrations TEXT[],
 target_customer TEXT,
 trust_signals TEXT[],
 hiring BOOLEAN,
 open_roles_count INT,
 raw_scraped_text TEXT,
 enrichment_source TEXT DEFAULT 'firecrawl'
);

CREATE OR REPLACE FUNCTION update_updated_at()
RETURNS TRIGGER AS $$
BEGIN
 NEW.updated_at = now();
 RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER set_updated_at
BEFORE UPDATE ON lead_enrichment
FOR EACH ROW EXECUTE FUNCTION update_updated_at();
  1. Add your Firecrawl API key as a credential in n8n
  2. Add your OpenRouter API key as a credential (or swap for any OpenAI-compatible provider)
  3. Add your Supabase credentials (project URL + service role key)
  4. Activate the workflow

How to use

Send a POST request to the webhook URL:

curl -X POST https://your-n8n-instance/webhook/your-id \
 -H "Content-Type: application/json" \
 -d '{"url": "firecrawl.dev"}'

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 2 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 3 - Receive company URL

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2.1

Block 4 - Validate and normalize URL

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 5 - Extract business signals with AI

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 3.1

Block 6 - OpenRouter LLM

Type / Role
@n8n/n8n-nodes-langchain.lmChatOpenRouter - lmChatOpenRouter
Config choices
Version 1

Block 7 - Scrape company website

Type / Role
@mendable/n8n-nodes-firecrawl.firecrawlTool - firecrawlTool
Config choices
Version 1

Block 8 - Search company data

Type / Role
@mendable/n8n-nodes-firecrawl.firecrawlTool - firecrawlTool
Config choices
Version 1

Block 9 - Parse into structured profile

Type / Role
@n8n/n8n-nodes-langchain.outputParserStructured - outputParserStructured
Config choices
Version 1.3

Block 10 - Check for duplicate in Supabase

Type / Role
n8n-nodes-base.supabase - supabase
Config choices
Version 1

Block 11 - Skip if already enriched

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.3

Block 12 - Prepare profile for insert

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 13 - Save enriched profile to Supabase

Type / Role
n8n-nodes-base.supabase - supabase
Config choices
Version 1

Block 14 - Return enriched profile

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.5

Block 15 - Return URL validation error

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.5

3. Summary Table

Workflow Enrich company leads with Firecrawl, OpenRouter AI, and Supabase
Complexity advanced
Nodes 15
Categories Lead Generation, AI Summarization
Author Firecrawl
Published 06 Mar 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/13910/13910.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Enrich company leads with Firecrawl, OpenRouter AI, and Supabase do?

What this does Uses Firecrawl to scrape any company website and extract structured business signals from it. The enriched profile is automatically saved to Supabase. A self hosted, free alternative...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Lead Generation, AI Summarization use case.