FutureSearch Logofuturesearch
  • Solutions
  • Pricing
  • Research
  • Docs
  • Evals
  • Blog
  • Company
  • Try it for free
FutureSearch Logo

General inquiry? You can reach us at hello@futuresearch.ai.

Company

Team & CareersPressPrivacy PolicyTerms of Service

Developers

SDK DocsAPI ReferenceCase StudiesGitHubSupport

Integrations

Claude CodeCursorChatGPT CodexClaude.ai

Follow Us

X (Twitter)@dschwarz26LinkedIn
FutureSearchdocs
Your research team
Installation
  • All install methods
  • Claude.ai
  • Claude Code
  • Web App
  • Python SDK
  • Skill
Reference
  • API Key
  • classify
  • dedupe
  • forecast
  • merge
  • rank
  • agent_map
  • MCP Server
  • Progress Monitoring
  • Chaining Operations
Guides
  • LLM-Powered Data Labeling
  • Add a Column via Web Research
  • Classify and Label Rows
  • Deduplicate Training Data
  • Error Handling
  • Filter a Dataset Intelligently
  • Find Profitable Prediction Market Trades
  • Forecast Outcomes for a List of Entities
  • Value a Private Company
  • Join Tables Without Shared Keys
  • Rank Data by External Metrics
  • Resolve Duplicate Entities
  • Scale Deduplication to 20K Rows
  • Turn Claude into an Accurate Forecaster
Case Studies
  • Deduplicate Contact Lists
  • Deduplicate CRM Records
  • Enrich Contacts with Company Data
  • Forecast a Sum-of-the-Parts SpaceX IPO Valuation
  • Forecast Anthropic and OpenAI IPO Valuations
  • Forecast Founder Seed Valuations for AI Researchers
  • Forecast When Anthropic and OpenAI Will IPO
  • Fuzzy Match Across Tables
  • Link Records Across Medical Datasets
  • LLM Cost vs. Accuracy
  • Merge Costs and Speed
  • Merge Thousands of Records
  • Multi-Stage Lead Qualification
  • Research and Rank Web Data
  • Run 10,000 LLM Web Research Agents
  • Score Cold Leads via Web Research
  • Score Leads from Fragmented Data
  • Screen 10,000 Rows
  • Screen Job Listings
  • Screen Stocks by Economic Sensitivity
  • Screen Stocks by Investment Thesis
FutureSearchby futuresearch
by futuresearch

Enrich Contacts with Company Data

Merging contact records with fund data breaks when "Bridgewater" needs to match "Bridgewater Associates" and "D.E. Shaw" needs to match "D. E. Shaw & Co." This case study demonstrates fuzzy matching that understands company name conventions.

MetricValue
Rows processed10
Matched10 (100%)
Total cost$0.00
Time9 seconds

Add FutureSearch to Claude Code if you haven't already:

claude mcp add futuresearch --scope project --transport http https://mcp.futuresearch.ai/mcp

With both CSVs in your working directory, tell Claude:

Merge crm_contacts.csv with crm_funds.csv. Match contacts to their fund based
on company name, ignoring legal suffixes (LLC, Inc, LP), abbreviations
(Mgmt = Management, Tech = Technologies), and extra descriptors.

Claude calls FutureSearch's merge MCP tool:

Tool: futuresearch_merge
├─ task: "Match contacts to their associated fund/company..."
├─ left_csv: "/Users/you/crm_contacts.csv"
├─ right_csv: "/Users/you/crm_funds.csv"
├─ merge_on_left: "company_name"
├─ merge_on_right: "fund_name"
└─ relationship_type: "one_to_one"

→ Submitted: 10 rows for merging.
  Session: https://futuresearch.ai/sessions/8e2eb233-e2cb-4144-b949-0e4fb4962cb2

Tool: futuresearch_results
→ Saved 10 rows to /Users/you/merged_contacts.csv

All 10 matched in 9 seconds for $0.00. View the session.

Add the FutureSearch connector if you haven't already. Then upload crm_contacts.csv and crm_funds.csv and ask Claude:

Merge crm_contacts.csv with crm_funds.csv. Match contacts to their fund based on company name, ignoring legal suffixes (LLC, Inc, LP), abbreviations (Mgmt = Management, Tech = Technologies), and extra descriptors.

Go to futuresearch.ai/app, upload crm_contacts.csv and crm_funds.csv, and enter:

Merge crm_contacts.csv with crm_funds.csv. Match contacts to their fund based on company name, ignoring legal suffixes (LLC, Inc, LP), abbreviations (Mgmt = Management, Tech = Technologies), and extra descriptors.

pip install futuresearch
export FUTURESEARCH_API_KEY=your_key_here  # Get one at futuresearch.ai/app/api-key
import asyncio
import pandas as pd
from futuresearch import create_session
from futuresearch.ops import merge

contacts_df = pd.read_csv("crm_contacts.csv")
funds_df = pd.read_csv("crm_funds.csv")

async def main():
    async with create_session(name="CRM Merge Workflow") as session:
        result = await merge(
            session=session,
            task="""
                Match contacts to their associated fund/company.
                Company names may vary between tables. Match on core company name,
                ignoring legal suffixes, abbreviations, and descriptors.
            """,
            left_table=contacts_df,
            right_table=funds_df,
            merge_on_left="company_name",
            merge_on_right="fund_name",
        )
        return result.data

merged = asyncio.run(main())

Results

ContactCompany (left)Fund (right)
John SmithBridgewaterBridgewater Associates
Sarah JohnsonCitadel LLCCitadel
Jessica WangD.E. ShawD. E. Shaw & Co.
Robert BrownPoint72 Asset MgmtPoint72 Asset Management
Amanda WilsonRenaissance TechRenaissance Technologies

The merge cascade handled all variations (abbreviations, suffixes, spacing) via fuzzy matching without needing LLM calls. When simpler methods work, FutureSearch uses them.