Weekly Apollo to HeyReach prospect refill with Slack approval

Every Monday at 9:07am, an agent pulls fresh ICP prospects from Apollo, posts the shortlist to Slack for approval, and loads the approved leads into the right HeyReach campaign.

Agentic Task
ApolloHeyReachSlack BotSalesLead EnrichmentNotifications & AlertsData Sync
PromptCreate

Build an agent-based workflow that refills my LinkedIn outbound batch in HeyReach with fresh ICP-matched prospects from Apollo every Monday, with a Slack approval gate before anyone gets enrolled.

Trigger: cron, every Monday at 9:07am in my local timezone.

What the agent should do, in order:

1. Call Apollo People Search with my ICP filters: target titles, seniority, industries, company headcount range, and geography. Pull enough results to pick a strong weekly batch (e.g. fetch 100, score, keep the top 20 to 30). People Search does not consume Apollo credits, so it is fine to over-fetch and score down.

2. Score each returned person for ICP fit using title match, seniority, company size and industry alignment, and any negative signals (e.g. wrong function, agency / consulting if I exclude those). Keep the top candidates and discard the rest.

3. Dedupe against my existing HeyReach campaign before posting. Call HeyReach Get Leads From Campaign on the target campaign (paginate through all pages) and drop any candidate whose LinkedIn profile URL is already enrolled. This matters because adding an already-enrolled lead to a paused HeyReach campaign reactivates the sequence.

4. Draft the approval message in Slack. Use Slack Bot Send a Message to post to my approvals channel. The message should list each surviving candidate with their full name, company, title, LinkedIn profile URL, and a one-line "why this fits" tied to the ICP criteria. Format it as a numbered list so I can reply with the numbers to drop. End the message with the target HeyReach campaign name and a clear instruction: react with the approval emoji to enroll everyone, or reply with the numbers to skip.

5. Wait for my approval. Watch the Slack thread for either the approval reaction on the original message, or a reply that lists numbers to drop. If I do not respond by end-of-day Monday, do nothing and let next week's run try again.

6. Once approved, call HeyReach Create Empty List to create this week's list. Name it something like "ICP refill YYYY-MM-DD" using the current date. Use the USER_LIST type.

7. Call HeyReach Add Leads To List in batches of up to 100 to load the approved candidates into the new list. Use the LinkedIn profile URL as the primary identifier for each lead. Include company name and title as lead fields.

8. Call HeyReach Add Leads To Campaign for the target campaign to enroll the approved leads. Use the LinkedIn profile URL as primaryUrl. If the campaign needs a linkedInAccountId, use Get All LinkedIn Accounts to look up the sender I have configured.

9. Post a final confirmation message in the same Slack thread: how many were enrolled, how many were skipped as duplicates, and the HeyReach campaign name.

Configuration I will provide when I install this:

- My Apollo ICP filters (titles, seniorities, industries, headcount, geography, and any excludes).

- The HeyReach campaign ID to enroll into, and the connected LinkedIn sender to use.

- The Slack channel to post the approval message in, and the emoji that signals approval (default: white_check_mark).

- The weekly batch size cap (default: 25).

Hard rules: never enroll anyone without an explicit approval signal in Slack. Never call Apollo enrichment endpoints (those cost credits). Never re-add a lead already in the campaign.

What does this prompt do?

  • Pulls a fresh batch of ICP-matched people from Apollo every Monday morning using your title, seniority, industry, headcount, and geography filters.
  • Scores each prospect for fit and posts the top picks to Slack with company, title, LinkedIn profile, and a one-line reason it fits so you can sanity check before anyone gets messaged.
  • After your approval, creates a fresh weekly list in HeyReach, loads in the approved prospects, and enrolls them into the matching campaign so the sequence kicks off automatically.
  • Cross-checks who is already in the campaign and skips duplicates so you do not nudge the same person twice or accidentally reactivate paused sequences.

What do I need to use this?

  • An Apollo account (the master API key from Apollo settings).
  • A HeyReach account with at least one launched campaign and a connected LinkedIn sender.
  • A Slack workspace and a channel where the weekly shortlist should be posted for approval.
  • Your ICP criteria written down: target titles, seniority levels, industries, company size, and geography.

How can I customize it?

  • Change the schedule. Monday at 9:07am is a default, but you can run it any day and time, or switch to a different cadence like Tuesday and Thursday.
  • Adjust the ICP filters. Swap in different titles, seniority bands, industries, headcount ranges, or regions, and tune the batch size to match how many touches your reps can absorb.
  • Change which Slack channel receives the shortlist and how approvals are signaled (an emoji reaction, a reply, or a specific keyword).
  • Point at a different HeyReach campaign or rotate between campaigns by ICP segment, region, or assigned LinkedIn sender.

FAQs

Does this burn through my Apollo credits?
No. The agent uses Apollo People Search, which does not consume Apollo credits and is designed for ICP discovery. Credits are only used when you separately choose to enrich a contact for email or phone, which this workflow does not do.
Will it message someone who is already in my HeyReach campaign?
No. Before adding anyone, the agent pulls the current roster of leads already in your campaign and filters those out. This also prevents the side effect where adding existing leads to a paused HeyReach campaign would silently reactivate it.
What happens if I do not approve the Slack shortlist?
Nothing gets added to HeyReach. The approval step is a hard gate. If you skip a week or want to swap out a few names, you can ignore the post or reply with which prospects to drop, and the agent will only enroll the ones you confirm.
Can I run this with multiple LinkedIn senders or different campaigns per segment?
Yes. You can tell the agent to route enterprise prospects to one campaign and SMB to another, or to rotate across a pool of connected LinkedIn senders. Just describe the routing rules when you set it up.
Do I need a specific Apollo plan?
You need an Apollo plan that allows API access and lets you create a master API key. People Search itself is available across plans and does not draw credits, so most paid Apollo tiers are sufficient for this workflow.

Related templates

A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
Slack Bot
Agentic Task
LiveChat coverage board for planning next week's shifts

See the exact hours your chat queue backs up and customers give up waiting, then plan next week's shifts before it happens again.

LiveChat
Slack Bot
General Input Database
App

Stop hand picking outbound prospects every Monday morning.

Connect Apollo, HeyReach, and Slack once, and Geni refills your weekly outbound batch with a human approval step every Monday at 9:07am.