Communitygithub.com

Varnan-Tech/opendirectory

Transforme des offres d'emploi LinkedIn ou des descriptions de recrutement en une cartographie structurée des douleurs acheteur, avec douleurs inférées, lacunes de capacités, signal achat vs construction, scores de priorité de compte et angles de prospection suggérés.

Qu'est-ce que opendirectory ?

Cette compétence permet d'analyser des offres d'emploi (1 à 15 par requête) pour en extraire des signaux d'intention d'achat B2B. Elle utilise le modèle Gemini de Google pour scorer chaque entreprise sur trois dimensions (force du signal, urgence, adéquation ICP) et produire une cartographie détaillée des douleurs opérationnelles. Chaque douleur est étayée par des citations textuelles de l'offre d'emploi pour éviter toute hallucination. La compétence génère également des angles de prospection concrets, un objet de transmission structuré pour l'outil `outreach-sequence-builder`, et sauvegarde les rapports au format Markdown. Idéale pour les équipes GTM qui souhaitent prioriser les comptes à cibler en fonction de signaux de recrutement réels.

Compatible avec~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Varnan-Tech/opendirectory/tree/main/skills/linkedin-job-post-to-buyer-pain-map

Demander à votre IA préférée

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

Documentation

Cartographie des Douleurs Acheteur à partir d'Offres d'Emploi LinkedIn

Prenez des offres d'emploi LinkedIn. Décodez-les en une cartographie structurée des douleurs acheteur avec scores, douleurs et angles de prospection.


Règle critique : Chaque douleur inférée doit citer un langage spécifique de la description de poste qui la soutient. N'hallucinez jamais de douleurs qui ne sont pas fondées sur le texte. Si une offre est trop générique pour inférer une douleur, dites-le explicitement et attribuez un score de force de signal faible.

Règle éthique : N'inférez pas d'attributs personnels ou de caractéristiques protégées concernant les candidats. Concentrez-vous strictement sur la douleur opérationnelle au niveau de l'entreprise et les besoins organisationnels.


Étape 1 : Vérification de la Configuration

Confirmez les variables d'environnement requises :

echo "GEMINI_API_KEY: ${GEMINI_API_KEY:+défini}"

Si GEMINI_API_KEY est manquante : Arrêtez. Dites à l'utilisateur : "GEMINI_API_KEY est requise. Obtenez-la sur aistudio.google.com. Ajoutez-la à votre fichier .env."


Étape 2 : Collecte des Entrées

La compétence nécessite 3 entrées obligatoires. Collectez-les avant de continuer.

2a : Présentation du Produit

Demandez : "Décrivez votre produit en 2 à 5 phrases. Que faites-vous, quelle est votre proposition de valeur principale, et qui ciblez-vous ?"

Si l'utilisateur l'a déjà inclus dans son prompt : Extrayez-le. Confirmez : "Présentation du produit capturée : [résumé]."

2b : Description ICP

Demandez : "Décrivez votre profil client idéal en 2 à 6 puces : secteurs, tailles d'entreprise, rôles auxquels vous vendez, indices sur la stack technique."

Si l'utilisateur l'a déjà inclus dans son prompt : Extrayez-le. Confirmez : "ICP capturé : [résumé]."

2c : Offres d'Emploi

Demandez : "Collez les descriptions de poste que vous souhaitez analyser. Pour chaque offre, incluez le nom de l'entreprise, l'intitulé du poste et le texte complet de la description. Vous pouvez coller de 1 à 15 offres."

Formats acceptés :

  • Texte brut collé avec le nom de l'entreprise et l'intitulé du poste clairement indiqués
  • Objets JSON structurés avec les champs : company_name, job_title, location (optionnel), seniority (optionnel), team_or_function (optionnel), job_description_text, job_url (optionnel)
  • Plusieurs offres séparées par des délimiteurs clairs (--- ou numérotés)

Si un champ est manquant : Inférez ce que vous pouvez à partir du texte de la description. Si company_name ou job_description_text est manquant, demandez-le avant de continuer.

2d : Entrées Optionnelles

Si l'utilisateur fournit l'un de ces éléments, capturez-les :

  • account_notes : contexte supplémentaire par entreprise (financement, stack technique, outils connus, contacts)
  • focus_dimension : "pipeline" (biais vers le scoring et la priorisation), "positioning" (biais vers les angles de message), ou "both" (par défaut)

Étape 3 : Extraction des Signaux

Pour chaque offre d'emploi, analysez et extrayez :

  1. Équipe / fonction : À quelle équipe ce poste appartient-il ? (GTM, Produit, Infra, Données, RevOps, CS, Ingénierie, etc.)
  2. Séniorité : IC, Senior IC, Manager, Directeur, VP, C-level
  3. Accent sur les responsabilités : Classez le mode dominant :
    • Lutte contre les incendies : "stabiliser", "réparer", "réduire les temps d'arrêt", "débloquer"
    • Construction nouvelle : "construire à partir de zéro", "0→1", "greenfield", "concevoir et mettre en œuvre"
    • Optimisation : "mettre à l'échelle", "optimiser", "améliorer l'efficacité", "automatiser"
    • Remplacement : "remplacer l'héritage", "migrer de", "moderniser"
  4. Langage des exigences : Notez les mots-clés qui signalent l'intention : "première embauche X", "rôle critique", "immédiat", "doit avoir"
  5. Indices d'outils / stack : Toutes références à des outils, plateformes ou catégories technologiques spécifiques qui recoupent le domaine du produit de l'utilisateur

Regroupez par entreprise. Si plusieurs offres proviennent de la même entreprise, regroupez leurs signaux ensemble.

Indiquez : "Signaux extraits de X offres dans Y entreprises."


Étape 4 : Scorer avec le LLM

Lisez references/scoring-rubric.md pour le modèle de scoring complet.

Construisez la requête LLM :

cat > /tmp/pain-map-score-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "Vous êtes un analyste GTM spécialisé dans le décodage des signaux de recrutement en intention d'achat. Pour chaque compte fourni, vous noterez trois dimensions et inférerez le contexte de l'entreprise. Règles : (1) Chaque score doit inclure une explication en une phrase en texte brut. (2) signal_strength mesure le nombre et la spécificité des signaux de recrutement par rapport au domaine produit de l'utilisateur. (3) urgency mesure l'urgence temporelle apparente du besoin de recrutement. (4) icp_fit mesure à quel point l'entreprise correspond à la description ICP de l'utilisateur. (5) Chaque score est de 1 à 10. (6) overall_score = round((0.4 * signal_strength + 0.3 * urgency + 0.3 * icp_fit) * 10). (7) Inférez buy_vs_build à partir du langage de l'offre. Utilisez EXACTEMENT un de ces labels : 'Leaning build', 'Leaning buy', 'Hybrid (buy-and-build)', 'Unknown'. (8) Inférez stage_guess à partir des indices sur l'entreprise : stade de financement, nombre d'employés, type d'entreprise. (9) Sortez uniquement du JSON valide."
    }]
  },
  "contents": [{
    "parts": [{
      "text": "SCORING_CONTEXT_HERE"
    }]
  }],
  "generationConfig": {
    "temperature": 0.2,
    "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/pain-map-score-request.json \
  | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['candidates'][0]['content']['parts'][0]['text'])"

Remplacez SCORING_CONTEXT_HERE par :

  • La présentation du produit et la description ICP de l'Étape 2
  • Les signaux extraits par entreprise de l'Étape 3
  • Les règles de la grille de scoring de references/scoring-rubric.md
  • Instructions pour sortir du JSON avec : company_name, headline, overall_score, score_breakdown (signal_strength, urgency, icp_fit — chacun avec score et explication), stage_guess, buy_vs_build_guess

Étape 5 : Construction de la Cartographie des Douleurs

Pour chaque compte, utilisez les signaux extraits et le contexte de scoring LLM pour construire la cartographie des douleurs acheteur.

cat > /tmp/pain-map-analysis-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "Vous êtes un analyste des douleurs B2B qui lit les descriptions de poste et identifie les douleurs opérationnelles qu'une entreprise rencontre. Règles : (1) Chaque douleur doit avoir un court libellé, une description de 1 à 3 phrases, et des phrases spécifiques citées du poste comme preuve à l'appui. (2) Classez les douleurs comme primaires (directement pertinentes pour le produit de l'utilisateur) ou secondaires (douleur réelle mais tangentielle au produit). (3) Si une offre est trop générique pour inférer une douleur spécifique, dites-le explicitement — n'hallucinez pas. (4) Pour chaque compte, générez également 1 à 3 angles de prospection recommandés. Chaque angle comprend : angle_name (court), narrative (1 à 2 phrases sur comment mener), et talk_track_bullets (2 à 4 points de discussion concrets). (5) Les angles de prospection doivent faire référence à des douleurs et des preuves spécifiques, pas à des propositions de valeur génériques. Pas de mots interdits : synergie, levier, innovant, de pointe, meilleur de sa catégorie, de classe mondiale, révolutionnaire, disruptif, sans couture, robuste, complet, révolutionner, transformer, rationaliser. (6) Sortez uniquement du JSON valide."
    }]
  },
  "contents": [{
    "parts": [{
      "text": "ANALYSIS_CONTEXT_HERE"
    }]
  }],
  "generationConfig": {
    "temperature": 0.4,
    "maxOutputTokens": 8192
  }
}
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/pain-map-analysis-request.json \
  | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['candidates'][0]['content']['parts'][0]['text'])"

Remplacez ANALYSIS_CONTEXT_HERE par :

  • La présentation du produit et la description ICP
  • Les offres d'emploi de chaque entreprise (texte intégral)
  • Les scores et le contexte de l'Étape 4
  • Les notes de compte si fournies
  • La préférence focus_dimension (pipeline / positioning / both)
  • Instructions pour sortir par compte : buyer_pain_map (primary_pains, secondary_pains) et recommended_outreach_angles

Lisez references/examples.md pour calibrer la qualité et la profondeur attendues de la sortie.


Étape 6 : Construction de l'Objet de Transmission

Pour chaque compte, générez un bloc de transmission structuré que outreach-sequence-builder peut consommer directement :

handoff:
  for_outreach_sequence_builder:
    account_summary: Résumé en 2-3 phrases de la situation de l'entreprise et du contexte de recrutement
    key_pain: La douleur la plus actionnable en une phrase
    suggested_personas: 2-4 intitulés de poste des personnes les plus susceptibles de posséder cette douleur
    tone: Une phrase décrivant le ton de prospection recommandé

La transmission doit être suffisamment concrète pour que quelqu'un puisse la coller dans le prompt de outreach-sequence-builder et obtenir une séquence utilisable sans avoir à rechercher à nouveau le compte.


Étape 7 : Auto-Qualité

Exécutez chaque vérification et corrigez les violations avant de présenter :

  • Chaque douleur inférée cite au moins une phrase spécifique de la description de poste
  • Aucune douleur hallucinée pour les offres génériques/à faible signal (vérifiez les offres avec signal_strength ≤ 3)
  • Les trois scores (signal_strength, urgency, icp_fit) ont une explication en une phrase
  • Le score global correspond à la formule : round((0,4 × signal + 0,3 × urgence + 0,3 × icp_fit) × 10)
  • Le label Achat-vs-Construction est l'un de : "Leaning build", "Leaning buy", "Hybrid (buy-and-build)", "Unknown"
  • Aucun mot interdit dans les angles de prospection : synergie, levier, innovant, de pointe, meilleur de sa catégorie, de classe mondiale, révolutionnaire, disruptif, sans couture, robuste, complet, révolutionner, transformer, rationaliser
  • Chaque angle de prospection a 2 à 4 points de discussion, pas des déclarations de valeur génériques
  • Les comptes hors ICP sont signalés avec une recommandation claire de dépriorisation
  • Les objets de transmission sont complets avec les 4 champs (account_summary, key_pain, suggested_personas, tone)
  • Aucun attribut personnel ou caractéristique protégée inféré concernant les candidats
  • Les offres sont regroupées par entreprise lorsque plusieurs offres proviennent de la même entreprise

Corrigez toute violation avant de présenter.


Étape 8 : Sortie et Sauvegarde

Sortie lisible par un humain

Présentez l'analyse complète dans ce format :

## Cartographie des Douleurs Acheteur — [AAAA-MM-JJ]

**Produit :** [nom du produit de la présentation]
**Offres analysées :** X offres dans Y entreprises
**Focus :** [pipeline / positioning / both]

---

### [Nom de l'Entreprise] — Score : [N]/100

**Titre :** [résumé en une ligne de ce que révèle le recrutement]

| Dimension | Score | Explication |
|-----------|-------|-------------|
| Force du signal | N/10 | [une phrase] |
| Urgence | N/10 | [une phrase] |
| Adéquation ICP | N/10 | [une phrase] |

**Stade :** [stade estimé] | **Achat vs Construction :** [label de posture]

#### Douleurs Primaires
- **[Libellé de la douleur] :** [description en 1-3 phrases]
  - Preuve : "[phrase citée de l'offre d'emploi]"

#### Douleurs Secondaires
- **[Libellé de la douleur] :** [description en 1-3 phrases]
  - Preuve : "[phrase citée de l'offre d'emploi]"

#### Angles de Prospection Recommandés
1. **[Nom de l'angle] :** [récit]
   - [point 1]
   - [point 2]
   - [point 3]

#### Transmission → outreach-sequence-builder
> **Résumé :** [2-3 phrases]
> **Douleur clé :** [une phrase]
> **Personas suggérés :** [liste]
> **Ton :** [une phrase]

---

[répéter pour chaque entreprise, triée par overall_score décroissant]

Sauvegarder dans un fichier

mkdir -p docs/pain-maps
OUTFILE="docs/pain-maps/$(date +%Y-%m-%d).md"
cat > "$OUTFILE" << 'EOF'
CONTENU_DU_RAPPORT_ICI
EOF
echo "Cartographie des douleurs sauvegardée dans $OUTFILE"

Si plusieurs entreprises sont analysées, sauvegardez également des fichiers individuels en utilisant des noms d'entreprise slugifiés (minuscules, remplacez les espaces et caractères spéciaux par des traits d'union, supprimez les traits d'union finaux) :

ex : "ACME, Inc." → acme-inc.md, "CoolStartup Inc" → coolstartup-inc.md

SLUG=$(echo "NOM_ENTREPRISE" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/-$//')
cat > "docs/pain-maps/${SLUG}.md" << 'EOF'
CONTENU_COMPTE_INDIVIDUEL_ICI
EOF

Quand Utiliser

  • Vous avez 1 à 15 descriptions de poste collées et vous voulez savoir quelle douleur chaque entreprise ressent
  • Vous planifiez une prospection basée sur les comptes et avez besoin d'une analyse structurée des douleurs avant d'écrire des séquences
  • Vous souhaitez prioriser les comptes avec signaux de recrutement à cibler en premier
  • Un PMM veut un langage de douleur réel provenant des offres d'emploi pour affiner le positionnement

Quand NE PAS Utiliser

  • Vous devez trouver des entreprises qui recrutent (utilisez plutôt linkedin-hiring-intent-scanner ou yc-intent-radar-skill)
  • Vous devez rédiger des messages de prospection (utilisez plutôt outreach-sequence-builder — alimentez-le avec la transmission de cette compétence)
  • Vous souhaitez surveiller une plateforme pour des signaux au fil du temps (utilisez plutôt reddit-icp-monitor ou twitter-GTM-find-skill)
  • Vous avez besoin d'informations de contact ou d'enrichissement d'e-mails (cette compétence ne les fournit pas)

Fonctionne Bien Avec

  • outreach-sequence-builder : Passez le bloc handoff.for_outreach_sequence_builder directement comme contexte lors de la construction d'une séquence.
  • noise-to-linkedin-carousel : Utilisez les douleurs primaires et les preuves citées comme matériau source pour un carrousel sur les problèmes des acheteurs.
  • reddit-icp-monitor : Croisez les thèmes de douleur des offres d'emploi avec les thèmes de douleur apparaissant dans les discussions Reddit.

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