Match Contacts
Upload an Excel file with contact details to match each person directly via Apollo
/people/match, structure results with Claude, and save to CRM.
ℹ How it works
What this tool does
For each contact in your file, the agent:
- If
linkedin_urlis provided — uses Apollo enrich_by_linkedin_url (most accurate). - Otherwise — matches via Apollo /people/match using name + domain/company.
- Falls back to api_search stub + bulk_match for any unmatched contacts.
- Passes matched data through Claude for structuring (confidence score, department, employment status).
- Saves all matched contacts to the CRM automatically.
Excel columns
| Column | Required | Description |
|---|---|---|
first_name | ✓ | Contact's first name |
last_name | ✓ | Contact's last name |
company_name | Company name (improves matching) | |
company_domain | Domain e.g. acme.com (strongest Apollo signal) | |
job_title | Contact's job title (informational) | |
linkedin_url | LinkedIn profile URL — primary match signal when present | |
email | Known email — passed to Apollo for accurate matching |
Column names are matched case-insensitively. Download the template for the exact format.
Response fields explained
| Field | Meaning |
|---|---|
matched | true when Apollo found the person |
work_email | Verified or unverified work email |
phone | Direct phone number (sync cache) |
apollo_person_id | Apollo's unique ID — use for phone enrichment |
confidence_score | 95 = verified email · 85 = unverified · 70 = no email · 50 = not found |
employment_status | Current / Unverified |
Requirements
- APOLLO_API_KEY — required for contact matching
- ANTHROPIC_API_KEY — required for Claude structuring
- Providing
linkedin_urlorcompany_domainsignificantly improves match accuracy.
1
Step 1
Upload Excel
2
Step 2
Review & Confirm
3
Step 3
Processing
4
Step 4
Results
Upload Excel File
Supported formats: .xlsx, .xls, .csv
Drop your Excel file here
or click to browse — supports .xlsx, .xls, .csv
Required columns:
first_name, last_name.
Optional: company_name, company_domain, job_title,
linkedin_url, email. Column names are matched case-insensitively.
Review Contacts
Request Body — POST /api/v1/match-contacts
Matching contacts…
Querying Apollo and structuring results with Claude.
This may take a moment for large batches — please don't close the tab.
This may take a moment for large batches — please don't close the tab.