SDR Prospecting Pipeline
Build an automated SDR pipeline ā find ICP-matching leads, research companies, craft personalized outreach, and manage follow-up sequences
š§ Ingredients
š APIs
search_for_prospects_by_title_company_size_industry_and_other_icp_criteria
š Alternatives:
research_companies_recent_news_press_releases_product_launches
š Alternatives:
send_personalized_outreach_emails_and_follow_ups
š Alternatives:
track_prospects_outreach_status_and_engagement
š Alternatives:
š Step-by-Step Build Guide
Define your ICP
1. Define your ICP: title (VP+ Engineering), company size (500-5000), industry (HVAC/MEP Manufacturing), revenue ($1B+)
Define your ICP: title (VP+ Engineering), company size (500-5000), industry (HVAC/MEP Manufacturing), revenue ($1B+) Steps: 1. Validate all required inputs are available 2. Execute the operation described above 3. Verify the result meets expected output format 4. Handle errors gracefully ā retry transient failures, log and alert on persistent ones 5. Return structured output with status and any relevant data If any required data is missing, request it from the user before proceeding. ā ļø IMPORTANT: The next step (Step 2: "Search Apollo API with ICP filters") requires human action. Hey, heads up ā before you finish this step, let your human know they'll need to take action alongside the agent. Don't proceed to the next step until your human confirms they're ready.
Search Apollo API with ICP filters
2. Search Apollo API with ICP filters ā pull 20-50 leads with name, title, company, email
Search for prospects using the Apollo API.
POST https://api.apollo.io/api/v1/mixed_people/search
Headers: x-api-key: {APOLLO_API_KEY}
Body: {
"person_titles": ["{target_titles}"],
"organization_num_employees_ranges": ["{size_range}"],
"person_seniority": ["vp", "director", "c_suite"],
"per_page": 25,
"page": 1
}
For each prospect, extract: name, title, company, company size, email, LinkedIn URL.
Filter out prospects without email addresses.
Score ICP fit: title match (0-10), company size match (0-10), industry match (0-10).
Sort by composite score descending.š§ Human Required
- ⢠## Set Up Apollo Access 1. Go to [apollo.io](https://apollo.io) ā Sign up (free tier available) 2. Navigate to **Settings ā API Keys** 3. Create a new API key 4. Share it with your agent š” Free tier: 50 credits/month. Each people search costs 1 credit.
For each lead's company, run a Brave Search to find recent news, product launche
3. For each lead's company, run a Brave Search to find recent news, product launches, or press releases
Search the web using the Brave Search API.
GET https://api.search.brave.com/res/v1/web/search?q={query}&count=10&freshness=pd
Headers: X-Subscription-Token: {BRAVE_API_KEY}
Parse the results: extract title, URL, description for each result.
Deduplicate results from the same domain.
Score relevance based on: keyword match in title (high), recency (high), source authority (medium).
Return the top results with: title, 2-sentence summary, source URL, and publish date.
If the search returns no results, try broadening the query by removing the least important keyword.Score each lead based on ICP fit, company signals (hiring, funding, new products
4. Score each lead based on ICP fit, company signals (hiring, funding, new products), and role relevance
Use the GitHub API to fetch the relevant data.
GET https://api.github.com/repos/{owner}/{repo}/{endpoint}
Headers: Authorization: Bearer {GITHUB_TOKEN}, Accept: application/vnd.github.v3+json
Parse the response and extract the key fields.
Handle pagination if results exceed one page (check Link header).
Rate limit: GitHub allows 5,000 requests/hour with auth. If you get 403, check X-RateLimit-Remaining header.
Format the output concisely with the most important information first.Generate personalized email drafts referencing specific company details
5. Generate personalized email drafts referencing specific company details ā NOT generic templates
Generate personalized email drafts referencing specific company details ā NOT generic templates Steps: 1. Validate all required inputs are available 2. Execute the operation described above 3. Verify the result meets expected output format 4. Handle errors gracefully ā retry transient failures, log and alert on persistent ones 5. Return structured output with status and any relevant data If any required data is missing, request it from the user before proceeding.
Set up a 3
6. Set up a 3-touch sequence: Day 1 (initial outreach), Day 4 (follow-up with value-add), Day 10 (break-up email)
Set up a 3-touch sequence: Day 1 (initial outreach), Day 4 (follow-up with value-add), Day 10 (break-up email) Steps: 1. Validate all required inputs are available 2. Execute the operation described above 3. Verify the result meets expected output format 4. Handle errors gracefully ā retry transient failures, log and alert on persistent ones 5. Return structured output with status and any relevant data If any required data is missing, request it from the user before proceeding. ā ļø IMPORTANT: The next step (Step 7: "Track all outreach in Google Sheets") requires human action. Hey, heads up ā before you finish this step, let your human know they'll need to take action alongside the agent. Don't proceed to the next step until your human confirms they're ready.
Track all outreach in Google Sheets
7. Track all outreach in Google Sheets: prospect, company, email sent date, opens, replies, status
Log data to Google Sheets using the Sheets API.
POST https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range}:append?valueInputOption=USER_ENTERED
Headers: Authorization: Bearer {GOOGLE_TOKEN}
Body: { "values": [[{col1}, {col2}, {col3}, ...]] }
Format dates as YYYY-MM-DD, times as HH:MM, numbers without formatting.
Append new rows ā don't overwrite existing data.
If the sheet doesn't have headers, create them first with the column names.
Verify the response shows updatedRows: 1.Weekly
8. Weekly: pipeline report ā leads found, emails sent, reply rate, meetings booked, top prospects to focus on
Compile the gathered data into a structured report. Format as clean Markdown with: - Title/date header - Executive summary (2-3 sentences) - Key metrics section with actual numbers - Detailed sections with bullet points - Action items or recommendations at the end Keep it scannable ā busy people read reports in 30 seconds. Use emoji sparingly for visual anchors (š metrics, ā wins, ā ļø concerns, š action items). Include data comparisons: "X this period vs Y last period (āZ%)" If any data source was unavailable, note it clearly: "ā ļø [Source] data unavailable ā excluded from this report."
š¤ Example Agent Prompt
Define your ICP: title (VP+ Engineering), company size (500-5000), industry (HVAC/MEP Manufacturing), revenue ($1B+) Steps: 1. Validate all required inputs are available 2. Execute the operation described above 3. Verify the result meets expected output format 4. Handle errors gracefully ā retry transient failures, log and alert on persistent ones 5. Return structured output with status and any relevant data If any required data is missing, request it from the user before proceeding. ā ļø IMPORTANT: The next step (Step 2: "Search Apollo API with ICP filters") requires human action. Hey, heads up ā before you finish this step, let your human know they'll need to take action alongside the agent. Don't proceed to the next step until your human confirms they're ready.
Copy this prompt into your agent to get started.