Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
F

fire-enrich

> 编程语言
Open source

AI-powered data enrichment tool that transforms emails into rich datasets with company profiles, funding data, tech stacks, and more using Firecrawl and mult

1.2K stars0 likes0 views
WebsiteGitHub

About

AI-powered data enrichment tool that transforms emails into rich datasets with company profiles, funding data, tech stacks, and more using Firecrawl and mult

Fire Enrich - AI-Powered Data Enrichment Tool

Turn a simple list of emails into a rich dataset with company profiles, funding data, tech stacks, and more. Powered by Firecrawl and a multi-agent AI system.

Technologies

  • Firecrawl: Web scraping and content aggregation
  • OpenAI: Intelligent data extraction and synthesis
  • Next.js 15: Modern React framework with App Router

Setup

Required API Keys

Service Purpose Get Key
Firecrawl Web scraping and content aggregation firecrawl.dev/app/api-keys
OpenAI Intelligent data extraction platform.openai.com/api-keys

Quick Start

  1. Clone this repository
  2. Create a .env.local file with your API keys:
    FIRECRAWL_API_KEY=your_firecrawl_key
    OPENAI_API_KEY=your_openai_key
  3. Install dependencies: npm install or yarn install
  4. Run the development server: npm run dev or yarn dev
  5. Open http://localhost:3000

Example Enrichment

Before:

json
{
  "email": "[email protected]"
}

After:

json
{
  "email": "[email protected]",
  "companyName": "Wiz",
  "industry": "Cybersecurity",
  "employeeCount": "1001-5000",
  "yearFounded": 2020,
  "headquarters": "New York, NY",
  "fundingStage": "Series D",
  "totalRaised": "$900M",
  "website": "https://www.wiz.io",
  "sources": [
    "https://www.wiz.io/about",
    "https://techcrunch.com/2023/02/27/wiz-confirms-300m-at-a-10b-valuation-to-build-out-its-cloud-security-platform/"
  ]
}

How It Works

Architecture Overview: Following "[email protected]" Through the System

Let's see exactly how Fire Enrich processes a real example - enriching data for the email [email protected].

…

How Each Agent Works

Behind the scenes, each agent is a specialized module with its own expertise, search strategies, and type-safe output schema:

  1. Discovery Agent (Phase 1)

    • Establishes company basics: official name, website, type of business
    • Essential first step that provides the foundation for all other agents
    • Returns: Company name, website URL, business type
    • Schema: DiscoveryResult with fields like companyName, website, domain
  2. Company Profile Agent (Phase 2)

    • Uses verified company name to search for industry and market positioning
    • Builds on Discovery data to ensure accurate industry classification
    • Returns: Industry, sub-category, business model, market segment
    • Schema: ProfileResult with industry, headquarters, yearFounded, companyType
  3. Financial Intel Agent (Phase 3)

    • Leverages company name + industry context for targeted funding searches
    • Knowing the industry helps identify relevant investor databases
    • Returns: Funding stage, total raised, key investors, valuation
    • Schema: FundingResult with fundingStage, totalRaised, lastRoundAmount, investors
  4. Tech Stack Agent (Phase 4)

    • Analyzes technology with context of company type and funding stage
    • HTML analysis, GitHub repos, and technical documentation
    • Returns: Programming languages, frameworks, infrastructure, tools
    • Uses: Direct EnrichmentResult schema for flexible tech stack extraction
  5. General Purpose Agent (Phase 5)

    • Handles custom fields (like CEO, competitors, etc.) with full context
    • Benefits from all previous data to make targeted searches
    • Returns: Any custom field requested by the user
    • Uses: Dynamic EnrichmentResult schema based on user-defined fields

Why Sequential Execution?

The agents execute in a carefully designed sequence where each phase builds upon the previous one:

  • Context Building: Each agent adds context that makes subsequent searches more accurate. For example, knowing a company's industry helps the funding agent search in the right venture databases.
  • Data Validation: Later agents can validate and refine data from earlier phases.
  • Efficiency: Prevents redundant searches by sharing discovered information across phases.
  • Parallel Searches Within Phases: While agents run sequentially, each agent performs multiple searches in parallel, maximizing speed.

This architecture balances accuracy with performance - we could run all agents in parallel, but the sequential approach with shared context produces significantly better results.

Extensibility Through Type-Safe Schemas

Each agent uses Zod schemas to ensure type safety and make the system easily extensible:

typescript
// Example: Adding a new field to the FundingAgent
const FundingResult = z.object({
  fundingStage: z.string().optional(),
  totalRaised: z.string().optional(),
  lastRoundAmount: z.string().optional(),
  investors: z.array(z.string()).optional(),
  // Add your new field here:
  debtFinancing: z.string().optional(),
});

To extend Fire Enrich with new data extraction capabilities:

  1. Add to existing agent: Modify the Zod schema in /lib/agent-architecture/agents/[agent-name].ts
  2. Create a new agent: Define a new schema and implement the AgentBase interface
  3. Update the orchestrator: Add routing logic to direct fields to your new agent
  4. Use custom fields: The General Agent handles any field not covered by specialized agents

The field routing system automatically categorizes user requests:

  • Fields with "industry" or "headquarter" → Company Profile Agent
  • Fields with "fund" or "invest" → Financial Intel Agent
  • Fields with "employee" or "revenue" → Metrics Agent
  • Fields with "tech" and "stack" → Tech Stack Agent
  • Everything else → General Purpose Agent

This design allows Fire Enrich to grow with your needs while maintaining type safety and predictable behavior.

Process Flow

  1. Upload & Parse: Upload a CSV with emails. The system extracts the company domain from each email.
  2. Field Selection: Choose the data points you need, from company descriptions to funding stages.
  3. Sequential Agent Execution: Agents activate in phases, each building on previous discoveries for maximum accuracy.
  4. Parallel Searches Per Phase: Within each phase, multiple searches run concurrently using the Firecrawl API.
  5. AI Synthesis: GPT-4o analyzes all findings, resolves conflicts, and extracts structured data.
  6. Real-time Results: Your table populates in real-time, complete with enriched data and source citations.

The Multi-Agent System

Fire Enrich employs a sophisticated orchestration system that coordinates specialized extraction modules. These aren't autonomous AI agents, but rather purpose-built components that work together intelligently:

  • Discovery Phase: Establishes the foundation by identifying the company and its digital presence
  • Profile Extraction: Specialized logic for industry classification and business model analysis
  • Financial Intelligence: Targeted searches across venture databases and news sources
  • Technical Analysis: Deep inspection including HTML parsing and repository analysis
  • Custom Field Handler: Flexible extraction for any user-defined data points

Each module uses GPT-4o for intelligent data extraction, but follows deterministic search patterns optimized through extensive testing. This hybrid approach combines the reliability of structured programming with the flexibility of AI-powered comprehension.

Key Features

  • Phased Extraction System: Sequential modules that build context for increasingly accurate results.
  • Drag & Drop CSV: Simple, intuitive interface to get started in seconds.
  • Customizable Fields: Choose from a list of common data points or generate your own with natural language.
  • Real-time Streaming: Watch your data get enriched row-by-row via Server-Sent Events.
  • Full Source Citations: Every piece of data is linked back to the URL it was found on, ensuring complete transparency.
  • Skip Common Providers: Automatically skips personal emails (Gmail, Yahoo, etc.) to save on API calls and focus on company data.

Configuration & Unlimited Mode

When you clone and run this repository locally, Fire Enrich automatically enables Unlimited Mode, removing the restrictions of the public demo. You can configure these limits in app/fire-enrich/config.ts:

typescript
const isUnlimitedMode = process.env.FIRE_ENRICH_UNLIMITED === 'true' || 
                       process.env.NODE_ENV === 'development';

export const FIRE_ENRICH_CONFIG = {
  CSV_LIMITS: {
    MAX_ROWS: isUnlimitedMode ? Infinity : 15,
    MAX_COLUMNS: isUnlimitedMode ? Infinity : 5,
  },
  REQUEST_LIMITS: {
    MAX_FIELDS_PER_ENRICHMENT: isUnlimitedMode ? 50 : 10,
  },
} as const;

Our Open Source Philosophy

Let's be blunt: professional data enrichment services are expensive for a reason. Our goal with Fire Enrich isn't to replicate every feature of mature platforms overnight. Instead, we want to build a powerful, open-source foundation that anyone can use, understand, and contribute to.

This is just the start. By open-sourcing it, we're inviting you to join us on this journey.

  • Add a new agent? Fork the repo and show us what you've got.
  • Improve a data extraction prompt? Open a pull request.
  • Have a new feature idea? Start a discussion in the issues.

We believe that by building in public, we can create a tool that is more accessible, affordable, and adaptable, thanks to the collective intelligence of the open-source community.

License

MIT License - see LICENSE file for details.

Contributing

We welcome contributions! Please feel free to submit a Pull Request.

Support

For questions and issues, please open an issue in this repository.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

TypeScript

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言