prospection-multicanal
Routine de prospection multicanal (LinkedIn + email) pilotée par Folk CRM, Unipile et Firecrawl. À utiliser quand l'utilisateur demande de "lancer la séquence d'outreach", "envoyer les invitations LinkedIn du jour", "faire tourner la prospection", de relancer un prospect, ou de progresser dans la cadence J0/J+3/J+10/J+15 sur les contacts Lead/Hunted dans Folk. Sait s'arrêter automatiquement sur réponse prospect, sortie de statut, ou drapeau Reco.
Installation & invocation
1. Crée le fichier sur ta machine :
2. Colle le contenu du SKILL.md ci-dessous, et redémarre Claude Code. Tu peux ensuite l'invoquer manuellement avec :
Claude peut aussi la déclencher automatiquement quand le contexte matche.
Routine LinkedIn + email pilotée par Folk + Unipile + Firecrawl. Cadence J0/J+3/J+10/J+15, stop auto sur réponse.
Contenu de la skill
Prospection multicanal — Folk × Unipile × Firecrawl
Ce que fait cette skill
Pour chaque contact Folk en statut Lead ou Hunted sur le groupe Lead,
exécuter la prochaine étape de la séquence :
J0 Invitation LinkedIn (note ≤ 300 car.)
J+3 invitation acceptée → LK msg | invitation pending → Mail 1
J+10 bascule de canal (LK→Mail ou Mail→LK selon acceptation)
J+15 dernière relance sur le canal opposé puis Status="Not qualified"
Stop automatique dès qu'un prospect répond (LinkedIn ou email), dès que son Status sort de Lead/Hunted, dès qu'il est marqué Reco, ou si l'équipe a interagi avec la fiche dans les 3 derniers jours.
Pré-requis (à faire une fois)
- Compléter le schéma Folk — voir
references/folk-setup.mdpour les 5 champs custom à créer dans le groupeLead. chmod 600 scripts/env.sh(déjà fait à l'install) ; vérifier que les 6 variables sont peuplées.- Smoke test :
bash scripts/env.sh && python3 -m prospection check_setup→ doit retourner"ok": true.
Invocation typique (orchestration)
Quand cette skill est déclenchée, Claude doit suivre cette boucle exactement :
1. Bootstrap
source ~/.claude/skills/prospection-multicanal/scripts/env.sh
cd ~/.claude/skills/prospection-multicanal/scripts
python3 -m prospection check_setup
Si ok: false, arrêter et afficher la liste issues à l'utilisateur. Le
schéma Folk doit être complet avant tout envoi.
2. Discovery
python3 -m prospection discover
Renvoie deux listes :
queue— contacts qui ont une action à faire aujourd'huiskipped— contacts ignorés et pourquoi
Afficher le résumé (nombre / nom / action prévue) à l'utilisateur sous forme de
tableau condensé. Si queue est vide, dire "rien à faire aujourd'hui" et sortir.
3. Pour chaque candidat de la queue (séquentiel)
3a. Preflight
python3 -m prospection preflight <person_id>
Output : {ok, action, msg_body, msg_state, ...}. Si ok=false, le contact est
déjà géré (Status changé, reply, etc.) → passer au suivant.
3b. Génération du message si nécessaire
Si msg_body est vide ou msg_state ∈ {null, Regeneré, Erreur} :
-
OSINT Firecrawl (en parallèle quand possible) :
firecrawl_scrapesur lalinkedin_urldu contactfirecrawl_search"<First> <Last> <Company>"(top 3)firecrawl_scrapesur l'URL entreprise si présente dans Folk (/companies/{id})
Si Firecrawl échoue (LinkedIn bloque souvent) → fallback sur le titre/entreprise déjà dans Folk, et noter
[generic]dans le log. -
Rédaction, suivant l'action :
SEND_INVITE→ note d'invitation LinkedIn ≤ 300 caractères. Tutoiement, première ligne accroche basée sur 1 signal OSINT, pas de pitch direct, fin avec un hook léger.SEND_LK_MSG,SEND_LK_MSG_AFTER_MAIL,SEND_LAST_RELANCE_LK→ message LinkedIn ≤ 300 caractères, ton humain, référence à un signal récent.SEND_MAIL_1,SEND_MAIL_2,SEND_LAST_RELANCE_MAIL→ email avec subject + body HTML court (≤ 800 car.). Premier mail = pitch ExoTeach + signal personnalisé. Mail 2 = relance "remontée en haut de boîte". Last relance = porte de sortie polie.
-
Sauvegarde :
python3 -m prospection save_message <person_id> "<body>" [--subject "<s>"]
3c. Envoi
python3 -m prospection send <person_id>
Le module re-fait un preflight (idempotent — re-vérifie reply / status / age), exécute l'action via Unipile, met à jour Folk (Étape séquence, Date dernier envoi, Unipile chat ID, Message IA = "Envoyé", puis vide Body+Subject pour la prochaine étape).
Sleep 1–2 s entre chaque prospect pour ménager les rate-limits.
4. Rapport
python3 -m prospection report
Affiche les compteurs du run du jour. Le détail JSONL est dans
runs/<YYYY-MM-DD>.jsonl.
Garanties critiques
- Avant chaque envoi, le module relit Folk + interroge Unipile : si reply
apparue depuis le dernier check, on s'arrête sans envoyer. Cf.
preflight(). - Les invitations LinkedIn sont capées à
WEEKLY_INVITE_CAP(80/sem par défaut) pour éviter le ban LinkedIn — modifiable dansenv.sh. - Les notes d'invitation sont tronquées à 300 caractères côté Unipile (sécurité serveur, pas notre problème de comptage côté client).
- Une action ne se redéclenche jamais le même jour sur un même prospect (
Date dernier envoi == today⇒ NOOP).
Cas particuliers
- Pas de LinkedIn URL sur un contact en Lead/Hunted : il est sauté avec
raison
no LinkedIn URL. Si tu as une URL et qu'elle n'est pas détectée, vérifie le format (le helper cherchelinkedin.com/in/). - Pas d'email mais Mail attendu : le contact est sauté avec raison
no email on contactau moment du send. La séquence reprendra dès qu'un email sera renseigné. - Plusieurs groupes Lead : si un contact est dans plusieurs groupes
exposant un Status compatible, on prend celui dont la
Date dernier envoiest la plus récente comme groupe principal pour lire/écrire les états.
Liens
- Source du moteur :
scripts/prospection.py - Helper Unipile :
scripts/unipile.py - Helper Folk (réutilisé) :
~/.claude/skills/folk-exoteach/scripts/folk.py - Setup Folk requis :
references/folk-setup.md - Endpoints Unipile utilisés :
references/unipile-endpoints.md - Diagramme état → état :
references/sequence-state-machine.md
Skills proches
founder-sales
Help founders close their first customers and build repeatable sales processes. Use when someone is doing founder-led sales, trying to get their first customers, writing cold outreach, running early sales calls, or asking when to hire their first salesperson.
prospection-mail
Rédiger des cold emails B2B et des séquences email / drip qui obtiennent des réponses. Charge ce skill quand l'utilisateur veut écrire un cold email, une relance, une séquence de prospection ou une campagne drip automatisée.
prospection-stack
Orchestrateur de prospection B2B qui route les demandes vers le bon MCP de la stack disponible (Vibe Prospecting, Common Room, Firecrawl, Apify, Notion, Gmail, Granola, Fireflies, Calendar). Utilise ce skill dès que l'utilisateur veut trouver des leads, enrichir un contact ou un compte, scraper un site, préparer un call, drafter un outreach, qualifier un prospect, sourcer un ICP, retrouver un échange passé avec un compte. Déclenche aussi sur "trouve-moi des leads", "qui est X chez Y", "prépare mon call avec Z", "scrape ce site", "enrichis cet email", "log dans Notion", "drafte un cold email", "infos sur cette boîte". Skill agnostique de toute entreprise et de tout CRM : aucune cible métier ni stack CRM hardcodée. Ne jamais utiliser Apollo ni FullEnrich, ils sont explicitement exclus. Aucun CRM dans le scope (ni Folk ni HubSpot ni Pipedrive ni Salesforce ni autre) : pour toute écriture CRM, déléguer aux skills dédiés que l'utilisateur a installés. Demande toujours où pousser le résultat avant d'écrire dans un système tiers.
revops
When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes. Also use when the user mentions 'RevOps,' 'revenue operations,' 'lead scoring,' 'lead routing,' 'MQL,' 'SQL,' 'pipeline stages,' 'deal desk,' 'CRM automation,' 'marketing-to-sales handoff,' 'data hygiene,' 'leads aren't getting to sales,' 'pipeline management,' 'lead qualification,' or 'when should marketing hand off to sales.' Use this for anything involving the systems and processes that connect marketing to revenue. For cold outreach emails, see cold-email. For email drip campaigns, see email-sequence. For pricing decisions, see pricing-strategy.
sales-enablement
When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts. Also use when the user mentions 'sales deck,' 'pitch deck,' 'one-pager,' 'leave-behind,' 'objection handling,' 'deal-specific ROI analysis,' 'demo script,' 'talk track,' 'sales playbook,' 'proposal template,' 'buyer persona card,' 'help my sales team,' 'sales materials,' or 'what should I give my sales reps.' Use this for any document or asset that helps a sales team close deals. For competitor comparison pages and battle cards, see competitor-alternatives. For marketing website copy, see copywriting. For cold outreach emails, see cold-email.
sales-qualification
Help users qualify sales leads effectively. Use when someone is wasting time on bad leads, struggling with low conversion rates, needs to build a qualification framework, or wants to improve their discovery process.