Weekly Apollo to HeyReach prospect refill with Slack approval

By General Input

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.

Integrations

  • Apollo
  • HeyReach
  • Slack Bot

Type

Agentic Task

Categories

  • Sales

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.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them