Back to Use Cases
Linkup

How to enrich your CRM with Linkup

Automate company and contact research to populate your CRM with firmographic data, funding history, key personnel, and more.

Overview

CRM enrichment is one of the most impactful applications of Linkup's agentic search. Instead of manually researching companies and contacts, you can automate the process of gathering firmographic data, funding history, key personnel, and more - directly into structured formats ready for your CRM.

Why Linkup for CRM enrichment?

structuredOutput

Returns data in JSON schemas that map directly to your CRM fields

deep search

Gathers comprehensive company profiles in a single API call

agentic retrieval

Finds data across websites, LinkedIn, news, and databases

Configuration

Recommended settings for CRM enrichment

ParameterValueWhy
depthdeepCompany research requires multiple retrieval steps
outputTypestructuredOutputReturns data in your exact CRM schema

Use Cases

Practical examples with prompts and schemas

1

Company Enrichment

Enrich company records with firmographic data, funding information, and business descriptions.

Prompt- company-enrichment
You are an expert B2B data researcher. Your task is to gather comprehensive company information for CRM enrichment.

Target company: {company_name}
Domain: {company_domain}

Execute the following steps:

1. First, scrape the company's website ({company_domain}) to extract:
   - Company description and value proposition
   - Products/services offered
   - Any visible client logos or case studies

2. Search for the company's LinkedIn profile and extract:
   - Employee count
   - Headquarters location
   - Industry classification
   - Founded year

3. Search for recent funding announcements or press releases about {company_name} to find:
   - Latest funding round and amount
   - Key investors
   - Recent news or milestones

4. Search for the company's leadership team to identify:
   - CEO/Founder name
   - Other C-level executives

Do not stop until you have attempted all four steps. Return only factual data found—do not infer or estimate.
2

Contact Enrichment

Enrich individual contact records with professional background and current role information.

Prompt- contact-enrichment
You are an expert professional researcher. Your task is to gather information about a business contact for CRM enrichment.

Contact: {contact_name}
Company: {company_name}

Execute the following steps:

1. Search for {contact_name} working at {company_name} on LinkedIn to find:
   - Current job title
   - Professional summary
   - Time in current role

2. Search for any public speaking engagements, podcast appearances, or articles authored by {contact_name} to understand their areas of expertise.

3. Search for {contact_name} in recent news or press releases related to {company_name}.

Return only verified, publicly available information. Do not fabricate or assume details.
3

Lead Scoring Data

Gather signals that help prioritize leads based on buying intent, company health, and fit.

Prompt- lead-scoring
You are a B2B sales intelligence analyst. Your task is to gather data points that indicate buying readiness and company health for our sales lead scoring team.

Company: {company_name}
Domain: {company_domain}

Search for and compile the following signals:

1. Recent hiring activity: Search for job postings from {company_name} on their careers page, job boards, or LinkedIn. Note roles being hired.

2. Funding and growth signals: Search for recent funding rounds, revenue milestones, or expansion announcements.

3. Technology signals: Scrape {company_domain} to identify technologies in use (look for integrations mentioned, tech stack references, or tools listed).

4. Trigger events: Search for recent news about {company_name} including new product launches, leadership changes, or strategic initiatives.

Focus on factual signals only. Do not generate scores—return the raw data points.

Best Practices

Tips for getting the best results

Do's

  • 1Use deep search for comprehensive company profiles
  • 2Be explicit about the sequence of searches
  • 3Specify exact fields you need
  • 4Include the domain when available
  • 5Use structuredOutput with a matching schema
x

Don'ts

  • 1Don't use vague prompts - be specific
  • 2Don't ask for inferences - request factual data
  • 3Don't skip the schema - you'll get unstructured text
Pro Tip
Always test your enrichment prompts with a few sample companies before running batch operations.

Integration Patterns

How to integrate enrichment into your workflow

Batch Enrichment

For enriching many records at once

  1. Queue company/contact records that need enrichment
  2. Call Linkup API for each record with structuredOutput
  3. Map returned JSON directly to CRM fields
  4. Flag records where key fields returned null

Real-Time Enrichment

For enriching new leads as they arrive

  1. Trigger Linkup API call when a new lead is created
  2. Use standard depth for quick enrichment
  3. Optionally trigger deep search asynchronously
  4. Update CRM record as data returns

Periodic Refresh

For keeping existing records current

  1. Schedule enrichment runs for stale records
  2. Use date filters to find only recent changes
  3. Compare new data and flag changes for review

Sample Code

Python example for company enrichment

enrich_company.py
import requests
import json

def enrich_company(company_name: str, domain: str, api_key: str) -> dict:
    prompt = f"""
    You are an expert B2B data researcher. Gather comprehensive company information.

    Target company: {company_name}
    Domain: {domain}

    1. Scrape {domain} for company description, products, and visible clients.
    2. Find LinkedIn profile for employee count, HQ location, industry, founded year.
    3. Search for recent funding announcements about {company_name}.
    4. Find CEO and key leadership names.

    Return only factual data found.
    """

    schema = {
        "type": "object",
        "properties": {
            "company_name": {"type": "string"},
            "description": {"type": "string"},
            "industry": {"type": "string"},
            "employee_count": {"type": "string"},
            "headquarters": {"type": "string"},
            "founded_year": {"type": "integer"},
            "latest_funding": {"type": "string"},
            "ceo_name": {"type": "string"},
            "known_clients": {"type": "array", "items": {"type": "string"}}
        }
    }

    response = requests.post(
        "https://api.linkup.so/v1/search",
        headers={"Authorization": f"Bearer {api_key}"},
        json={
            "q": prompt,
            "depth": "deep",
            "output_type": "structured",
            "structuredOutputSchema": json.dumps(schema)
        }
    )

    return response.json()
python