What is an outreach agent?
An outreach agent is the influencer-marketing equivalent of what sales teams call a “BDR in a box”. You describe the audience you want to reach in high-level terms (hashtags, follower range, CPM budget), and the agent does the whole stack of work that used to take a junior marketer a week:
- Find creators who actually post about your topic.
- Extract a verified contact email from each creator.
- Filter down to the ones who match your budget and audience size.
- Personalize an offer with a concrete dollar figure per creator.
- Send, at a cadence that doesn't look like spam.
The value isn't one of those steps in isolation — it's that all five run end-to-end in five minutes.
The discovery → send pipeline
1. Hashtag discovery
Apify’s instagram-hashtag-scraper pulls the top N recent posts under each hashtag and extracts the unique creators who posted them. Deduped across all hashtags in the campaign.
2. Profile enrichment
For each creator, instagram-profile-scraper fetches bio, follower count, business email field, and public email field. Usually 0.5–1 second per profile.
3. Email extraction
If Instagram exposes a business/public email, we use it. Otherwise a regex pass over the bio catches explicit addresses and common obfuscations — “name (at) domain (dot) com”, bracketed variants, zero-width-space tricks.
4. Filter & rank
Creators are filtered by follower range (you set a min and a max). Creators with no email are dropped. The remaining list is sorted by follower count so you can see scale at a glance.
5. Personalize & send
Your template is rendered with per-creator variables (name, handle, followers, offer). Resend mails them, throttled to ~400ms per send to avoid spam-filter triggers.
CPM-based personalized offers
The big difference between this agent and a naive mass-mailer is that each email contains a specific dollar offer for that specific creator.
You set one number: the campaign CPM (cost per thousand people reached).
For each creator, the agent estimates per-post reach as followers × 0.30 (30% is a reasonable industry assumption for organic posts in 2026). The offer is then:
Worked examples at $15 CPM:
- 10K followers → 3K reach → $45 per post
- 50K followers → 15K reach → $225 per post
- 100K followers → 30K reach → $450 per post
- 500K followers → 150K reach → $2,250 per post
That number ships in every email as the {{offer}} variable, so your template reads “I can offer $225 per post” to the 50K creator and “I can offer $45 per post” to the 10K creator — automatically.
Template variables
All variables are substituted client-side before the email is sent.
{{name}}
First name if available, otherwise the Instagram handle (“alex”).
{{full_name}}
Full display name from the profile (“Alex Morgan”).
{{handle}}
The @username, formatted with the “@” prefix.
{{followers}}
Human-readable follower count (“52.9K”, “1.2M”).
{{cpm}}
The campaign CPM you set, formatted as currency (“$15.00”).
{{offer}}
The computed per-post offer for this creator (“$225.00”).
{{hashtag}}
The hashtag through which we found this creator (“fitness”).
{{bio}}
The creator’s current Instagram bio, handy for tailored openers.
The stack: Apify + Resend
We picked external providers where they're clearly best-in-class rather than rebuilding them:
Apify — discovery
Apify runs the Instagram scrapers inside a compliant, rate-limit-aware scraping infrastructure. The alternatives (Phyllo, Creator.co, HypeAuditor) are more polished but cost 10–100× more and gate smaller creators behind enterprise tiers. Apify charges ~$2 per 1,000 enriched profiles.
Resend — delivery
Resend is the 2026-default transactional/marketing email API. Great developer experience, React Email templates, per-send responses, 3,000 emails/month free, $0.0004 per send past that. SendGrid is better at 10M+ monthly scale, but Resend wins for everything under that.
Optional providers
If you have an existing stack (Customer.io, Mailgun, Postmark, SES), swap it in — the outreach agent only needs two functions: searchCreators() and sendEmail(). The built-in Apify + Resend path is the fastest to set up.
Fallback mode (no keys)
Missing APIFY_TOKEN? Searches return realistic demo data. Missing RESEND_API_KEY? Sends run in preview mode — logged and marked sent but no email leaves the server. Deliberate design: you can exercise the full flow end-to-end without signing up for anything.
Running your first campaign
1. Pick 3 hashtags
One core (e.g. #fitness), one adjacent (#homeworkout), one long-tail (#strengthtraining30). Broader hashtags return more creators; long-tails return higher email-disclosure rates.
2. Set follower range
Sweet spot for app launches: 10K–100K. Below 10K tends to be lower-commitment accounts; above 100K mostly goes through agencies who won’t reply to cold email.
3. Set CPM
$12–$18 for most categories. Higher if you’re in a premium vertical (finance, B2B SaaS). Lower if you can offer additional value — product, affiliate upside, exclusivity.
4. Write the template
Short subject (“Quick partnership — {{offer}}/post?”). Three-paragraph body. Include the concrete offer. Include an unsubscribe line. Reply-To your actual working inbox, not a no-reply.
5. Send in batches
Review the list. Remove anyone obviously off-brand. Send all — the agent throttles naturally. Expect replies within 6–48 hours; most within 24.
Compliance & etiquette
Outreach to publicly listed emails is legal in most jurisdictions when done thoughtfully, but you still owe recipients a baseline:
- Identify yourself. From-name and From-email should be you or your company, not a generic persona.
- Include a physical address. CAN-SPAM requires it; most other jurisdictions respect it as a sign of good faith.
- Honor opt-outs instantly. Maintain a blocklist so a creator who asks to be removed never gets a future campaign.
- Respect GDPR. For EU-based creators, you need a lawful basis. “Legitimate interest” covers most B2B-style outreach to a professional contact listed on a public bio, but document your reasoning and keep volume reasonable.
- Keep volume human. The agent rate-limits to 10 searches and 100 sends per user per hour. Stay under that and your deliverability stays healthy.