Communitygithub.com

Varnan-Tech/opendirectory

Transforma publicaciones de empleo de LinkedIn o descripciones de contratación en un mapa estructurado de dolores del comprador, con dolores inferidos, brechas de capacidad, señal de compra vs. construcción, puntuaciones de prioridad de cuenta y ángulos de alcance sugeridos.

¿Qué es opendirectory?

Esta habilidad está diseñada para agentes de IA que necesitan analizar publicaciones de empleo de LinkedIn y convertirlas en información procesable de ventas B2B. Toma descripciones de trabajo pegadas y las decodifica en un mapa de dolor del comprador, proporcionando puntuaciones de intensidad de señal, urgencia y ajuste al perfil de cliente ideal (ICP), junto con una puntuación general. Además, infiere si la empresa está inclinada a comprar, construir o una combinación de ambas, basándose en el lenguaje de la oferta de empleo. La habilidad genera 1-3 ángulos de alcance recomendados, cada uno con una narrativa y puntos de conversación concretos, y crea un objeto de transferencia que puede ser consumido directamente por el constructor de secuencias de alcance. Se integra con la API de Gemini (gemini-2.0-flash) para el análisis y requiere que el usuario proporcione un resumen del producto, una descripción del ICP y hasta 15 publicaciones de empleo. Es ideal para priorizar cuentas basadas en señales de contratación, planificar alcances basados en cuentas y refinar la segmentación de productos.

Compatible con~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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Publicación de Empleo de LinkedIn a Mapa de Dolor del Comprador

Toma publicaciones de empleo de LinkedIn. Decodifícalas en un mapa estructurado de dolor del comprador con puntuaciones, dolores y ángulos de alcance.


Regla crítica: Cada dolor inferido debe citar lenguaje específico de la descripción del trabajo que lo respalde. Nunca inventes dolores que no estén fundamentados en el texto. Si una publicación es demasiado genérica para inferir dolor, dila explícitamente y asigna una puntuación de intensidad de señal baja.

Regla ética: No infieras atributos personales o características protegidas sobre los candidatos. Enfócate estrictamente en el dolor operativo a nivel de empresa y las necesidades organizacionales.


Paso 1: Verificación de Configuración

Confirma que las variables de entorno requeridas existen:

echo "GEMINI_API_KEY: ${GEMINI_API_KEY:+set}"

Si GEMINI_API_KEY falta: Detente. Dile al usuario: "Se requiere GEMINI_API_KEY. Obténla en aistudio.google.com. Agrégala a tu archivo .env."


Paso 2: Recopilar Entradas

La habilidad necesita 3 entradas requeridas. Recógelas antes de continuar.

2a: Resumen del Producto

Pregunta: "Describe tu producto en 2-5 oraciones. ¿Qué haces, cuál es tu propuesta de valor principal y a quién te diriges?"

Si el usuario ya incluyó esto en su mensaje: Extráelo. Confirma: "Resumen del producto capturado: [resumen]."

2b: Descripción del ICP

Pregunta: "Describe tu perfil de cliente ideal en 2-6 viñetas: industrias, tamaños de empresa, roles a los que vendes, pistas sobre el stack tecnológico."

Si el usuario ya incluyó esto en su mensaje: Extráelo. Confirma: "ICP capturado: [resumen]."

2c: Publicaciones de Empleo

Pregunta: "Pega las descripciones de trabajo que deseas analizar. Para cada publicación, incluye el nombre de la empresa, el título del puesto y el texto completo de la descripción. Puedes pegar de 1 a 15 publicaciones."

Formatos aceptados:

  • Texto pegado sin procesar con el nombre de la empresa y el título del trabajo claramente etiquetados
  • Objetos JSON estructurados con campos: company_name, job_title, location (opcional), seniority (opcional), team_or_function (opcional), job_description_text, job_url (opcional)
  • Varias publicaciones separadas por delimitadores claros (--- o numerados)

Si falta algún campo: Infiere lo que puedas del texto de la descripción. Si faltan company_name o job_description_text, pídelos antes de continuar.

2d: Entradas Opcionales

Si el usuario proporciona alguna de estas, captúralas:

  • account_notes: contexto adicional por empresa (financiamiento, stack tecnológico, herramientas conocidas, contactos)
  • focus_dimension: "pipeline" (sesgo hacia la puntuación y priorización), "positioning" (sesgo hacia ángulos de mensajería) o "both" (predeterminado)

Paso 3: Extraer Señales

Para cada publicación de empleo, analiza y extrae:

  1. Equipo / función: ¿En qué equipo está este rol? (GTM, Producto, Infraestructura, Datos, RevOps, CS, Ingeniería, etc.)
  2. Seniority: IC, Senior IC, Gerente, Director, VP, C-level
  3. Énfasis de responsabilidades: Clasifica el modo dominante:
    • Apagar incendios: "estabilizar", "arreglar", "reducir tiempo de inactividad", "desbloquear"
    • Construir nuevo: "construir desde cero", "0→1", "greenfield", "diseñar e implementar"
    • Optimizar: "escalar", "optimizar", "mejorar eficiencia", "automatizar"
    • Reemplazar: "reemplazar legado", "migrar desde", "modernizar"
  4. Lenguaje de requisitos: Nota palabras clave que indican intención: "primera contratación X", "rol crítico", "inmediato", "debe tener"
  5. Pistas de herramientas / stack: Cualquier referencia a herramientas específicas, plataformas o categorías tecnológicas que se superpongan con el área del producto del usuario

Agrupa por empresa. Si varias publicaciones provienen de la misma empresa, agrupa sus señales juntas.

Declara: "Señales extraídas de X publicaciones en Y empresas."


Paso 4: Puntuación con el LLM

Lee references/scoring-rubric.md para el modelo de puntuación completo.

Construye la solicitud LLM:

cat > /tmp/pain-map-score-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "Eres un analista de GTM que se especializa en decodificar señales de contratación en intención de compra. Para cada cuenta proporcionada, puntuarás tres dimensiones e inferirás el contexto de la empresa. Reglas: (1) Cada puntuación debe incluir una explicación de una oración en texto plano. (2) signal_strength mide cuántas y qué tan específicas son las señales de contratación en relación con el área del producto del usuario. (3) urgency mide qué tan urgente parece la necesidad de contratación. (4) icp_fit mide qué tan cerca coincide la empresa con la descripción del ICP del usuario. (5) Cada puntuación es de 1 a 10. (6) overall_score = round((0.4 * signal_strength + 0.3 * urgency + 0.3 * icp_fit) * 10). (7) Infiere buy_vs_build del lenguaje del trabajo. Usa EXACTAMENTE una de estas etiquetas: 'Leaning build', 'Leaning buy', 'Hybrid (buy-and-build)', 'Unknown'. (8) Infiere stage_guess a partir de pistas de la empresa: etapa de financiamiento, número de empleados, tipo de empresa. (9) Genera solo JSON válido."
    }]
  },
  "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'])"

Reemplaza SCORING_CONTEXT_HERE con:

  • El resumen del producto y la descripción del ICP del Paso 2
  • Las señales extraídas por empresa del Paso 3
  • Las reglas de la rúbrica de puntuación de references/scoring-rubric.md
  • Instrucciones para generar JSON con: company_name, headline, overall_score, score_breakdown (signal_strength, urgency, icp_fit — cada uno con puntuación y explicación), stage_guess, buy_vs_build_guess

Paso 5: Construir Mapa de Dolor

Para cada cuenta, usa las señales extraídas y el contexto de puntuación del LLM para construir el mapa de dolor del comprador.

cat > /tmp/pain-map-analysis-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "Eres un analista de dolor B2B que lee descripciones de trabajo e identifica los dolores operativos que está experimentando una empresa. Reglas: (1) Cada dolor debe tener una etiqueta corta, una descripción de 1-3 oraciones y frases específicas citadas de la publicación de empleo como evidencia de respaldo. (2) Clasifica los dolores como primarios (directamente relevantes para el producto del usuario) o secundarios (dolor real pero tangencial al producto). (3) Si una publicación es demasiado genérica para inferir dolor específico, indícalo explícitamente — no inventes. (4) Para cada cuenta, genera también 1-3 ángulos de alcance recomendados. Cada ángulo tiene: angle_name (corto), narrative (1-2 oraciones sobre cómo liderar) y talk_track_bullets (2-4 puntos de conversación concretos). (5) Los ángulos de alcance deben hacer referencia a dolores y evidencia específicos, no a propuestas de valor genéricas. Sin palabras prohibidas: sinergia, apalancamiento, innovador, de punta, mejor-en-su-clase, clase mundial, transformador, disruptivo, sin fisuras, robusto, integral, revolucionar, transformar, optimizar. (6) Genera solo JSON válido."
    }]
  },
  "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'])"

Reemplaza ANALYSIS_CONTEXT_HERE con:

  • El resumen del producto y la descripción del ICP
  • Las publicaciones de empleo de cada empresa (texto completo)
  • Las puntuaciones y el contexto del Paso 4
  • Notas de la cuenta si se proporcionaron
  • La preferencia de focus_dimension (pipeline / positioning / both)
  • Instrucciones para generar por cuenta: buyer_pain_map (primary_pains, secondary_pains) y recommended_outreach_angles

Lee references/examples.md para calibrar la calidad y profundidad esperadas del resultado.


Paso 6: Construir Objeto de Transferencia

Para cada cuenta, genera un bloque de transferencia estructurado que outreach-sequence-builder pueda consumir directamente:

handoff:
  for_outreach_sequence_builder:
    account_summary: Resumen de 2-3 oraciones de la situación de la empresa y el contexto de contratación
    key_pain: El dolor más procesable en una oración
    suggested_personas: 2-4 títulos de trabajo de las personas con más probabilidades de ser dueñas de este dolor
    tone: Una oración que describe el tono de alcance recomendado

La transferencia debe ser lo suficientemente concreta como para que alguien pueda pegarla en el mensaje de outreach-sequence-builder y obtener una secuencia utilizable sin tener que investigar la cuenta nuevamente.


Paso 7: Autoverificación

Ejecuta cada verificación y corrige las violaciones antes de presentar:

  • Cada dolor inferido cita al menos una frase específica de la descripción del trabajo
  • No se inventaron dolores para publicaciones genéricas/de baja señal (verifica publicaciones con signal_strength ≤ 3)
  • Las tres puntuaciones (signal_strength, urgency, icp_fit) tienen una explicación de una oración
  • La puntuación general coincide con la fórmula: round((0.4 × signal + 0.3 × urgency + 0.3 × icp_fit) × 10)
  • La etiqueta de compra-vs-construcción es una de: "Leaning build", "Leaning buy", "Hybrid (buy-and-build)", "Unknown"
  • Sin palabras prohibidas en los ángulos de alcance: sinergia, apalancamiento, innovador, de punta, mejor-en-su-clase, clase mundial, transformador, disruptivo, sin fisuras, robusto, integral, revolucionar, transformar, optimizar
  • Cada ángulo de alcance tiene 2-4 puntos de conversación, no declaraciones de valor genéricas
  • Las cuentas fuera del ICP están marcadas con una recomendación clara para despriorizar
  • Los objetos de transferencia están completos con los 4 campos (account_summary, key_pain, suggested_personas, tone)
  • No se infirieron atributos personales o características protegidas sobre los candidatos
  • Las publicaciones están agrupadas por empresa cuando varias publicaciones provienen de la misma empresa

Corrige cualquier violación antes de presentar.


Paso 8: Salida y Guardado

Salida legible para humanos

Presenta el análisis completo en este formato:

## Mapa de Dolor del Comprador — [YYYY-MM-DD]

**Producto:** [nombre del producto del resumen]
**Publicaciones analizadas:** X publicaciones en Y empresas
**Enfoque:** [pipeline / positioning / both]

---

### [Nombre de la Empresa] — Puntuación: [N]/100

**Titular:** [resumen de una línea de lo que revela la contratación]

| Dimensión | Puntuación | Explicación |
|-----------|-------|-------------|
| Intensidad de Señal | N/10 | [una oración] |
| Urgencia | N/10 | [una oración] |
| Ajuste ICP | N/10 | [una oración] |

**Etapa:** [etapa inferida] | **Compra-vs-Construcción:** [etiqueta de postura]

#### Dolores Primarios
- **[Etiqueta del dolor]:** [descripción de 1-3 oraciones]
  - Evidencia: "[frase citada de la publicación de empleo]"

#### Dolores Secundarios
- **[Etiqueta del dolor]:** [descripción de 1-3 oraciones]
  - Evidencia: "[frase citada de la publicación de empleo]"

#### Ángulos de Alcance Recomendados
1. **[Nombre del ángulo]:** [narrativa]
   - [punto 1]
   - [punto 2]
   - [punto 3]

#### Transferencia → outreach-sequence-builder
> **Resumen:** [2-3 oraciones]
> **Dolor clave:** [una oración]
> **Personas sugeridas:** [lista]
> **Tono:** [una oración]

---

[repite para cada empresa, ordenado por overall_score descendente]

Guardar en archivo

mkdir -p docs/pain-maps
OUTFILE="docs/pain-maps/$(date +%Y-%m-%d).md"
cat > "$OUTFILE" << 'EOF'
REPORT_CONTENT_HERE
EOF
echo "Mapa de dolor guardado en $OUTFILE"

Si se analizan varias empresas, también guarda archivos individuales usando nombres de empresa en slug (minúsculas, reemplaza espacios y caracteres especiales con guiones, elimina guiones finales):

Por ejemplo, "ACME, Inc." → acme-inc.md, "CoolStartup Inc" → coolstartup-inc.md

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

Cuándo Usar

  • Tienes de 1 a 15 descripciones de trabajo pegadas y quieres saber qué dolor siente cada empresa
  • Estás planificando un alcance basado en cuentas y necesitas un análisis estructurado del dolor antes de escribir secuencias
  • Quieres priorizar qué cuentas con señales de contratación abordar primero
  • Un PMM quiere lenguaje de dolor real de publicaciones de empleo para refinar el posicionamiento

Cuándo NO Usar

  • Necesitas encontrar empresas que están contratando (usa linkedin-hiring-intent-scanner o yc-intent-radar-skill)
  • Necesitas escribir mensajes de alcance (usa outreach-sequence-builder — aliméntalo con la transferencia de esta habilidad)
  • Quieres monitorear una plataforma en busca de señales a lo largo del tiempo (usa reddit-icp-monitor o twitter-GTM-find-skill)
  • Necesitas información de contacto o enriquecimiento de correo electrónico (esta habilidad no proporciona eso)

Funciona Bien Con

  • outreach-sequence-builder: Pasa el bloque handoff.for_outreach_sequence_builder directamente como contexto al construir una secuencia.
  • noise-to-linkedin-carousel: Usa los dolores primarios y las citas de evidencia como material fuente para un carrusel sobre los problemas del comprador.
  • reddit-icp-monitor: Compara temas de dolor de publicaciones de empleo con temas de dolor que aparecen en discusiones de 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 relacionados