Back to Blog
March 22, 2026
AudiencesGrowth EngineeringAI Agents

From CRM to Custom Audiences: How AI Agents Build Lookalike Audiences Automatically

Synter aggregates contacts from your CRM, product DB, and enrichment tools, deduplicates and hashes them, uploads to every ad platform, and creates lookalike audiences — all from a single command.

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:

3,243

Unique emails after dedup

4 sources

Aggregated simultaneously

27 domains

Enriched via Hunter

SourceEmailsNotes
Product DB (signups)963Direct from PostgreSQL
Waitlist1,066Pre-launch signups
Attio CRM639Sales pipeline contacts
Hunter (27 marketing/SaaS domains)1,507ICP enrichment
Total unique after dedup3,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 completion

Meta 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 lists

TikTok 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 rate

LinkedIn 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 platforms

Why 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.

  1. Create a Synter account (free, includes 1,000 credits)
  2. Connect your ad platforms at Settings > Credentials
  3. 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.

Ready to let AI agents run your campaigns?

Start for free with 1,000 credits and launch campaigns across Google, Meta, LinkedIn, Reddit, and more.

From CRM to Custom Audiences: How AI Agents Build Lookalike Audiences Automatically | Synter