The Problem: Manual Audience Building Doesn't Scale
Building lookalike audiences manually is a multi-hour grind. You export CSVs from your CRM, clean the email column, hash them with SHA-256, upload to each platform separately, wait for matching, then create lookalikes. For a startup with 1,000–5,000 contacts, this takes hours per platform.
Multiply that by four platforms (Google, Meta, TikTok, LinkedIn) and you're spending an entire day on what should be a pipeline step. And the moment your contact list changes, the audiences are stale.
Synter eliminates the entire manual workflow. Its AI agents aggregate contacts from every source you have, deduplicate them, hash for compliance, upload to every platform in parallel, and create lookalikes once the seed audience reaches each platform's minimum threshold.
How Synter Solves This: The 5-Step Pipeline
Step 1: Aggregate
Synter pulls contacts from multiple sources simultaneously: your product database (signups, waitlist), CRM (Attio, HubSpot), and enrichment tools (Hunter, Apollo, BuiltWith). No manual exports. Synter connects directly to each source and pulls in parallel.
Step 2: Enrich
Synter uses Hunter domain search to find marketing professionals at ICP companies — agencies, SaaS, martech. In one session we pulled 1,507 emails from 27 domains. Apollo fills in titles and seniority. BuiltWith identifies tech stack for targeting precision.
Step 3: Deduplicate & Hash
All sources are combined, deduplicated by normalized email, validated for format (reject malformed addresses), and SHA-256 hashed for platform compliance. Every ad platform requires hashing before upload — Synter handles this automatically.
Step 4: Upload
Batch upload to ad platforms (TikTok, Meta, Google, LinkedIn) via their native APIs. Synter handles the wildly different API quirks per platform — TikTok's three-step file upload flow, Meta's batched Custom Audiences API, Google's OfflineUserDataJobService, LinkedIn's DMP segments.
Step 5: Create Lookalike
Once the seed audience reaches each platform's minimum (1,000 for TikTok, 100 for Meta, 1,000 for Google, 300 for LinkedIn), Synter creates lookalike audiences for each target geo. The entire pipeline runs from a single agent command.
Real Numbers from Our Pipeline
Here's what Synter pulled together in a single session for our own audience building:
Unique emails after dedup
Aggregated simultaneously
Enriched via Hunter
| Source | Emails | Notes |
|---|---|---|
| Product DB (signups) | 963 | Direct from PostgreSQL |
| Waitlist | 1,066 | Pre-launch signups |
| Attio CRM | 639 | Sales pipeline contacts |
| Hunter (27 marketing/SaaS domains) | 1,507 | ICP enrichment |
| Total unique after dedup | 3,243 |
TikTok matched approximately 20% of the seed audience (expected to increase as their identity graph processes the data over 24–48 hours). Meta typically matches 40–60% of email lists. With 3,243 unique emails, we cleared every platform's minimum threshold for lookalike creation on the first upload.
Platform-Specific Quirks Synter Handles
Each ad platform has a different audience upload API. Here's what Synter deals with so you don't have to:
TikTok: 3-Step File Upload
TikTok requires a file upload to create the audience, then a separate call to create the custom audience object, then a batch append call to populate it. Most platforms handle this in one call — TikTok needs three.
Min lookalike size: 1,000 matched users
Meta: Custom Audiences API
Meta uses SHA-256 hashed emails sent in batches of 10,000 via the Custom Audiences API. Synter handles the batching, hashing, and progress tracking. Match rates typically hit 40–60%.
Min lookalike size: 100 (recommend 1,000+)
Google: OfflineUserDataJobService
Google Customer Match uses the OfflineUserDataJobService — a job-based API where you create a job, add operations in batches, then run the job. Synter manages the full lifecycle.
Min lookalike size: 1,000 matched users
LinkedIn: DMP Segments
LinkedIn Matched Audiences use DMP segments with a two-step create-then-populate flow. LinkedIn also supports company name matching for ABM lists, which Synter leverages when emails aren't available.
Min lookalike size: 300 members
Under the Hood: API Calls
Here's what Synter executes behind the scenes. These are the actual API patterns the agent uses for each platform:
Google Customer Match
# Google Ads API — OfflineUserDataJobService
# Synter handles this via google_ads_create_customer_match.py
POST /tools/run
{
"script_name": "google_ads_create_customer_match",
"platform": "GOOGLE",
"args": [
"--audience-name", "ICP Seed - Q1 2026",
"--emails", "sha256_hash_1,sha256_hash_2,...",
"--membership-lifespan", "540"
]
}
# The script:
# 1. Creates UserList with CRM_BASED membership type
# 2. Creates OfflineUserDataJob linked to the list
# 3. Adds hashed emails in batches of 100,000
# 4. Runs the job and polls for completionMeta Custom Audiences
# Meta Graph API — Custom Audiences
POST /{ad_account_id}/customaudiences
{
"name": "ICP Seed - Q1 2026",
"subtype": "CUSTOM",
"customer_file_source": "USER_PROVIDED_ONLY"
}
# Then populate with SHA-256 hashed emails:
POST /{custom_audience_id}/users
{
"payload": {
"schema": ["EMAIL_SHA256"],
"data": [
["a1b2c3..."], // pre-hashed
["d4e5f6..."]
]
}
}
# Synter batches in groups of 10,000 for large listsTikTok Audience Upload
# TikTok Ads API — 3-step audience creation
# Step 1: Upload hashed email file
POST /open_api/v1.3/dmp/custom_audience/file/upload/
Content-Type: multipart/form-data
file: emails_sha256.csv
file_signature: <md5_hash>
# Step 2: Create custom audience
POST /open_api/v1.3/dmp/custom_audience/create/
{
"advertiser_id": "...",
"custom_audience_name": "ICP Seed - Q1 2026",
"audience_type": "customer_file",
"file_paths": ["<path_from_step_1>"]
}
# Step 3: Wait for processing (polling)
# TikTok processes matches asynchronously — ~20% initial match rateLinkedIn Matched Audiences
# LinkedIn Marketing API — DMP Segments
# Step 1: Create audience
POST /rest/dmpSegments
{
"name": "ICP Seed - Q1 2026",
"sourcePlatform": "FIRST_PARTY",
"type": "USER",
"destinations": [
{"destination": "LINKEDIN"}
]
}
# Step 2: Add members (SHA-256 hashed emails)
POST /rest/dmpSegments/{segment_id}/users
{
"elements": [
{"userIds": [{"idType": "SHA256_EMAIL", "idValue": "a1b2c3..."}]},
{"userIds": [{"idType": "SHA256_EMAIL", "idValue": "d4e5f6..."}]}
]
}The Growth Engine Integration
The audience pipeline doesn't exist in isolation. It plugs directly into Synter's growth engine, which feeds it with high-quality contacts from multiple discovery channels:
Sumble: Hiring Signals
Synter monitors Sumble for companies hiring for marketing, growth, and paid media roles. These companies are actively investing in advertising — ideal prospects for your seed audience.
Hunter: Email Discovery
Domain search across your ICP verticals. In our pipeline, 27 marketing and SaaS domains yielded 1,507 verified professional emails. These feed directly into the audience upload.
BuiltWith: Tech Stack
Identify companies using competitor tools or complementary technology. A company running HubSpot + Google Ads but not a campaign management platform? That's your ICP.
Apollo: Contact Enrichment
Fill in titles, seniority levels, and direct emails for contacts discovered through other channels. Richer data means better matching and more precise lookalikes.
The output of the growth engine — a deduplicated, enriched contact list — becomes the input for the audience pipeline. Synter orchestrates both sides, so new contacts discovered today are in your ad platform audiences tomorrow.
The Full Pipeline in One Command
Here's what a single agent session looks like. You tell Synter what you want, and it handles every step:
Agent prompt:
"Build a seed audience from our signups, waitlist, Attio CRM,
and Hunter enrichment for marketing/SaaS domains. Upload to
TikTok, Meta, Google, and LinkedIn. Create lookalikes for US."
Synter executes:
1. Query product DB → 963 emails
2. Query waitlist → 1,066 emails
3. Pull Attio contacts → 639 emails
4. Hunter domain search (27 domains) → 1,507 emails
5. Deduplicate → 3,243 unique emails
6. Validate email format → 3,201 valid
7. SHA-256 hash all emails
8. Upload to TikTok (3-step flow) → audience created
9. Upload to Meta (Custom Audiences API) → audience created
10. Upload to Google (OfflineUserDataJobService) → audience created
11. Upload to LinkedIn (DMP Segments) → audience created
12. Create lookalike on Meta (1% US) → ready
13. Create lookalike on Google (similar audiences) → ready
14. Check TikTok min threshold (1,000) → pending match processing
15. Check LinkedIn min threshold (300) → lookalike created
Total time: ~4 minutes
Manual equivalent: ~6 hours across 4 platformsWhy This Matters for Startups
If you have 1,000–5,000 contacts, you're sitting on the most valuable targeting data you own. First-party data consistently outperforms interest-based and demographic targeting because these people already know your brand.
The problem was never the data — it was the operational overhead of getting it into ad platforms. Synter reduces that from hours of manual work to a single command, and keeps the audiences in sync as your contact list grows.
Pro tip: Start with your highest-intent contacts as the seed audience — paid customers and active trial users. The lookalikes will be significantly better than seeds built from newsletter subscribers or cold outreach lists.
Get Started
The audience pipeline is live today. Connect your data sources, tell Synter to build your audiences, and have lookalikes running across four platforms in under 10 minutes.
- Create a Synter account (free, includes 1,000 credits)
- Connect your ad platforms at Settings > Credentials
- Tell the agent: “Build a seed audience from my signups and CRM, upload to Meta and Google, and create lookalikes for US.”
Questions? Reach out at joel@synterai.com.