Sales · 02 · Outbound at scaleLesson 1 of 4
Signals: catching the buying moment
- Monitor funding, hiring, and tech-change signals
- Build the signal-watcher that feeds your pipeline
Timing beats targeting
What you're building today: a hiring-signal sweep running weekly against your real target accounts, appending signal notes to your CRM - plus a routing rule so every hit gets acted on within 48 hours.
Two identical companies, same ICP score. One raised a round last month and posted three SDR job ads this week. The other did neither. Same fit, completely different reply odds - because one of them has budget, urgency, and a reason to talk right now.
That's the signal layer: events that tell you WHEN a fit account becomes a live account. The 2026 benchmark data is unambiguous about the direction - elite outbound leads with intent timing, not list size. Your rubric already reserves 30 of 100 points for signal recency (funding under 90 days, relevant hires under 60). This lesson builds the machinery that fills those fields automatically, so fresh signals reach your pipeline within days of happening, not at next quarter's list refresh.
The signal menu
Five signal families matter for most B2B teams. Pick two to start - the ones that best predict YOUR closed-won deals - and add more once the first two are flowing.
- Funding - the course route: Apollo company search filtered on funding stage and date - already in your stack, no new vendor. Price it first: company search costs 1 credit per page of 100 and returns thin fields (name, domain, LinkedIn, founding year), so use it to discover WHICH accounts raised, then read the rest from your free people search and the company site. Dedicated funding-data APIs exist if you outgrow it; the sweep pattern below is identical either way.
- Hiring - the highest-signal family, and cheap if you order it right. A careers-page fetch is free and works for any account with a careers page. Apollo's
organizations/{id}/job_postingsendpoint is in the MCP you already connected but costs 1 credit per page per account, so a weekly sweep of 50 accounts is at least 50 credits a week. Free first, metered for the gaps. - Technographics - what tools an account runs. Several APIs sell this data - whichever one you subscribe to, it's one more fetch step in the same sweep.
- Social engagement - who's engaging with posts about your problem space, following whom, changing jobs. Social-signal monitors with APIs and MCP servers cover this, and the vendor list is moving: one widely used one, Trigify, announced on 2026-09-23 that its team is joining HubSpot and the standalone platform closes on 2026-10-22. If it was yours, migrate now. Alternatives as of September 2026: Common Room (Essential from $2,500 a month billed annually, MCP included), Gojiberry (Pro $99 a month with API and MCP), or the DIY engager scrape costed below.
- Website visitors - visitor-identification tools resolve a slice of your traffic to people or accounts and push webhooks - a perfect trigger source for the fast-lane recipe at the end of this lesson.
Build it: the weekly hiring-signal sweep
The first signal-watcher: every week, check your target accounts for relevant job postings and append what's found to the CRM. It uses only tools you've already connected.
- Define the keyword list in signals/hiring-keywords.md: the roles that mean "they need us" (for an outbound agency that's SDR, BDR, RevOps, Head of Growth - yours will differ). Whole-word matching, tested with must-reject cases, same as your title rules.
- Have Claude write sweep_hiring.py, free step first: for each A/B-band account, fetch its careers page (the URL from the company site, cached after the first find) and extract open roles matching the keyword file. Write hits to output/signals_YYYY-MM-DD.csv with account, title, posting date and source.
- Metered step second, only for accounts whose careers page did not resolve or parse: call Apollo's
GET /api/v1/organizations/{id}/job_postings. Put the arithmetic in the script header ("N accounts x 1 credit per page") and behind--dry. Check the credit balance before and after and log the delta. - Append each hit to the CRM as a timestamped signal note on the account, and bump the account's signal-recency field - your rubric's 15 hiring points now fill themselves.
- Run it manually twice to trust it, then schedule it weekly: a cron line running the script directly, with
claude -p "/hiring-sweep"only summarizing results. Module 3 deepens the scheduling patterns, including Routines (still a research preview) for connector-only jobs.
0 7 * * 1 cd ~/sales-engine && \
python scripts/sweep_hiring.py >> logs/sweep.log 2>&1Social signals, the same move
Hiring tells you about the account; social engagement tells you about the person. Someone commenting on posts about your problem space is warmer than any title filter can capture. If you run a social-signal monitor, it has an API - and probably an MCP server - which means the move you already know applies: connect it, describe the outcome, let Claude drive it.
- Connect yours: claude mcp add --transport http <name> <your tool's MCP URL>, then /mcp to complete the OAuth flow - or put its API key in .env and go the script route.
- Set up a monitor for the topics and creators your buyers engage with (check how the API bills against your plan's credits - budget accordingly).
- Weekly, pull engagers and cross-reference: "Pull this week's engagers, match them against our CRM and ICP rubric, and flag anyone who's A-band and not in an active sequence."
- That prompt runs every week - founder's law - so encode it as /signal-review the second time you type it. The skill holds the prompt, the rubric reference, and the not-in-active-sequence check; the weekly pull becomes one command.
- The standard 2026 combo, which lesson 8 completes: social signal, then enrich through your waterfall, then a LinkedIn or email touch.
What a DIY engager engine actually costs (measured)
If you build the social-signal source yourself (a scraping marketplace actor pulls reactions and comments from chosen creators' posts, then your pipeline does the rest), here is what a first full run looked like on our own engine, so you can budget in the right unit. Pipeline: posts -> engagers -> free ICP gate -> dedup -> LLM peer/tier call -> enrich -> verify -> ingest, every spending stage resumable and behind --dry.
- 44 posts from 10 creators produced 18,914 engagers for $75.66 of scraping: 13,286 unique people. The free ICP gate removed 10,268 of them (about 60% of a broad audience fails geography alone). Dedup and blocklist left about 2,600. The Haiku 4.5 peer-or-buyer call cost $0.80 for 2,603 people and passed 1,829 as tier 1 or 2. Enrichment found about 800 emails; 750 verified. All-in: about $0.10 per verified lead.
- Per creator, $/verified lead ranged from $0.02 to $0.60, a 30x spread on the same rubric. Creators whose audience is GTM practitioners were the worst ($0.34-$0.60): their commenters sell what we sell. Business-owner and B2B-founder audiences were the best ($0.02-$0.09). Pick creators by who engages, not by who posts.
- Reactions were about 85% of the scrape bill; comments cost a fifth as much for a higher-intent person. Cut reactions before cutting creators.
- You pay about $4 per 1,000 engagers before any filter sees them, and 77% of what was bought was discarded by free rules. That is fine; it is also why you never budget in rows. The cheap "short" scrape mode returns opaque member URNs no enrichment provider resolves; the "main" mode costs about $2 per 1,000 more and returns the vanity URL, country and company, which lets the free gate run before a single credit is spent.
- The peer gate is a judgment, not a keyword: on an early run 11 of 17 "qualified" people were competitors. The line we give the model is services vs product. A company selling software, even AI software, is a buyer; a done-for-you shop is a peer. That call stays on Claude.
The fast lane: visitor webhooks
The hottest signal of all is someone on your website right now. Visitor-identification tools resolve a slice of visitors to people or accounts and fire a webhook. The full fast-lane build (webhook receiver, auto-enrich, same-day outreach) is an advanced module-3-adjacent project, but plant the seed now:
- Webhook arrives with the visitor's identity - this replaces the "list" step entirely; the lead found you.
- The waterfall from lesson 3 enriches them; score.py scores them - your existing pipeline, triggered by an event instead of a schedule.
- If A-band: into the high-priority campaign same day, while the visit is still fresh. Speed is the whole value of this signal - a visitor contacted the same day is a different conversation than one contacted in next month's batch.
Do this now
Sources and further reading
Want us to set it up with you, end to end?
Three one-on-one sessions. We train you on your real stack and build your first agents together, until you can run it yourself. You keep everything.