Communitygithub.com

Varnan-Tech/opendirectory

Converte postagens de vagas do LinkedIn ou descrições de contratação em um mapa de dores do comprador estruturado, com dores inferidas, lacunas de capacidade, sinal de comprar-vs-construir, pontuações de prioridade de conta e sugestões de abordagem de outreach.

O que é opendirectory?

Esta skill transforma descrições de vagas do LinkedIn em um mapa de dores do comprador estruturado e acionável, ideal para estratégias de vendas B2B e marketing baseado em contas. Ela extrai sinais de intenção de contratação, como equipe, senioridade e ênfase em responsabilidades (apagar incêndios, construir, otimizar, substituir), e os combina com um brief do produto e o perfil do cliente ideal (ICP) para gerar pontuações objetivas de força do sinal, urgência e adequação ao ICP. A saída inclui um mapa de dores detalhado, com dores primárias e secundárias fundamentadas em citações diretas das vagas, além de ângulos de outreach sem jargões proibidos e um bloco de handoff pronto para ser usado pela skill `outreach-sequence-builder`. A skill usa a API Gemini (gemini-2.0-flash) e exige a variável de ambiente GEMINI_API_KEY; suporta análise de 1 a 15 vagas por execução e agrupa automaticamente posts da mesma empresa.

Funciona com~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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Mapa de Dor do Comprador a partir de Vagas no LinkedIn

Pegue posts de vagas do LinkedIn. Decodifique-os em um mapa de dor do comprador estruturado com pontuações, dores e ângulos de outreach.


Regra crítica: Toda dor inferida deve citar linguagem específica da descrição da vaga que a suporte. Nunca alucine dores que não estejam fundamentadas no texto. Se um post for muito genérico para inferir dor, diga isso explicitamente e atribua uma pontuação de força de sinal baixa.

Regra ética: Não infira atributos pessoais ou características protegidas sobre os candidatos. Foque estritamente na dor operacional no nível da empresa e nas necessidades organizacionais.


Passo 1: Verificação de Configuração

Confirme as variáveis de ambiente necessárias:

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

Se GEMINI_API_KEY estiver faltando: Pare. Informe ao usuário: "GEMINI_API_KEY é necessária. Obtenha em aistudio.google.com. Adicione ao seu arquivo .env."


Passo 2: Coletar Entradas

A skill precisa de 3 entradas obrigatórias. Colete-as antes de prosseguir.

2a: Brief do Produto

Pergunte: "Descreva seu produto em 2 a 5 frases. O que você faz, qual é sua proposta de valor central e para quem você segmenta?"

Se o usuário já incluiu isso no prompt: Extraia. Confirme: "Brief do produto capturado: [resumo]."

2b: Descrição do ICP

Pergunte: "Descreva seu perfil de cliente ideal em 2 a 6 tópicos: setores, portes de empresa, cargos para os quais você vende, dicas de stack tecnológico."

Se o usuário já incluiu isso no prompt: Extraia. Confirme: "ICP capturado: [resumo]."

2c: Posts de Vagas

Pergunte: "Cole as descrições de vagas que você deseja analisar. Para cada post, inclua o nome da empresa, o título do cargo e o texto completo da descrição. Você pode colar de 1 a 15 posts."

Formatos aceitos:

  • Texto bruto colado com nome da empresa e título do cargo claramente identificados
  • Objetos JSON estruturados com campos: company_name, job_title, location (opcional), seniority (opcional), team_or_function (opcional), job_description_text, job_url (opcional)
  • Vários posts separados por delimitadores claros (--- ou numerados)

Se algum campo estiver faltando: Infira o que puder a partir do texto da descrição. Se company_name ou job_description_text estiver faltando, peça antes de prosseguir.

2d: Entradas Opcionais

Se o usuário fornecer algum destes, capture:

  • account_notes: contexto adicional por empresa (financiamento, stack tecnológico, ferramentas conhecidas, contatos)
  • focus_dimension: "pipeline" (tendência a pontuação e priorização), "positioning" (tendência a ângulos de mensagem) ou "both" (padrão)

Passo 3: Extrair Sinais

Para cada post de vaga, analise e extraia:

  1. Time / função: Em qual time esse cargo está? (GTM, Produto, Infra, Dados, RevOps, CS, Engenharia, etc.)
  2. Senioridade: IC, Senior IC, Gerente, Diretor, VP, C-level
  3. Ênfase nas responsabilidades: Classifique o modo dominante:
    • Apagar incêndios: "estabilizar", "corrigir", "reduzir tempo de inatividade", "desbloquear"
    • Construir novo: "construir do zero", "0→1", "greenfield", "projetar e implementar"
    • Otimizar: "dimensionar", "otimizar", "melhorar eficiência", "automatizar"
    • Substituir: "substituir legado", "migrar de", "modernizar"
  4. Linguagem dos requisitos: Observe palavras-chave que sinalizam intenção: "primeira contratação X", "cargo crítico", "imediato", "deve ter"
  5. Dicas de ferramentas / stack: Quaisquer referências a ferramentas específicas, plataformas ou categorias de tecnologia que se sobreponham à área de produto do usuário

Agrupe por empresa. Se vários posts vierem da mesma empresa, agrupe seus sinais juntos.

Informe: "Sinais extraídos de X posts em Y empresas."


Passo 4: Pontuar com o LLM

Leia references/scoring-rubric.md para o modelo de pontuação completo.

Construa a requisição LLM:

cat > /tmp/pain-map-score-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "Você é um analista de GTM especializado em decodificar sinais de contratação em intenção de compra. Para cada conta fornecida, você pontuará três dimensões e inferirá o contexto da empresa. Regras: (1) Cada pontuação deve incluir uma explicação em texto simples de uma frase. (2) signal_strength mede quantos e quão específicos são os sinais de contratação em relação à área de produto do usuário. (3) urgency mede o quão urgente a necessidade de contratação parece. (4) icp_fit mede o quão próxima a empresa está da descrição do ICP do usuário. (5) Cada pontuação é de 1 a 10. (6) overall_score = round((0.4 * signal_strength + 0.3 * urgency + 0.3 * icp_fit) * 10). (7) Infira buy_vs_build a partir da linguagem da vaga. Use EXATAMENTE um destes rótulos: 'Leaning build', 'Leaning buy', 'Hybrid (buy-and-build)', 'Unknown'. (8) Infira stage_guess a partir de pistas da empresa: estágio de financiamento, número de funcionários, tipo de empresa. (9) Produza apenas 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'])"

Substitua SCORING_CONTEXT_HERE por:

  • O brief do produto e a descrição do ICP do Passo 2
  • Os sinais extraídos por empresa do Passo 3
  • As regras da rubrica de pontuação de references/scoring-rubric.md
  • Instruções para produzir JSON com: company_name, headline, overall_score, score_breakdown (signal_strength, urgency, icp_fit — cada um com pontuação e explicação), stage_guess, buy_vs_build_guess

Passo 5: Construir Mapa de Dor

Para cada conta, use os sinais extraídos e o contexto de pontuação do LLM para construir o mapa de dor do comprador.

cat > /tmp/pain-map-analysis-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "Você é um analista de dor B2B que lê descrições de vagas e identifica as dores operacionais que uma empresa está enfrentando. Regras: (1) Toda dor deve ter um rótulo curto, uma descrição de 1 a 3 frases e frases específicas citadas do post de vaga como evidência de suporte. (2) Classifique as dores como primárias (diretamente relevantes para o produto do usuário) ou secundárias (dor real, mas tangencial ao produto). (3) Se um post for muito genérico para inferir dor específica, declare isso explicitamente — não alucine. (4) Para cada conta, gere também de 1 a 3 ângulos de outreach recomendados. Cada ângulo tem: angle_name (curto), narrative (1-2 frases sobre como liderar) e talk_track_bullets (2-4 pontos de conversa concretos). (5) Os ângulos de outreach devem referenciar dores e evidências específicas, não propostas de valor genéricas. Nenhuma palavra proibida: sinergia, alavancar, inovador, de ponta, melhor da classe, classe mundial, transformador, disruptivo, perfeito, robusto, abrangente, revolucionar, transformar, otimizar. (6) Produza apenas 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'])"

Substitua ANALYSIS_CONTEXT_HERE por:

  • O brief do produto e a descrição do ICP
  • Os posts de vagas de cada empresa (texto completo)
  • As pontuações e o contexto do Passo 4
  • Notas da conta, se fornecidas
  • A preferência de focus_dimension (pipeline / positioning / both)
  • Instruções para produzir por conta: buyer_pain_map (primary_pains, secondary_pains) e recommended_outreach_angles

Leia references/examples.md para calibrar a qualidade e profundidade esperadas da saída.


Passo 6: Construir Objeto de Handoff

Para cada conta, gere um bloco de handoff estruturado que o outreach-sequence-builder possa consumir diretamente:

handoff:
  for_outreach_sequence_builder:
    account_summary: Resumo de 2 a 3 frases da situação da empresa e do contexto de contratação
    key_pain: A dor mais acionável em uma frase
    suggested_personas: 2 a 4 títulos de cargos das pessoas com maior probabilidade de serem donas dessa dor
    tone: Uma frase descrevendo o tom de outreach recomendado

O handoff deve ser concreto o suficiente para que alguém possa colá-lo no prompt do outreach-sequence-builder e obter uma sequência utilizável sem pesquisar novamente a conta.


Passo 7: Auto-QA

Execute cada verificação e corrija violações antes de apresentar:

  • Toda dor inferida cita pelo menos uma frase específica da descrição da vaga
  • Nenhuma dor alucinada para posts genéricos/de sinal fraco (verifique posts com signal_strength ≤ 3)
  • Todas as três pontuações (signal_strength, urgency, icp_fit) têm uma explicação de uma frase
  • A pontuação geral corresponde à fórmula: round((0.4 × signal + 0.3 × urgency + 0.3 × icp_fit) × 10)
  • O rótulo comprar-vs-construir é um de: "Leaning build", "Leaning buy", "Hybrid (buy-and-build)", "Unknown"
  • Nenhuma palavra proibida em ângulos de outreach: sinergia, alavancar, inovador, de ponta, melhor da classe, classe mundial, transformador, disruptivo, perfeito, robusto, abrangente, revolucionar, transformar, otimizar
  • Cada ângulo de outreach tem de 2 a 4 bullets de talk track, não declarações de valor genéricas
  • Contas fora do ICP são sinalizadas com uma recomendação clara para despriorizar
  • Objetos de handoff estão completos com todos os 4 campos (account_summary, key_pain, suggested_personas, tone)
  • Nenhum atributo pessoal ou característica protegida inferido sobre candidatos
  • Posts agrupados por empresa quando vários posts são da mesma empresa

Corrija qualquer violação antes de apresentar.


Passo 8: Saída e Salvamento

Saída legível para humanos

Apresente a análise completa neste formato:

## Mapa de Dor do Comprador — [YYYY-MM-DD]

**Produto:** [nome do produto do brief]
**Posts analisados:** X posts em Y empresas
**Foco:** [pipeline / positioning / both]

---

### [Nome da Empresa] — Pontuação: [N]/100

**Título:** [resumo de uma linha sobre o que a contratação revela]

| Dimensão | Pontuação | Explicação |
|----------|-----------|-------------|
| Força do Sinal | N/10 | [uma frase] |
| Urgência | N/10 | [uma frase] |
| Adequação ao ICP | N/10 | [uma frase] |

**Estágio:** [palpite de estágio] | **Comprar-vs-Construir:** [rótulo de postura]

#### Dores Primárias
- **[Rótulo da dor]:** [descrição de 1 a 3 frases]
  - Evidência: "[frase citada do post de vaga]"

#### Dores Secundárias
- **[Rótulo da dor]:** [descrição de 1 a 3 frases]
  - Evidência: "[frase citada do post de vaga]"

#### Ângulos de Outreach Recomendados
1. **[Nome do ângulo]:** [narrativa]
   - [bullet 1]
   - [bullet 2]
   - [bullet 3]

#### Handoff → outreach-sequence-builder
> **Resumo:** [2 a 3 frases]
> **Dor chave:** [uma frase]
> **Personas sugeridas:** [lista]
> **Tom:** [uma frase]

---

[repita para cada empresa, ordenado por overall_score decrescente]

Salvar em arquivo

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

Se várias empresas forem analisadas, salve também arquivos individuais usando nomes de empresa slugificados (minúsculas, substitua espaços e caracteres especiais por hífens, remova hífens finais):

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

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

Quando Usar

  • Você tem de 1 a 15 descrições de vagas coladas e quer saber qual dor cada empresa está sentindo
  • Você está planejando outreach baseado em conta e precisa de análise de dor estruturada antes de escrever sequências
  • Você quer priorizar quais contas com sinal de contratação abordar primeiro
  • Um PMM quer linguagem de dor do mundo real a partir de posts de vagas para refinar o posicionamento

Quando NÃO Usar

  • Você precisa encontrar empresas que estão contratando (use linkedin-hiring-intent-scanner ou yc-intent-radar-skill)
  • Você precisa escrever mensagens de outreach (use outreach-sequence-builder — alimente-o com o handoff desta skill)
  • Você quer monitorar uma plataforma por sinais ao longo do tempo (use reddit-icp-monitor ou twitter-GTM-find-skill)
  • Você precisa de informações de contato ou enriquecimento de e-mail (esta skill não fornece isso)

Funciona Bem Com

  • outreach-sequence-builder: Passe o bloco handoff.for_outreach_sequence_builder diretamente como contexto ao construir uma sequência.
  • noise-to-linkedin-carousel: Use as dores primárias e citações de evidência como material de origem para um carrossel sobre problemas do comprador.
  • reddit-icp-monitor: Faça referência cruzada de temas de dor de posts de vagas com temas de dor que aparecem em discussões do 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.

Habilidades Relacionadas