DEV Community

Alessandro Binda
Alessandro Binda

Posted on • Originally published at score.get-scala.com

How to Enrich Your CRM Data with 272M Company Records (Free API)

Your CRM is full of company names. But how many have verified registration numbers? Up-to-date addresses? Confirmed active status?

Most CRM records are entered manually by sales reps — and they decay fast. Studies show that 30% of B2B data goes stale every year. Enrichment services from ZoomInfo or Clearbit cost thousands per month.

This tutorial shows you how to enrich your CRM data using the S.C.A.L.A. Score API — 272M companies across 265 countries, starting free.

What You'll Build

A pipeline that takes company names from your CRM and enriches them with:

  • Official registration number
  • Company status (active/dissolved)
  • Registered address
  • Incorporation date
  • Officers (where available)
  • Industry codes

Method 1: JavaScript Script (Direct API)

Install the SDK:

npm install scala-score
Enter fullscreen mode Exit fullscreen mode

Create an enrichment script:

const ScalaScore = require('scala-score');
const fs = require('fs');

const client = new ScalaScore({ apiKey: process.env.SCORE_API_KEY });

// Your CRM export (CSV with company names and countries)
const companies = [
  { name: 'Bosch', country: 'DE' },
  { name: 'LVMH', country: 'FR' },
  { name: 'Ferrero', country: 'IT' },
  { name: 'Volvo', country: 'SE' },
  { name: 'Nestlé', country: 'CH' }
];

async function enrichCompany(name, country) {
  try {
    const result = await client.search({ name, country, limit: 1 });
    if (result.companies.length > 0) {
      const co = result.companies[0];
      return {
        input_name: name,
        matched_name: co.name,
        registry_id: co.registry_id,
        status: co.status,
        address: co.address,
        incorporation_date: co.incorporation_date,
        country: co.country
      };
    }
    return { input_name: name, matched_name: null, error: 'Not found' };
  } catch (err) {
    return { input_name: name, matched_name: null, error: err.message };
  }
}

async function main() {
  const results = [];
  for (const co of companies) {
    const enriched = await enrichCompany(co.name, co.country);
    results.push(enriched);
    console.log(`OK ${co.name} -> ${enriched.matched_name || 'NOT FOUND'}`);
  }

  // Write results to JSON
  fs.writeFileSync('enriched.json', JSON.stringify(results, null, 2));
  console.log(`\nEnriched ${results.length} companies -> enriched.json`);
}

main();
Enter fullscreen mode Exit fullscreen mode

Output:

OK Bosch -> Robert Bosch GmbH
OK LVMH -> LVMH Moet Hennessy Louis Vuitton SE
OK Ferrero -> Ferrero S.p.A.
OK Volvo -> AB Volvo
OK Nestle -> Nestle S.A.

Enriched 5 companies -> enriched.json
Enter fullscreen mode Exit fullscreen mode

Method 2: n8n Workflow (No Code)

If you use n8n for automation, there's a dedicated Score API node:

npm install n8n-nodes-scala
Enter fullscreen mode Exit fullscreen mode

Workflow Setup

  1. Trigger: Schedule (daily/weekly) or webhook
  2. CRM Node: Read contacts from HubSpot/Salesforce/Pipedrive
  3. Score API Node: Enrich each company
  4. CRM Node: Write enriched data back

In n8n, the workflow looks like this:

[Schedule Trigger]
      |
[HubSpot: Get Companies]
      |
[S.C.A.L.A. Score: Search Company]
      |
[IF: Match Found?]
   | Yes          | No
[HubSpot: Update]  [Flag for Review]
Enter fullscreen mode Exit fullscreen mode

The Score API n8n node handles authentication, pagination, and error handling automatically. Just add your API key in the credentials and connect the nodes.

Method 3: MCP Server (AI-Powered Enrichment)

For AI-assisted workflows, use the Score MCP server:

npx scala-mcp-server
Enter fullscreen mode Exit fullscreen mode

This exposes Score API data to any MCP-compatible AI client (Claude, custom agents, etc.). Your AI assistant can then:

  • Look up companies conversationally
  • Enrich data on the fly during chat
  • Cross-reference multiple sources

Claude Desktop Configuration

Add to your MCP settings:

{
  "mcpServers": {
    "scala-score": {
      "command": "npx",
      "args": ["scala-mcp-server"],
      "env": {
        "SCORE_API_KEY": "your-api-key-here"
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Then ask Claude: "Look up Siemens AG in the Score database and tell me their registration status and address."

Method 4: Python + CSV Export

import requests
import csv

API_KEY = "your-api-key"
BASE_URL = "https://score.get-scala.com/api/v1"

def enrich(name, country):
    response = requests.get(
        f"{BASE_URL}/search",
        params={"q": name, "country": country, "limit": 1},
        headers={"Authorization": f"Bearer {API_KEY}"}
    )
    data = response.json()
    if data.get("companies"):
        return data["companies"][0]
    return None

# Read from CRM export
with open("crm_export.csv") as f:
    reader = csv.DictReader(f)
    companies = list(reader)

# Enrich and write output
with open("enriched.csv", "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["Input Name", "Matched Name", "Registry ID",
                     "Status", "Country", "Address"])

    for co in companies:
        result = enrich(co["name"], co["country"])
        if result:
            writer.writerow([
                co["name"], result["name"], result.get("registry_id", ""),
                result.get("status", ""), result["country"],
                result.get("address", "")
            ])
            print(f"OK {co['name']} -> {result['name']}")
        else:
            writer.writerow([co["name"], "NOT FOUND", "", "", "", ""])
            print(f"MISS {co['name']} -> not found")
Enter fullscreen mode Exit fullscreen mode

How Much Does It Cost?

Enriching 500 CRM records per month: €19/month (Starter plan).

Enriching 5,000 records: €49/month (Growth plan).

Compare that to:

  • ZoomInfo: $15,000+/year
  • Clearbit: $12,000+/year for enrichment
  • D&B: €2-5 per lookup = €1,000-2,500 for 500 records

Score API is 25-130x cheaper for the same company verification data.

Get Started

  1. Sign up free: score.get-scala.com
  2. Get your API key (instant, no credit card)
  3. Choose your integration method:
    • JavaScript: npm install scala-score
    • n8n: npm install n8n-nodes-scala
    • MCP: npx scala-mcp-server
    • REST API: Any language, any platform

50 free lookups/month — enough to prove the value before you spend anything.

Start enriching for free | GitHub SDK

Top comments (0)