Communitygithub.com

Buscador de Inversores VC

Toma la URL o descripción de un producto startup, detecta la industria y etapa de financiación, identifica 5 empresas comparables financiadas, busca quién invirtió en esas empresas (Pista A), encuentra VCs que publican tesis de inversión sobre este espacio (Pista B), y devuelve una lista clasificada y fundamentada de inversores relevantes con análisis detallados y ganchos de contacto. Úsalo cuando te pidan encontrar inversores para una startup, identificar qué VCs financian productos como el tuyo, investigar quién respalda empresas en tu espacio, construir una lista objetivo de VCs o encontrar ajuste inversor-mercado.

¿Qué es Buscador de Inversores VC?

Esta habilidad permite a un agente de IA investigar inversores de capital riesgo (VC) para una startup. El usuario proporciona una URL del producto o una descripción, y la habilidad realiza una serie de pasos automatizados. Primero, detecta la industria y la etapa de financiación (pre-seed, seed, series A/B) analizando el sitio web o la descripción. Luego, busca en vivo 5 empresas comparables financiadas con la API de Tavily. A continuación, ejecuta dos pistas de investigación (Pista A: inversores de empresas comparables; Pista B: VCs con tesis de inversión sobre el sector) y compila una lista de inversores con fuentes y ganchos de contacto personalizados. La habilidad sigue una política estricta de 'cero alucinaciones', exigiendo que cada hecho se pueda rastrear hasta resultados de búsqueda de Tavily o la página del producto. Está diseñada para plataformas como Claude Code, Cursor o Codex, y utiliza herramientas externas como Tavily API, Firecrawl y análisis basado en expresiones regulares. El resultado final es un JSON con una lista clasificada de VCs, cada uno con su tesis, tamaño de cheque, etapa de enfoque y un gancho de contacto único.

Compatible con✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Varnan-Tech/opendirectory/tree/main/skills/vc-finder

Preguntar en tu IA favorita

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

Documentación

¿Qué hace Buscador de Inversores VC?

Toma una URL o descripción de producto. Detecta industria y etapa. Encuentra 5 empresas comparables financiadas. Ejecuta dos pistas de investigación: quién invirtió en esos comparables (Pista A), y qué VCs publican tesis sobre este espacio (Pista B). Devuelve una lista clasificada y fundamentada de inversores con ganchos de contacto.


Política de cero alucinaciones: Cada hecho en el resultado debe ser trazable hasta un resultado de búsqueda específico de Tavily o la página del producto obtenida. Esto aplica a:

  • Nombres de empresas comparables: deben aparecer en resultados de búsqueda de Tavily, no en conocimiento de entrenamiento de IA
  • Nombres de fondos VC: deben aparecer textualmente en resultados de búsqueda de Tavily
  • Tamaños de cheque, enfoque de etapa, empresas en cartera: deben provenir de fragmentos de búsqueda, no de conocimiento de IA
  • Resúmenes de fondos y tesis: extraídos solo de fragmentos de búsqueda. Si un detalle no está en los datos de búsqueda, escribe "no encontrado en datos de búsqueda" -- no lo completes con conocimiento de entrenamiento.

Errores Comunes

El agente querrá...Por qué está mal
Añadir a16z o Sequoia porque son famososUn VC famoso sin evidencia es ruido. Solo incluye VCs que aparezcan en resultados de búsqueda de Tavily para este producto específico. Mencionar nombres grandes pierde el tiempo del fundador.
Generar empresas comparables desde conocimiento de entrenamientoLos comparables deben venir de resultados de búsqueda de Tavily (Paso 6). El conocimiento de IA de empresas no es evidencia -- una empresa sugerida de memoria puede tener estado de financiación incorrecto o no ser un verdadero comparable.
Continuar cuando las 5 búsquedas de la Pista A devuelvan 0 resultadosCero resultados en la Pista A significa que los comparables eran incorrectos o demasiado oscuros. Detente, repite el Paso 6 con consultas de búsqueda más amplias y vuelve a intentar.
Incluir un VC de la Pista B sin citar el artículo o publicaciónUna tesis sin fuente es indistinguible de una alucinación. El fundador no puede verificarla y la lista pierde toda credibilidad.
Completar el resumen del fondo desde conocimiento de entrenamientoLos resúmenes de fondos deben provenir solo del texto de fragmentos de Tavily. Si los fragmentos no describen el fondo, escribe "no encontrado en datos de búsqueda".
Detectar etapa a partir de la estética del sitio webLa etapa debe provenir de las señales específicas de CTA detectadas en el Paso 4.
Escribir ganchos de contacto genéricosCada gancho de contacto debe nombrar el diferenciador de este producto específico y una señal de cartera de VC o cita de tesis de los datos de búsqueda.
Omitir la obtención de la URL cuando el usuario también proporciona una descripciónSiempre obtén la URL. La página en vivo a menudo revela señales de etapa que la descripción del usuario omite.

Paso 1: Verificación de Configuración

echo "TAVILY_API_KEY:    ${TAVILY_API_KEY:+set}"
echo "FIRECRAWL_API_KEY: ${FIRECRAWL_API_KEY:-no establecida, se usará extracto de Tavily como respaldo}"

Si falta TAVILY_API_KEY: Detente. Dile al usuario: "TAVILY_API_KEY es necesaria para investigar inversiones y tesis de VC. No hay respaldo para esto. Consíguela en app.tavily.com -- nivel gratuito: 1000 créditos/mes (aproximadamente 125 ejecuciones completas). Añádela a tu archivo .env."

Si solo falta FIRECRAWL_API_KEY: Continúa silenciosamente. Se usará el extracto de Tavily para la obtención de la URL.


Paso 2: Recopilar Entrada

Necesitas:

  • URL del producto (requerida, a menos que el usuario pegue directamente una descripción del producto)
  • Opcional: pista de etapa objetivo (pre-seed, seed, series-a, series-b) -- si se proporciona, úsala y omite la detección de etapa
  • Opcional: preferencia de geografía (US, Europa, global) -- por defecto US si no se especifica

Si el usuario proporciona solo una descripción pegada (sin URL): Omite los Pasos 3-4. Ve directamente al Paso 5 con el texto pegado como product_content. Establece stage_source en user_description.

Si no se proporciona ni URL ni descripción: Pregunta: "¿Cuál es la URL de tu producto o startup? O pega una breve descripción: qué hace, para quién es y en qué etapa estás (pre-seed, seed, Series A)."

Deriva el slug del producto de la URL para el nombre del archivo de salida:

PRODUCT_SLUG=$(python3 -c "
from urllib.parse import urlparse
url = 'URL_AQUI'
host = urlparse(url).netloc.replace('www.', '')
print(host.split('.')[0])
")

Paso 3: Obtener Página del Producto

Principal: Firecrawl (si FIRECRAWL_API_KEY está establecida)

curl -s -X POST https://api.firecrawl.dev/v1/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "URL_AQUI", "formats": ["markdown"], "onlyMainContent": true}' \
  | python3 -c "
import sys, json
d = json.load(sys.stdin)
content = d.get('data', {}).get('markdown', '') or d.get('markdown', '')
print(f'Obtenido: {len(content)} caracteres')
open('/tmp/vc-product-raw.md', 'w').write(content)
"

Respaldo: Extracto de Tavily (si FIRECRAWL_API_KEY no está establecida)

curl -s -X POST https://api.tavily.com/extract \
  -H "Content-Type: application/json" \
  -d '{"api_key": "$TAVILY_API_KEY", "urls": ["URL_AQUI"]}' \
  | python3 -c "
import sys, json
d = json.load(sys.stdin)
content = d.get('results', [{}])[0].get('raw_content', '')
print(f'Obtenido mediante extracto de Tavily: {len(content)} caracteres')
open('/tmp/vc-product-raw.md', 'w').write(content)
"

Punto de control a nivel de paso:

python3 -c "
content = open('/tmp/vc-product-raw.md').read()
if len(content) < 200:
    print('ERROR: La página devolvió menos de 200 caracteres.')
else:
    print(f'Contenido OK: {len(content)} caracteres')
"

Si el contenido < 200 caracteres: Detén la obtención. Dile al usuario: "La página del producto no devolvió contenido legible. Esto suele significar que el sitio está renderizado con JavaScript y requiere un navegador. Por favor, pega tu descripción del producto directamente: qué hace, para quién es y en qué etapa estás."

Procede al Paso 5 usando la descripción pegada como product_content.


Paso 4: Detectar Señales de Etapa Localmente (Sin API)

Analiza el markdown obtenido con expresiones regulares antes del paso de análisis.

python3 << 'PYEOF'
import re, json

content = open('/tmp/vc-product-raw.md').read().lower()
stage_signals = []

if re.search(r'join\s+(the\s+)?waitlist|sign\s+up\s+for\s+beta|early\s+access|request\s+(an?\s+)?invite|get\s+notified', content):
    stage_signals.append({'signal': 'CTA de lista de espera o beta', 'stage_hint': 'pre-seed'})

if re.search(r'start\s+(your\s+)?free\s+trial|try\s+(it\s+)?for\s+free|request\s+a?\s+demo|book\s+a?\s+demo|schedule\s+a?\s+demo', content):
    stage_signals.append({'signal': 'CTA de prueba gratuita o demo', 'stage_hint': 'seed'})

if re.search(r'contact\s+sales|talk\s+to\s+(our\s+)?sales|see\s+pricing|view\s+pricing|plans\s+and\s+pricing', content):
    stage_signals.append({'signal': 'CTA de precios o ventas', 'stage_hint': 'series-a'})
if re.search(r'case\s+stud(y|ies)|customer\s+stor(y|ies)|trusted\s+by\s+[\d,]+|used\s+by\s+[\d,]+', content):
    stage_signals.append({'signal': 'casos de estudio o recuento de clientes', 'stage_hint': 'series-a'})

if re.search(r'enterprise\s+(plan|pricing|tier)|we.?re\s+hiring|join\s+our\s+team|open\s+positions', content):
    stage_signals.append({'signal': 'nivel empresarial o vacantes de empleo', 'stage_hint': 'series-a-o-b'})

funding_match = re.search(
    r'raised\s+\$[\d,.]+\s*[mk]?|series\s+[abc]\s+round|seed\s+round|(\$[\d,.]+\s*[mk]?\s+(?:seed|series\s+[abc]))',
    content
)
if funding_match:
    stage_signals.append({'signal': f'texto de financiación: {funding_match.group(0).strip()}', 'stage_hint': 'anunciada'})

if not stage_signals:
    dominante = 'desconocida'
elif any(s['stage_hint'] == 'anunciada' for s in stage_signals):
    dominante = 'anunciada'
elif any(s['stage_hint'] == 'series-a-o-b' for s in stage_signals):
    dominante = 'series-a'
elif any(s['stage_hint'] == 'series-a' for s in stage_signals):
    dominante = 'series-a'
elif any(s['stage_hint'] == 'seed' for s in stage_signals):
    dominante = 'seed'
else:
    dominante = 'pre-seed'

confianza = 'alta' if len(stage_signals) >= 2 else ('media' if len(stage_signals) == 1 else 'baja')

resultado = {'señales': stage_signals, 'etapa_dominante': dominante, 'confianza': confianza}
json.dump(resultado, open('/tmp/vc-stage-signals.json', 'w'), indent=2)
print(f'Etapa: {dominante} (confianza {confianza}) de {len(stage_signals)} señal(es)')
for s in stage_signals:
    print(f'  - {s["signal"]} -> {s["stage_hint"]}')
PYEOF

Paso 5: Análisis del Producto (Taxonomía, Etapa, ICP)

Imprime el contenido del producto y las señales de etapa:

python3 -c "
import json
content = open('/tmp/vc-product-raw.md').read()[:6000]
signals = json.load(open('/tmp/vc-stage-signals.json'))
print('=== PÁGINA DEL PRODUCTO (primeros 6000 caracteres) ===')
print(content)
print()
print('=== SEÑALES DE ETAPA DETECTADAS ===')
print(json.dumps(signals, indent=2))
"

Instrucciones de IA: Analiza el contenido de la página del producto anterior. Genera la taxonomía, el ICP y la clasificación de etapa solamente -- NO generes empresas comparables todavía (eso se hace mediante búsqueda en vivo en el Paso 6).

Escribe en /tmp/vc-product-analysis.json:

  • product_name: de la página
  • one_line_description: qué hace, para quién, propuesta de valor central. Menos de 20 palabras. Sin lenguaje de marketing.
  • industry_taxonomy: l1 (nivel superior: fintech / healthtech / herramientas para desarrolladores / consumo / etc.), l2 (sector: tecnología de ventas / software de logística / etc.), l3 (nicho específico: prospección saliente / enrutamiento de última milla / etc.). Etiquetas vagas como "tecnología" o "software" por sí solas no son aceptables.
  • icp: buyer_persona (título del puesto), company_type, company_size
  • detected_stage: pre-seed / seed / series-a / series-b / desconocida
  • stage_confidence: alta / media / baja
  • stage_evidence: una oración citando exactamente qué CTA o texto en la página impulsó esto. Escribe "no se encontraron señales claras" si es desconocido.
  • geography_bias: US / Europa / global / poco claro
  • comparable_companies: deja como arreglo vacío [] -- se completará en el Paso 6
python3 << 'PYEOF'
import json

analysis = {
    # COMPLETA desde tu análisis anterior
    "comparable_companies": []
}

json.dump(analysis, open('/tmp/vc-product-analysis.json', 'w'), indent=2)
print('Análisis del producto escrito.')
PYEOF

Verifica:

python3 -c "
import json
a = json.load(open('/tmp/vc-product-analysis.json'))
print('Producto:', a['product_name'])
print('Industria:', a['industry_taxonomy']['l1'], '>', a['industry_taxonomy']['l2'], '>', a['industry_taxonomy']['l3'])
print('Etapa:', a['detected_stage'], '(' + a['stage_confidence'] + ' confianza)')
"

Paso 5b: Coincidencia Preliminar Curada con Conjunto de Datos de Fondos Verificados

Ejecuta la taxonomía del producto contra un conjunto curado de 25 fondos VC verificados (obtenidos de sitios web de fondos). Produce coincidencias de fondos sin alucinaciones y comparables semilla para la Pista A -- sin consumir créditos de Tavily.

Imprime el análisis del producto para el mapeo de etiquetas:

python3 -c "
import json
a = json.load(open('/tmp/vc-product-analysis.json'))
print('Taxonomía:', a['industry_taxonomy']['l1'], '>', a['industry_taxonomy']['l2'], '>', a['industry_taxonomy']['l3'])
print('Etapa:', a['detected_stage'])
print('Geografía:', a['geography_bias'])
"

Instrucciones de IA: Mapea la taxonomía del producto a las etiquetas estándar utilizadas en el conjunto de datos de fondos. Etiquetas disponibles: DevTools, Infrastructure, Open Source, B2B SaaS, AI, Data, FinTech, HealthTech, Enterprise, Consumer, Marketplaces, E-commerce, Crypto, DeepTech, Cybersecurity, Generalist

Elige 2-4 etiquetas que describan este producto. Mapea detected_stage a: Pre-seed, Seed, Series A, o Growth. Mapea geography_bias a: US, Europe, India, o Global.

Escribe el contexto del producto:

python3 << 'PYEOF'
import json

# COMPLETA según el análisis de taxonomía anterior
context = {
    "extracted_tags": ["EtiquetaA", "EtiquetaB"],  # 2-4 etiquetas de la lista anterior
    "stage_hint": "Seed",               # Pre-seed / Seed / Series A / Growth
    "geography_hint": "US"              # US / Europe / India / Global
}
json.dump(context, open('/tmp/vc-product-context.json', 'w'), indent=2)
print('Contexto del producto:', context)
PYEOF

Ejecuta la puntuación contra el conjunto de datos curado integrado:

python3 << 'PYEOF'
import json

context = json.load(open('/tmp/vc-product-context.json'))

VC_FUNDS = [
  {"fund_name":"Y Combinator","thesis":"Proporcionamos financiación inicial para startups. Invertimos en equipos profundamente técnicos que construyen empresas masivas en todos los dominios.","check_size":"$500k","stage_focus":["Pre-seed","Seed"],"industry_tags":["Generalist","B2B SaaS","DevTools","AI"],"geography_focus":["Global"],"notable_portfolio":["Stripe","Airbnb","GitLab"],"website":"https://www.ycombinator.com"},
  {"fund_name":"boldstart ventures","thesis":"Socio desde el día uno para fundadores de developer first, crypto y SaaS. Amamos a los fundadores profundamente técnicos que resuelven problemas difíciles de infraestructura.","check_size":"$1M - $3M","stage_focus":["Pre-seed","Seed"],"industry_tags":["DevTools","Infrastructure","Crypto"],"geography_focus":["Global","US"],"notable_portfolio":["Snyk","Blockdaemon","Superhuman"],"website":"https://boldstart.vc"},
  {"fund_name":"Heavybit","thesis":"El inversor líder en startups developer-first. Ayudamos a fundadores técnicos a lanzar, ganar tracción y construir empresas listas para el enterprise.","check_size":"$1M - $5M","stage_focus":["Seed","Series A"],"industry_tags":["DevTools","Infrastructure","Open Source"],"geography_focus":["Global","US"],"notable_portfolio":["PagerDuty","Sanity","Netlify"],"website":"https://www.heavybit.com"},
  {"fund_name":"Amplify Partners","thesis":"Invertimos en fundadores técnicos que construyen la próxima generación de infraestructura de TI, herramientas para desarrolladores y plataformas de datos.","check_size":"$2M - $8M","stage_focus":["Seed","Series A"],"industry_tags":["DevTools","Infrastructure","AI","Data"],"geography_focus":["US"],"notable_portfolio":["Datadog","OCTO","dbt Labs"],"website":"https://www.amplifypartners.com"},
  {"fund_name":"OSS Capital","thesis":"Respaldamos exclusivamente a fundadores en etapa temprana que construyen empresas de Software de Código Abierto Comercial (COSS).","check_size":"$500k - $2M","stage_focus":["Pre-seed","Seed","Series A"],"industry_tags":["Open Source","DevTools"],"geography_focus":["Global"],"notable_portfolio":["Cal.com","Appsmith","Hoppscotch"],"website":"https://oss.capital"},
  ...
]

PYEOF

(El contenido se ha truncado para la traducción ya que el original estaba truncado)

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