Communitygithub.com

Varnan-Tech/opendirectory

Prend un signal d'achat et génère une séquence de prospection multi-canal personnalisée sur email, LinkedIn et téléphone. Produit 4 à 6 points de contact prêts à être envoyés sur 10 à 14 jours. Optionnellement rédige les emails via Composio Gmail.

Qu'est-ce que opendirectory ?

Cette compétence d'agent IA permet aux équipes commerciales et aux développeurs de générer automatiquement des séquences de prospection personnalisées et multi-canaux à partir d'un signal d'achat (ex : levée de fonds, recrutement, lancement produit). Elle s'appuie sur Gemini 2.0 Flash pour rédiger des messages prêts à l'envoi, en respectant des règles strictes anti-jargon et anti-placeholders, avec une vérification qualité automatique. La compétence lit les fichiers de profil ICP et de compte existants pour contextualiser chaque message, et peut intégrer directement les emails dans Gmail via Composio API. Compatible avec les agents CLI comme Claude Code, Cursor ou Codex, ce skill outille les équipes commerciales pour créer des campagnes de prospection ultra-personnalisées en quelques minutes, sans effort manuel.

Compatible avec✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Varnan-Tech/opendirectory/tree/HEAD/skills/outreach-sequence-builder

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Générateur de Séquences de Prospection

Prend un signal d'achat. Génère une séquence de prospection multi-canal personnalisée. Produit des messages prêts à être envoyés par email, LinkedIn et téléphone.


Règle cruciale : Chaque message doit être entièrement rempli à partir du contexte chargé. Seul {{first_name}} est autorisé comme variable. Pas de crochets [Nom de l'entreprise], pas de placeholders [INSÉRER UN PROBLÈME]. Si vous ne disposez pas des informations nécessaires, demandez avant d'écrire. N'envoyez jamais un message avec un placeholder non rempli.


Étape 1 : Vérification de la Configuration

Confirmer les variables d'environnement requises :

echo "GEMINI_API_KEY : ${GEMINI_API_KEY:+défini}"
echo "COMPOSIO_API_KEY : ${COMPOSIO_API_KEY:-non défini, la rédaction Gmail sera ignorée}"

Si GEMINI_API_KEY est manquant : Arrêtez-vous. Dites à l'utilisateur : "GEMINI_API_KEY est requis. Obtenez-le sur aistudio.google.com. Ajoutez-le à votre fichier .env."

Si COMPOSIO_API_KEY est manquant : Continuez. Les séquences seront produites sous forme de texte formaté pour copier-coller. La création de brouillons Gmail est ignorée.


Étape 2 : Chargement du Contexte

Vérifier l'existence d'un fichier ICP et des fichiers de comptes :

ls docs/icp.md 2>/dev/null && echo "icp trouvé" || echo "icp manquant"
ls docs/accounts/ 2>/dev/null && echo "comptes trouvés" || echo "comptes manquants"

Si docs/icp.md existe : Lire. Extraire :

  • Personas cibles (intitulés de poste, niveau hiérarchique, service)
  • Profil de l'entreprise (taille, secteur, stade de financement)
  • Points de douleur principaux (utiliser le langage exact de l'acheteur)
  • Différenciateurs clés (pourquoi votre produit plutôt que les alternatives)

Si docs/accounts/{entreprise}.md existe : Lire le fichier pertinent. Extraire :

  • Nom de l'entreprise, taille, contexte récent
  • Stack technique ou points de douleur connus
  • Relation existante ou contact antérieur

Si aucun des deux n'existe : Poser ces 4 questions à l'utilisateur. Ne pas continuer tant que les 4 n'ont pas été répondues :

  1. Que fait votre produit ? (une ou deux phrases)
  2. Qui ciblez-vous ? (intitulé de poste, taille de l'entreprise, secteur)
  3. Quel est le principal problème que vous résolvez ? (du point de vue de l'acheteur, pas du vôtre)
  4. Quel est votre principal différenciateur ? (pourquoi vous plutôt que l'alternative qu'ils utilisent actuellement)

Étape 3 : Identifier le Signal

Déterminer lequel des 7 types de signaux s'applique. Lire references/signal-playbook.md pour le Insight, le Bridge, l'Opener et l'Ask complets pour chaque type de signal.

7 types de signaux :

SignalDéfinition
Post-FundraisingL'entreprise a levé un tour de financement au cours des 30 derniers jours
Signal de RecrutementL'entreprise a publié 5 postes ou plus dans une fonction que vous servez
Remplacement de ConcurrentLe contact utilise un concurrent et montre des signes de frustration
Lancement ProduitL'entreprise a lancé un nouveau produit ou une fonctionnalité majeure
Engagement de ContenuLe contact a aimé, commenté ou partagé votre contenu
Suivi d'ÉvénementVous vous êtes rencontrés ou vous étiez dans la même session lors d'une conférence ou d'un webinaire
Changement de PosteLe contact a changé d'entreprise au cours des 60 derniers jours

Si l'utilisateur a fourni un signal dans sa demande : Confirmer le type et extraire les détails spécifiques (montant du tour, intitulés des postes, nom du produit, nom de l'événement, etc.).

Si aucun signal n'est clair : Demander : "Qu'est-ce qui a déclenché cette prospection ? (ex. ils ont levé des fonds, ils recrutent des ingénieurs, vous vous êtes rencontrés lors d'un événement)"

Indiquer le type de signal détecté et le détail spécifique avant de continuer.


Étape 4 : Développer l'Angle

En utilisant le type de signal et le contexte chargé aux étapes 2-3, définir les quatre éléments de l'angle. Lire references/signal-playbook.md pour la formule de ce type de signal.

Écrire explicitement avant de générer tout message :

Signal : [signal spécifique + détail concret]
Insight : [ce que ce signal révèle sur leur situation]
Bridge : [comment votre produit se connecte à ce que le signal révèle]
Opener : [une phrase mentionnant le détail spécifique du signal]
Ask : [CTA minimum viable, moins de 10 mots]

L'opener doit nommer le déclencheur spécifique. Les openers vagues sont rejetés.

Bon : "Félicitations pour la Série B de 18 M$ — faire évoluer rapidement l'équipe commerciale crée généralement un écart dans l'onboarding." Mauvais : "J'ai vu que votre entreprise a récemment levé des fonds."


Étape 5 : Planifier la Séquence de Canaux

Concevoir 4 à 6 points de contact par email, LinkedIn et téléphone. Règles :

  • Durée totale : 10-14 jours
  • Écart minimum : 2 jours entre deux touches
  • Ne jamais utiliser le même canal deux fois de suite
  • Chaque suivi doit apporter une nouvelle valeur (nouvelle ressource, nouvel angle, nouveau point de preuve). Jamais "juste un suivi".
  • Le dernier point de contact est un message de rupture court

Cadence par défaut pour la plupart des signaux :

Jour 1 : Email (premier contact, opener basé sur le signal)
Jour 3 : LinkedIn (note de connexion ou DM court)
Jour 7 : Email (nouvel angle ou étude de cas)
Jour 9 : Téléphone (talk track + script de messagerie vocale)
Jour 12 : Email (cadrage différent ou objection traitée)
Jour 14 : Email (message de rupture court)

Ajuster selon le type de signal :

  • Post-Fundraising : aller plus vite (Jour 1, 2, 4, 7, 10). Agir dans les 48 heures suivant l'annonce.
  • Suivi d'Événement : commencer par LinkedIn, pas par email (canal plus chaud en premier)
  • Engagement de Contenu : commencer par une réponse ou un commentaire LinkedIn avant l'email

Indiquer le jour et le canal prévus pour chaque point de contact avant d'écrire les messages.


Étape 6 : Générer la Séquence

Lire references/sequence-format.md en entier. Lire references/output-template.md et sélectionner le modèle pour ce type de signal.

Écrire la demande Gemini dans un fichier temporaire :

cat > /tmp/outreach-sequence-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "Vous êtes un rédacteur commercial B2B qui écrit des messages de prospection qui obtiennent des réponses. Règles : La première phrase de chaque message parle d'EUX, pas de votre entreprise. Mentionnez le signal d'achat spécifique par son nom et ses détails dans le message d'ouverture. Utilisez les contractions naturellement. Phrases courtes. Pas de jargon d'entreprise. Mots interdits : synergie, levier, prise de contact, faire le point, faire un ping, boucler la boucle, alignement, innovant, de pointe, meilleur de sa catégorie, de classe mondiale, révolutionnaire, disruptif, bande passante, plongée profonde, fruit à portée de main, faire bouger les choses. Pas de formules de politesse : pas de 'J'espère que cet email vous trouve bien', pas de 'Bon lundi', pas de 'Je voulais juste'. Chaque suivi apporte une nouvelle valeur — jamais 'juste un suivi'. Limites strictes : corps de l'email sous 100 mots, note LinkedIn sous 300 caractères, opener téléphone sous 20 mots. Seul {{first_name}} est autorisé comme variable — remplissez tous les autres détails à partir du contexte fourni. Le message de rupture est court (3-4 phrases), amical, et laisse la porte ouverte."
    }]
  },
  "contents": [{
    "parts": [{
      "text": "CONTEXTE_ET_INSTRUCTIONS_ICI"
    }]
  }],
  "generationConfig": {
    "temperature": 0.7,
    "maxOutputTokens": 4096
  }
}
ENDJSON
curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d @/tmp/outreach-sequence-request.json \
  | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['candidates'][0]['content']['parts'][0]['text'])"

Remplacer CONTEXTE_ET_INSTRUCTIONS_ICI par :

  • La description du produit, la persona cible, les points de douleur et les différenciateurs de l'étape 2
  • Le type de signal, le détail spécifique et les quatre éléments de l'angle de l'étape 4
  • Le plan de canaux de l'étape 5
  • Instructions pour écrire chaque point de contact avec son objet (email), son nombre de caractères (LinkedIn) et son talk track (téléphone)

Pour chaque point de contact email, exiger deux variantes d'objet (test A/B).


Étape 7 : Cartographier les Objections

Après avoir généré la séquence, identifier les 2 à 4 objections les plus probables pour ce type de signal. Les prévenir naturellement dans un point de contact existant. Ne pas ajouter de messages séparés de traitement des objections. Intégrer la prévention dans la séquence.

Lire le guide des objections dans references/sequence-format.md. Cartographier quel point de contact traite chaque objection.

4 objections standard à prévenir :

ObjectionApproche de prévention
"Nous avons déjà une solution"Reconnaître leur outil actuel, positionner le vôtre comme complémentaire ou prochaine étape
"Ce n'est pas le bon moment"Lier le signal directement à pourquoi maintenant est le bon moment
"Trop cher"Cadrer le ROI, ancrer sur un nombre qui compte pour eux
"Il faut impliquer plus de personnes"Proposer une ressource partageable (fiche synthétique, démo enregistrée)

Indiquer quel point de contact traite chaque objection avant de présenter la séquence finale.


Étape 8 : Auto-Qualité

Exécuter chaque vérification et corriger les violations avant de présenter :

  • Chaque message commence par une phrase sur EUX
  • Le détail spécifique du signal est nommé dans au moins le premier point de contact
  • Aucun placeholder non rempli sauf {{first_name}}
  • Corps des emails sous 100 mots (compter et indiquer le nombre de mots pour chacun)
  • Notes LinkedIn sous 300 caractères (compter et indiquer pour chacune)
  • Opener téléphone sous 20 mots
  • Aucun mot interdit dans aucun message
  • Pas de "juste un suivi" dans aucun suivi
  • Chaque suivi apporte un nouvel angle ou une nouvelle valeur
  • Pas de même canal utilisé deux fois de suite
  • Au moins 2 objections prévenues dans la séquence
  • Message de rupture de 3-4 phrases, amical, sans culpabilisation

Corriger toute violation avant de présenter.


Étape 9 : Production et Sauvegarde

Présenter la séquence complète dans un bloc de code.

Sauvegarder dans un fichier :

mkdir -p docs/sequences
cat > docs/sequences/TYPE-DE-SIGNAL.md << 'EOF'
CONTENU_DE_LA_SEQUENCE_ICI
EOF
echo "Séquence sauvegardée dans docs/sequences/TYPE-DE-SIGNAL.md"

Si COMPOSIO_API_KEY est défini : Demander : "Rédiger les points de contact email dans Gmail via Composio ?"

Sur confirmation, pour chaque point de contact email :

# L'agent appelle l'action GMAIL_CREATE_EMAIL_DRAFT de Composio
# avec sujet = [objet], corps = [corps de l'email], destinataire = [email du contact si connu]

Après la rédaction : "Brouillons d'email créés dans Gmail. Consultez votre dossier Brouillons."

Notes LinkedIn : Présenter comme des blocs de copier-coller séparés avec une étiquette claire pour chaque point de contact. LinkedIn ne prend pas en charge la messagerie programmatique.

Scripts téléphoniques : Présenter comme un talk track formaté avec des puces, pas un script rigide.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Varnan-Tech/opendirectory

Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.

Varnan-Tech/opendirectory

World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.

Varnan-Tech/opendirectory

Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.

Varnan-Tech/opendirectory

Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.

Varnan-Tech/opendirectory

Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.

Varnan-Tech/opendirectory

Give it your product URL or description. It finds your top 5 competitors, runs three-track PR research across all of them (editorial, podcasts, communities), identifies which channels appear most frequently, looks up the journalist or host for each, and returns a tiered outreach list with story angles and ready-to-send cold pitch drafts tailored to your product. Use when asked to find PR opportunities, discover where competitors got featured, build a media outreach list, find which journalists cover my space, or get pitch templates for press coverage.

Varnan-Tech/opendirectory

Generate high-converting, deep-dive growth case studies in MDX format. Use this skill when asked to write a case study or blog post about a company's growth, tech stack, or product-led strategy. It handles the full pipeline (researching the company via Tavily, generating a 16:9 cover image, quality checking the draft, uploading assets to cloud storage, and pushing directly to the target repository).

Varnan-Tech/opendirectory

Scans your project for outdated npm, pip, Cargo, Go, or Ruby packages. Runs a CVE security audit. Fetches changelogs, summarizes breaking changes with Gemini, and opens one PR per risk group (patch, minor, major). Includes Diagnosis Mode for install conflicts. Use when asked to update dependencies, check for outdated packages, open dependency PRs, scan for package updates, audit for CVEs, or flag breaking changes in upgrades. Trigger when a user says "check for outdated packages", "update my dependencies", "open PRs for dependency updates", "scan for CVEs", or "which packages need upgrading".

Varnan-Tech/opendirectory

Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture. Uses graphify to build a knowledge graph first, then writes accurate docs from it. Use when asked to write docs, generate a README, document an API, update stale docs, create an API reference from code, add an architecture section, or document a project in any language. Trigger when a user says their docs are missing, outdated, or wants to document their codebase without writing it manually.

Varnan-Tech/opendirectory

Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.

Varnan-Tech/opendirectory

Brutally honest developer-experience audit for a GitHub repo. Scores 10 DX dimensions (time-to-first-success, README clarity, visual proof, install, quick-start, docs, examples, community, trust, marketing), writes a shareable roast in the requested tone (brutal/honest/kind), produces a prioritized action plan ranked by impact × effort, and sketches an ideal README. Trigger when user says "roast my repo", "audit my README", "dx audit", "developer experience review", "score my GitHub project", "before launch checklist", or "make my repo shareable".

Varnan-Tech/opendirectory

Drafts and designs a complete HTML email newsletter from a topic or content brief. Outputs paste-ready HTML for Loops, Mailchimp, Beehiiv, Resend, or any standard email platform. Includes subject line options and plain-text fallback. Trigger when a user says "write a newsletter", "draft an email newsletter", "create an HTML email", "design an email for my subscribers", or "write a newsletter about [topic]".

Varnan-Tech/opendirectory

Takes a GitHub PR URL or the current branch and writes a plain-English explanation of what it does and why, then posts it as a PR comment. Use when asked to explain a PR, summarize a pull request, write a plain-English description of a PR, add a summary comment to a PR, or understand what a PR changes. Trigger when a user says "explain this PR", "summarize this pull request", "what does this PR do", "add a comment explaining the PR", or shares a GitHub PR URL and asks what it does.

Varnan-Tech/opendirectory

Audit how often LLMs recommend your brand vs competitors and generate a GEO action plan.

Varnan-Tech/opendirectory

Takes a competitor's public GitHub repo URL, fetches their open issues via the GitHub REST API, filters noise locally, clusters issues into 6 demand categories, computes a demand score per issue and per cluster, and outputs a ranked demand gap report with a GTM messaging brief. Use when asked to scan a competitor's GitHub issues, find what their users are begging for, turn GitHub complaints into product positioning, identify competitor feature gaps, or generate messaging from real user demand. Trigger when a user says "scan competitor issues", "what are users asking for on X repo", "find demand gaps in Y", "turn GitHub issues into messaging", or "what should I build based on competitor complaints".

Varnan-Tech/opendirectory

Find recurring confusion in your repo's GitHub Discussions, rank it by urgency, and draft the actual docs fixes and content angles — with verbatim community quotes and source links as evidence.

Varnan-Tech/opendirectory

SEO keyword research workflow for blog generation using Google Trends data. Use when writing blog posts, planning content calendars, or optimizing articles for search engines. Finds breakout keywords, builds content structure, and generates SEO-optimized blog outlines targeting tech and developer audiences.

Varnan-Tech/opendirectory

Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this customer win into a PDF".

Varnan-Tech/opendirectory

Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6. 1080×1080px default, 5 style presets, highlight annotations. Trigger when user says "create a chart", "visualize data", "make a bar chart", "line graph", "pie chart", "data visualization", "chart this data", "plot", "graph", or "visualize these numbers".

Varnan-Tech/opendirectory

Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning opportunities.

Skills associés