Communitygithub.com

Varnan-Tech/opendirectory

Pega a URL ou descrição de um produto startup, detecta o setor e estágio de financiamento, identifica 5 empresas financiadas comparáveis, pesquisa quem investiu nessas empresas (Track A), encontra VCs que publicam teses de investimento sobre esse espaço (Track B) e retorna uma lista ranqueada e com fontes de investidores relevantes, com análises aprofundadas e ganchos de abordagem.

O que é opendirectory?

Esta skill transforma uma URL de produto ou descrição textual em um relatório acionável de prospecção de investidores para startups. Ela primeiro detecta o setor (FinTech, HealthTech, DevTools, etc.) e o estágio de financiamento (pré-seed a Série B) analisando a página do produto — usando regex para identificar CTAs específicos como listas de espera, trials gratuitos ou páginas de preços — ou aceitando uma sugestão manual do usuário. Em seguida, pesquisa na web (via Tavily) por 5 empresas comparáveis já financiadas naquele espaço, executando duas trilhas de pesquisa paralelas: Track A descobre quais VCs investiram nessas comparáveis, e Track B encontra fundos que publicam teses de investimento sobre o setor. A skill combina esses dados com um conjunto curado de 25 fundos verificados, pontuando correspondências por tags de indústria, estágio e geografia. O resultado final é uma lista ranqueada de investidores com links diretos para as fontes de pesquisa, citações de teses e ganchos de abordagem personalizados — tudo com uma política rigorosa de zero alucinação, onde cada fato é rastreado a um resultado de busca do Tavily ou ao conteúdo da página do produto. A skill é ideal para fundadores em estágio inicial, builders de produto ou qualquer pessoa que precise construir uma lista de VCs alvo com evidências verificáveis e evitando suposições genéricas (como indicar a16z ou Sequoia sem dados). Requer uma chave de API do Tavily (camada gratuita: 1000 créditos/mês ≈ 125 execuções completas) e aceita opcionalmente uma chave do Firecrawl para scraping mais robusto.

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

Perguntar na sua IA favorita

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

Documentação

Localizador de VCs

Pegue uma URL de produto ou descrição. Detecte o setor e o estágio. Encontre 5 empresas financiadas comparáveis. Execute duas trilhas de pesquisa: quem investiu nessas comparáveis (Track A) e quais VCs publicam teses sobre este espaço (Track B). Retorne uma lista de investidores ranqueada, com fontes e ganchos de abordagem.


Política de zero alucinação: Cada fato na saída deve ser rastreável a um resultado de pesquisa específico do Tavily ou à página do produto buscada. Isso se aplica a:

  • Nomes de empresas comparáveis: devem aparecer nos resultados de pesquisa do Tavily, não no conhecimento de treinamento da IA
  • Nomes de fundos de VC: devem aparecer exatamente como nos resultados de pesquisa do Tavily
  • Tamanhos de cheques, foco em estágio, empresas do portfólio: devem vir de trechos da pesquisa, não do conhecimento da IA
  • Visões gerais e resumos de teses de fundos: extraídos apenas dos trechos da pesquisa. Se um detalhe não estiver nos dados da pesquisa, escreva "não encontrado nos dados da pesquisa" — não preencha com conhecimento de treinamento.

Erros Comuns

O agente vai querer...Por que isso está errado
Adicionar a16z ou Sequoia porque são famososUm VC famoso sem evidência é ruído. Inclua apenas VCs que apareçam nos resultados do Tavily para este produto específico. Citar nomes famosos desperdiça o tempo do fundador.
Gerar empresas comparáveis a partir do conhecimento de treinamentoAs comparáveis devem vir dos resultados de pesquisa do Tavily (Etapa 6). O conhecimento da IA sobre empresas não é evidência — uma empresa sugerida da memória pode ter status de financiamento errado ou não ser uma comparável verdadeira.
Continuar quando todas as 5 pesquisas da Track A retornarem 0 resultadosZero resultados na Track A significa que as comparáveis estavam erradas ou eram muito obscuras. Pare, refaça a Etapa 6 com consultas de pesquisa mais amplas e tente novamente.
Incluir um VC da Track B sem citar o artigo ou postTese sem fonte é indistinguível de alucinação. O fundador não pode verificá-la e a lista perde toda a credibilidade.
Preencher visão geral do fundo a partir do conhecimento de treinamentoAs visões gerais dos fundos devem vir apenas do texto dos trechos do Tavily. Se os trechos não descreverem o fundo, escreva "não encontrado nos dados da pesquisa".
Detectar estágio pela estética do siteO estágio deve vir dos sinais específicos de CTA detectados na Etapa 4.
Escrever ganchos de abordagem genéricosCada gancho de abordagem deve nomear o diferencial deste produto específico e um sinal de portfólio específico de VC ou citação de tese dos dados da pesquisa.
Pular a busca da URL quando o usuário também fornece uma descriçãoSempre busque a URL. A página ao vivo geralmente revela sinais de estágio que a descrição do usuário omite.

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

echo "TAVILY_API_KEY:    ${TAVILY_API_KEY:+set}"
echo "FIRECRAWL_API_KEY: ${FIRECRAWL_API_KEY:-não definido, extract do Tavily será usado como fallback}"

Se TAVILY_API_KEY estiver faltando: Pare. Diga ao usuário: "TAVILY_API_KEY é necessário para pesquisar investimentos de VC e teses. Não há fallback para isso. Obtenha em app.tavily.com — camada gratuita: 1000 créditos/mês (cerca de 125 execuções completas). Adicione ao seu arquivo .env."

Se apenas FIRECRAWL_API_KEY estiver faltando: Continue silenciosamente. O extract do Tavily será usado para a busca da URL.


Etapa 2: Coletar Entrada

Você precisa de:

  • URL do produto (obrigatório, a menos que o usuário cole uma descrição do produto diretamente)
  • Opcional: sugestão de estágio alvo (pré-seed, seed, série-a, série-b) — se fornecida, use-a e pule a detecção de estágio
  • Opcional: preferência de geografia (EUA, Europa, global) — o padrão é EUA se não especificado

Se o usuário fornecer apenas uma descrição colada (sem URL): Pule as Etapas 3-4. Vá diretamente para a Etapa 5 com o texto colado como product_content. Defina stage_source como user_description.

Se nem URL nem descrição forem fornecidos: Pergunte: "Qual é a URL do seu produto ou startup? Ou cole uma breve descrição: o que faz, para quem é e em que estágio você está (pré-seed, seed, Série A)."

Derive o slug do produto da URL para o nome do arquivo de saída:

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

Etapa 3: Buscar Página do Produto

Primário: Firecrawl (se FIRECRAWL_API_KEY estiver definida)

curl -s -X POST https://api.firecrawl.dev/v1/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "URL_HERE", "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'Buscado: {len(content)} caracteres')
open('/tmp/vc-product-raw.md', 'w').write(content)
"

Fallback: Extract do Tavily (se FIRECRAWL_API_KEY não estiver definida)

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

Ponto de verificação da etapa:

python3 -c "
content = open('/tmp/vc-product-raw.md').read()
if len(content) < 200:
    print('ERRO: A página retornou menos de 200 caracteres.')
else:
    print(f'Conteúdo OK: {len(content)} caracteres')
"

Se conteúdo < 200 caracteres: Pare a busca. Diga ao usuário: "A página do produto não retornou conteúdo legível. Isso geralmente significa que o site é renderizado por JavaScript e requer um navegador. Por favor, cole sua descrição do produto diretamente: o que faz, para quem é e em que estágio você está."

Siga para a Etapa 5 usando a descrição colada como product_content.


Etapa 4: Detectar Sinais de Estágio Localmente (Sem API)

Analise o markdown buscado com regex antes da etapa de análise.

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 ou 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 trial gratuito ou demonstração', '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 preços ou vendas', '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': 'estudos de caso ou contagem 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': 'plano enterprise ou vagas de emprego', 'stage_hint': 'series-a-or-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 financiamento: {funding_match.group(0).strip()}', 'stage_hint': 'anunciado'})

if not stage_signals:
    dominant = 'desconhecido'
elif any(s['stage_hint'] == 'anunciado' for s in stage_signals):
    dominant = 'anunciado'
elif any(s['stage_hint'] == 'series-a-or-b' for s in stage_signals):
    dominant = 'series-a'
elif any(s['stage_hint'] == 'series-a' for s in stage_signals):
    dominant = 'series-a'
elif any(s['stage_hint'] == 'seed' for s in stage_signals):
    dominant = 'seed'
else:
    dominant = 'pre-seed'

confianca = 'alta' if len(stage_signals) >= 2 else ('média' if len(stage_signals) == 1 else 'baixa')

resultado = {'sinais': stage_signals, 'estagio_dominante': dominant, 'confianca': confianca}
json.dump(resultado, open('/tmp/vc-stage-signals.json', 'w'), indent=2)
print(f'Estágio: {dominant} (confiança {confianca}) de {len(stage_signals)} sinal(is)')
for s in stage_signals:
    print(f'  - {s["signal"]} -> {s["stage_hint"]}')
PYEOF

Etapa 5: Análise do Produto (Taxonomia, Estágio, ICP)

Imprima o conteúdo do produto e os sinais de estágio:

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 DO PRODUTO (primeiros 6000 caracteres) ===')
print(content)
print()
print('=== SINAIS DE ESTÁGIO DETECTADOS ===')
print(json.dumps(signals, indent=2))
"

Instruções para IA: Analise o conteúdo da página do produto acima. Gere apenas a taxonomia, ICP e classificação de estágio — NÃO gere empresas comparáveis ainda (isso é feito via pesquisa ao vivo na Etapa 6).

Escreva em /tmp/vc-product-analysis.json:

  • product_name: a partir da página
  • one_line_description: o que faz, para quem, proposta de valor central. Menos de 20 palavras. Sem linguagem de marketing.
  • industry_taxonomy: l1 (nível superior: fintech / healthtech / ferramentas para desenvolvedores / consumo / etc.), l2 (setor: tecnologia de vendas / software de logística / etc.), l3 (nicho específico: prospecção outbound / roteamento de última milha / etc.). Rótulos vagos como "tecnologia" ou "software" sozinhos não são aceitáveis.
  • icp: buyer_persona (cargo), company_type, company_size
  • detected_stage: pre-seed / seed / series-a / series-b / desconhecido
  • stage_confidence: alta / média / baixa
  • stage_evidence: uma frase citando exatamente qual CTA ou texto na página impulsionou isso. Escreva "nenhum sinal claro encontrado" se desconhecido.
  • geography_bias: EUA / Europa / global / incerto
  • comparable_companies: deixe como array vazio [] — será preenchido na Etapa 6
python3 << 'PYEOF'
import json

analise = {
    # PREENCHA com sua análise acima
    "comparable_companies": []
}

json.dump(analise, open('/tmp/vc-product-analysis.json', 'w'), indent=2)
print('Análise do produto escrita.')
PYEOF

Verifique:

python3 -c "
import json
a = json.load(open('/tmp/vc-product-analysis.json'))
print('Produto:', a['product_name'])
print('Setor:', a['industry_taxonomy']['l1'], '>', a['industry_taxonomy']['l2'], '>', a['industry_taxonomy']['l3'])
print('Estágio:', a['detected_stage'], '(' + a['stage_confidence'] + ' confiança)')
"

Etapa 5b: Pré-Correspondência Curada Contra Conjunto de Fundos Verificados

Execute a taxonomia do produto contra um conjunto curado de 25 fundos de VC verificados (obtidos de sites de fundos). Produz correspondências de fundos sem alucinação e comparáveis de semente para a Track A — sem consumir créditos do Tavily.

Imprima a análise do produto para mapeamento de tags:

python3 -c "
import json
a = json.load(open('/tmp/vc-product-analysis.json'))
print('Taxonomia:', a['industry_taxonomy']['l1'], '>', a['industry_taxonomy']['l2'], '>', a['industry_taxonomy']['l3'])
print('Estágio:', a['detected_stage'])
print('Geografia:', a['geography_bias'])
"

Instruções para IA: Mapeie a taxonomia do produto para as tags padrão usadas no conjunto de fundos. Tags disponíveis: DevTools, Infraestrutura, Código Aberto, B2B SaaS, IA, Dados, FinTech, HealthTech, Enterprise, Consumo, Marketplaces, E-commerce, Cripto, DeepTech, Cibersegurança, Generalista

Escolha 2-4 tags que descrevam este produto. Mapeie detected_stage para: Pré-seed, Seed, Série A ou Crescimento. Mapeie geography_bias para: EUA, Europa, Índia ou Global.

Escreva o contexto do produto:

python3 << 'PYEOF'
import json

# PREENCHA com base na análise de taxonomia acima
contexto = {
    "extracted_tags": ["TagA", "TagB"],  # 2-4 tags da lista acima
    "stage_hint": "Seed",               # Pré-seed / Seed / Série A / Crescimento
    "geography_hint": "EUA"              # EUA / Europa / Índia / Global
}
json.dump(contexto, open('/tmp/vc-product-context.json', 'w'), indent=2)
print('Contexto do produto:', contexto)
PYEOF

Execute a pontuação contra o conjunto de dados curado incorporado:

python3 << 'PYEOF'
import json

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

VC_FUNDS = [
  {"fund_name":"Y Combinator","thesis":"Fornecemos financiamento inicial para startups. Investimos em equipes profundamente técnicas que constroem empresas massivas em todos os domínios.","check_size":"$500k","stage_focus":["Pré-seed","Seed"],"industry_tags":["Generalista","B2B SaaS","DevTools","IA"],"geography_focus":["Global"],"notable_portfolio":["Stripe","Airbnb","GitLab"],"website":"https://www.ycombinator.com"},
  {"fund_name":"boldstart ventures","thesis":"Parceiro desde o primeiro dia para fundadores de developer-first, cripto e SaaS. Amamos fundadores profundamente técnicos resolvendo problemas difíceis de infraestrutura.","check_size":"$1M - $3M","stage_focus":["Pré-seed","Seed"],"industry_tags":["DevTools","Infraestrutura","Cripto"],"geography_focus":["Global","EUA"],"notable_portfolio":["Snyk","Blockdaemon","Superhuman"],"website":"https://boldstart.vc"},
  {"fund_name":"Heavybit","thesis":"O principal investidor em startups developer-first. Ajudamos fundadores técnicos a lançar, ganhar tração e construir empresas prontas para enterprise.","check_size":"$1M - $5M","stage_focus":["Seed","Série A"],"industry_tags":["DevTools","Infraestrutura","Código Aberto"],"geography_focus":["Global","EUA"],"notable_portfolio":["PagerDuty","Sanity","Netlify"],"website":"https://www.heavybit.com"},
  {"fund_name":"Amplify Partners","thesis":"Investimos em fundadores técnicos que constroem a próxima geração de infraestrutura de TI, ferramentas para desenvolvedores e plataformas de dados.","check_size":"$2M - $8M","stage_focus":["Seed","Série A"],"industry_tags":["DevTools","Infraestrutura","IA","Dados"],"geography_focus":["EUA"],"notable_portfolio":["Datadog","OCTO","dbt Labs"],"website":"https://www.amplifypartners.com"},
  {"fund_name":"OSS Capital","thesis":"Apoiamos exclusivamente fundadores em estágio inicial que constroem empresas de Software de Código Aberto Comercial (COSS).","check_size":"$500k - $2M","stage_focus":["Pré-seed","Seed","Série A"],"industry_tags":["Código Aberto","DevTools"],"geography_focus":["Global"],"notable_portfolio":["Cal.com","Appsmith","Hoppscotch"],"website":"https://oss.capital"}
  # ... (restante do conjunto de dados permanece igual)
]

# ... (lógica de pontuação permanece igual)
PYEOF

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