Resolution
How entity resolution works in the Signal Database, and how to match signals to your existing contact and company records.
When you license the Signal Database, every signal record comes pre-resolved with multiple identifiers. This page explains how resolution works and how to efficiently match signals to your existing data.
How Resolution Works
Unlike the real-time API (which resolves entities on-demand from minimal input), the Signal Database delivers pre-resolved records with all available identifiers populated.
What We Resolve
For each signal, we resolve and include:
Contact-Level Signals:
- Professional email address
- LinkedIn profile URL
- Current company domain
- Current company LinkedIn URL
Company-Level Signals:
- Primary company domain
- Company LinkedIn URL
- Normalized company name
Resolution Sources
We resolve entities by cross-referencing:
- LinkedIn profile data
- Email domain verification
- Company website analysis
- Employment history correlation
- Public business registrations
Matching Signals to Your Data
Recommended Join Keys
Use these fields in order of reliability:
| Priority | Contact Matching | Company Matching |
|---|---|---|
| 1st | contact_email | company_domain |
| 2nd | contact_linkedin_url | company_linkedin_url |
| 3rd | — | company_name (fuzzy match) |
Best Practices
For Contact Matching:
-- Example: Join signals to your contacts table
SELECT
c.id as contact_id,
s.*
FROM signals s
LEFT JOIN contacts c
ON LOWER(s.entity_identifiers.contact_email) = LOWER(c.email)
OR s.entity_identifiers.contact_linkedin_url = c.linkedin_url
WHERE s.entity_type = 'contact'For Company Matching:
-- Example: Join signals to your accounts table
SELECT
a.id as account_id,
s.*
FROM signals s
LEFT JOIN accounts a
ON LOWER(s.entity_identifiers.company_domain) = LOWER(a.domain)
OR s.entity_identifiers.company_linkedin_url = a.linkedin_url
WHERE s.entity_type = 'company'Handling Unmatched Signals
Not every signal will match a record in your database. Unmatched signals are still valuable:
- New prospects: Signals on contacts/companies not yet in your CRM represent potential new leads
- Data enrichment: Use unmatched signals to expand your TAM with pre-qualified targets
- ICP refinement: Analyze which signal types appear for contacts outside your database
Coverage Expectations
Resolution coverage varies by identifier type:
| Identifier | Coverage | Notes |
|---|---|---|
contact_email | 85-95% | Professional emails; personal emails excluded |
contact_linkedin_url | 90-98% | Primary identifier for most contacts |
company_domain | 99%+ | Nearly all companies have a resolvable domain |
company_linkedin_url | 95%+ | Some small businesses may lack LinkedIn presence |
Deduplication
Signals are deduplicated before delivery:
- Same signal, same entity: Only the most recent detection is included
- Refresh window: Signals are refreshed based on their category (see Delivery for cadence)
- Entity merging: If we detect that two records represent the same entity, we merge and deliver under the canonical identifiers
Data Quality
Validation Rules
All signals pass validation before delivery:
- Email addresses are format-validated and domain-verified
- LinkedIn URLs are normalized to canonical format
- Company domains exclude generic providers (gmail.com, etc.)
- Timestamps are standardized to ISO 8601 UTC
Confidence Indicators
For some signal types, we include confidence metadata in the variables object:
{
"variables": {
"resolution_confidence": "high",
"last_verified_at": "2024-12-01T00:00:00Z",
// ... other fields
}
}Comparison: API vs. Signal Database Resolution
| Aspect | Generate Insights API | Signal Database |
|---|---|---|
| Input | Minimal (email OR LinkedIn URL) | N/A (pre-resolved) |
| Resolution | Real-time lookup | Pre-computed |
| Identifiers Returned | Based on what we can resolve | All available identifiers |
| Best For | Point lookups | Bulk ingestion & joining |
Questions?
If you have specific resolution requirements or need custom identifier mapping, contact us at [email protected].
Updated about 3 hours ago
