Outbound · Signal Intelligence

Signal-based cold outbound
in one session.

5 tools. One session. Signal-based list. Insight-led copy. Not pasting a raise into line 1.

By Avinash Raju July 2026 10 min read

This is the exact workflow. No Sales Nav scrapes. No CSV exports. No cross-tool copy-pasting. Five tools, routed through a single session, that take a company universe to a live campaign with personalized, insight-led openers.

The core idea is simple but most people get it wrong: signal-based outbound isn't about referencing the signal. It's about inferring what the signal means about the company's situation right now, and reaching out on the meaning, not the mention.


Section 01The inference framework: meaning vs. mention

Core conceptDon't cite the signal. Infer what it means about their situation, and open on that.

The most common signal-based outbound mistake: a company just raised $12M, so you open with "Congratulations on your Series A." That's noise. Every vendor in their inbox did the same thing on the same day. You're not standing out, you're confirming you use Apollo alerts.

Signal-based outbound that works starts one step later. The signal tells you what happened. Inference tells you what that implies. What does raising $12M for a B2B SaaS company at that stage, with those open roles, typically mean about their next 90 days?

It usually means they have a hiring plan, a board expectation on pipeline, a VP of Sales either recently hired or actively interviewing, and a GTM infrastructure gap they are going to need to fill before quarter end. That's the insight. That's what you open on.

The inference ladderSignal (what happened) → Situation (what this implies about their current state) → Urgency (what they probably need to do in the next 30–90 days) → Hook (the sentence you open with, written about the urgency, not the signal).

The prompts in Section 5 (Claude Code) run this inference ladder automatically, given the right signal data going in.


Section 02Tool 1: PredictLeads — pull the signal universe

OperationPull companies that just raised and are actively hiring for the exact role your offer supports.

PredictLeads tracks company-level events: fundraising rounds, job postings, technology changes, leadership hires, and more. The combination that matters for most B2B outbound is raise + hiring signal. A company that just raised and is hiring for a role adjacent to your offer has both the budget event and the capacity signal. That's your window.

Prerequisite setupPredictLeads account with API access. Know the job title(s) adjacent to your offer (e.g., "Head of Sales," "VP of Marketing," "Director of Revenue Operations"). Know the funding stage range that fits your ICP.

In PredictLeads, filter for companies that have:

  • A fundraising event in the last 30–90 days (seed through Series B for SMB/mid-market offers; Series C+ for enterprise)
  • Active job postings for one or more roles that signal your buyer is in seat or being hired
  • Employee count in your ICP range
  • Industry filters applied (exclude agencies, consulting, staffing if that's not your ICP)

Export the company list as a CSV: company name, domain, funding stage, funding amount, funding date, hiring signal (which role), employee count. This becomes the input for Tool 2.

Pro tipThe hiring signal column is what Claude Code uses in Section 5 to infer the right opening angle per company. Don't strip it from the export. The more specific the job title, the sharper the inference Claude can make.

Section 03Tool 2: AI Ark + Lead Magic via Deepline — find decision-makers

OperationTake the company universe from PredictLeads and surface the right decision-maker at each company in a single Deepline call.

Deepline routes multiple enrichment tools through one API call, so you get company universe + verified decision-makers without managing three separate tool integrations. For this stack, you're routing through AI Ark (company-level data) and Lead Magic (contact-level data) in the same pass.

Prerequisite setupDeepline account with AI Ark and Lead Magic enabled. Have your PredictLeads company CSV ready. Know the buyer persona: which title(s) at these companies are the actual decision-makers for your offer.

Pass the company domain list from PredictLeads into Deepline. Configure the lookup to return:

  • Decision-maker name and title (filter by the persona titles that match your ICP)
  • LinkedIn URL (for manual verification if needed)
  • Company headcount at the time of lookup
  • Primary domain (used by Findymail in Tool 3)

The output is a combined CSV: company signals from PredictLeads + contact data from Deepline. One file. Everything needed for verification and copy writing is already in it.

Pro tipPull 2–3 contacts per company when possible (e.g., Head of Sales + CEO for a small company). Claude Code in Section 5 will prioritize them by decision-making authority. More contacts per company = more shots if the primary bounces or goes cold.

Section 04Tool 3: Findymail via Deepline — email verification

OperationVerify every email in the contact list before it touches the sequencer. Bounce rate is a sender reputation problem.

Findymail catches what the primary stack missed. AI Ark and Lead Magic return contact data with confidence scores, but confidence isn't verification. Findymail runs a live verification pass and returns a clean status: verified, risky, invalid, or not found. Only verified emails go into Smartlead.

Route Findymail through Deepline in the same session, or run it as a second Deepline call with the combined CSV from Tool 2 as input. The incremental cost is low; the deliverability protection is high.

Prerequisite setupFindymail enabled in your Deepline account (or standalone Findymail API key if running directly). Input: the combined CSV from Tool 2 with first_name, last_name, company_domain columns populated.
I have a contact list at [absolute/path/to/contacts.csv] with columns: first_name, last_name, company_domain, title, company, funding_stage, hiring_signal. For each row, use Findymail to verify the email address. Return: - All original columns preserved - verified_email (the email found, or "not_found") - verification_status (verified / risky / invalid / not_found) - confidence_score (0-100) After processing: 1. Save the full output as contacts_verified.csv 2. Save a filtered version (verified only, confidence ≥ 70) as contacts_clean.csv 3. Report: total contacts processed, verified count, risky count, not_found count, final clean list size, hit rate % contacts_clean.csv is what goes into Claude Code in the next step.
Pro tipSet the confidence threshold at 70, not 80. Above 80 you're leaving 15–20% of real contacts on the floor. Below 70, you start seeing bounces. The 70–80 range is where the catch vs. cost tradeoff is best.

Section 05Tool 4: Claude Code — sort, segment, write openers

OperationTake the verified contact list, sort by signal strength, and write personalized openers using inferred insight from the signal, not the raw signal itself.

This is where the inference framework from Section 1 gets operationalized. Claude Code reads the signal data (funding stage, funding amount, hiring signal, headcount), infers what each signal combination implies about the company's current situation, and writes a personalized opening line for each contact that addresses the implication, not the event.

Prerequisite setupcontacts_clean.csv from Tool 3. Have your offer defined in one sentence: what you do, for whom, with what outcome. Have 1–2 proof points (specific metrics, named clients) to anchor the opener to if needed.
I have a verified contact list at [absolute/path/to/contacts_clean.csv]. Columns: first_name, last_name, title, company, company_domain, verified_email, funding_stage, funding_amount, hiring_signal, employee_count. My offer: [one sentence — what you do, for whom, with what outcome] Proof: [one specific case study metric or named client result] For each contact, do the following: STEP 1 — INFERENCE Read the funding_stage, funding_amount, and hiring_signal for this company. Infer what this combination implies about the company's current GTM situation. Do NOT state the signal directly. Instead, describe the implied urgency or challenge they are probably facing in the next 60–90 days. STEP 2 — SORT AND SEGMENT Score each contact on signal strength (1–10) based on: - Recency: how recent was the funding event? (recent = higher score) - Hiring alignment: how closely does the hiring_signal match the role your offer supports? - ICP fit: does the title + employee_count match a decision-maker at the right company size? STEP 3 — WRITE THE OPENER Write one personalized opening line per contact (under 30 words). The line must: - Reference the inferred situation, not the funding event or job posting - Be written in first person from the sender - Lead toward the offer without stating it - Sound like a human wrote it, not a template Output a CSV with all original columns plus: signal_score, inferred_situation (2–3 sentence internal note), personalized_opener. Sort by signal_score descending. Save to contacts_ready.csv.
Pro tipReview the inferred_situation column before importing to Smartlead. If Claude's inference is off for a cluster of companies (e.g., a funding stage you didn't expect to dominate the list), adjust the prompt and re-run that segment. The inference is only as good as the signal data feeding it.

Section 06Tool 5: Smartlead — sequence setup and launch

OperationImport the ready list into Smartlead, configure the sequence with the personalized openers as custom variables, set warming and schedule, launch.

Smartlead is where the campaign lives. Inbox warming, sending schedule, reply classification, and deliverability monitoring are all managed here. The personalized opener from contacts_ready.csv maps to a custom variable in the sequence template so each send gets its unique first line without manual edits.

Prerequisite setupSmartlead account with at least one warmed inbox (minimum 2–3 weeks of warmup on any new domain). Have your follow-up steps written (the opener from Claude Code handles step 1; write step 2 and step 3 as generic-but-tight follow-ups). Know your send window and daily limits.

In Smartlead:

  • Create a new campaign. Name it with the signal type and date (e.g., "2026-07, Raise+Hiring, Series A, Mid-market SaaS").
  • Import contacts_ready.csv. Map personalized_opener to a custom variable (e.g., {{opener}}).
  • Build the sequence: Step 1 subject line + body that opens with {{opener}}. Step 2 and Step 3 as follow-ups.
  • Set sending schedule: Tuesday–Thursday, 9 AM–4 PM in your prospect's timezone. 30 emails/day/sender account.
  • Enable reply classification. Enable stop-on-reply.
  • Disable open tracking and link tracking (protects deliverability).
  • Review the campaign preview. Verify the custom variable renders correctly on 3–5 sample contacts.
  • Activate.
Pro tipDisable open tracking. The pixel generates a DNS lookup that some spam filters flag, and open rate data on cold outbound is noise anyway. Reply rate and meeting rate are your only real metrics. Optimize for what you can act on.

Section 07The full session, start to send

OperationThe complete workflow in sequence. From signal pull to live campaign in one sitting.

Here's the session as it actually runs:

  1. PredictLeads (15–20 min): Apply filters. Export company universe with signals. Save as companies_signal.csv.
  2. Deepline / AI Ark + Lead Magic (10–15 min): Pass the domain list. Pull decision-makers. Export combined CSV as contacts_raw.csv.
  3. Deepline / Findymail (10 min): Verify emails. Save clean list as contacts_clean.csv.
  4. Claude Code (15–20 min): Run the inference + sorting + opener prompt. Review inferred_situation column. Save contacts_ready.csv.
  5. Smartlead (15 min): Import, build sequence, configure schedule, verify preview, activate.

Total: 60–75 minutes from PredictLeads to live campaign. No engineers. No Clay. No Zapier. One operator, one session.

Simple, not easy. The work is in building the signal filter in PredictLeads tight enough to matter, and reviewing Claude's inference pass before launch. Both take judgment. The tools handle everything else.

Want this built for your offer?

Book a free 30-minute strategy call. We'll map your ICP to the right signal type in PredictLeads, configure the Deepline routing for your stack, and set up the Claude Code inference prompt specific to your offer and proof points, so your first session produces a campaign you can actually launch.

Book A GTM Strategy Call →

← Back to all guides