Standing rule — pre-built batches (batch_prebuild.py) should ONLY include prospects with no existing LinkedIn relationship/thread. Cold-style sniper DMs to 1st-degree connections or warm threads read as tone-deaf and undo any goodwill. PJ sees connection state, leads.csv doesn't.
1. Default: queue + manual sniper. New prospects from Clay loads sit in dashboard as queued. PJ snipers them HIMSELF when he reaches each one — at that moment he sees the connection state on LinkedIn (1st-degree? 2nd? thread history? mutual?) and can decide: - Cold + 2nd-degree → bare connection request first, then sniper-shot DM after accept - Cold + 1st-degree (already connected, no thread) → sniper-shot DM directly - Warm + 1st-degree (existing thread, even from years ago) → human-first reply, NOT a sniper-shot. Page becomes opt-in. - Already-engaged (referrals given, replies exchanged) → close THAT loop first before any new outreach
Read the doctrine. Apply it on the next ship cycle.
Standing rule — pre-built batches (batch_prebuild.py) should ONLY include prospects with no existing LinkedIn relationship/thread. Cold-style sniper DMs to 1st-degree connections or warm threads read as tone-deaf and undo any goodwill. PJ sees connection state, leads.csv doesn't.
"I'm almost positive I can help. If I can't, you don't pay."
— PJ · SideGuy Solutions · 858-461-8054 · sms:+18584618054
📲 Text PJ — 858-461-8054