Communitygithub.com

Varnan-Tech/opendirectory

Prend l'URL ou la description d'un produit de startup, détecte le secteur et le stade de financement, identifie 5 sociétés comparables financées, recherche les investisseurs de ces sociétés (Piste A), trouve les VC qui publient des thèses d'investissement sur ce domaine (Piste B), et renvoie une liste classée et sourcée d'investisseurs pertinents avec des analyses approfondies et des accroches de prospection. À utiliser pour trouver des investisseurs pour une startup, identifier les VC qui financent des produits similaires, rechercher qui soutient des sociétés dans votre secteur, constituer une liste cible de VC, ou trouver l'adéquation investisseur-marché.

Qu'est-ce que opendirectory ?

Cette compétence d'agent IA est conçue pour les fondateurs de startups, les développeurs et les professionnels du growth qui cherchent à identifier des investisseurs en capital-risque (VC) pertinents pour leur produit. Elle automatise le processus complet de sourcing d'investisseurs en prenant l'URL ou la description d'un produit, en détectant automatiquement le secteur (fintech, devtools, etc.) et le stade de financement (pré-amorçage, amorçage, série A, etc.), puis en exécutant deux pistes de recherche parallèles. La piste A recherche les VC qui ont investi dans des sociétés comparables financées (identifiées via Tavily). La piste B identifie les VC qui publient des thèses d'investissement sur le secteur spécifique du produit. Une politique stricte de « zéro hallucination » garantit que chaque fait (noms d'entreprises, fonds VC, détails de chèques) est traçable jusqu'à des résultats de recherche Tavily ou la page produit récupérée. Le résultat final est une liste classée d'investisseurs, chacun accompagné d'une analyse approfondie sourcée et d'accroches de prospection personnalisées citant des signaux spécifiques du portefeuille VC et des différentiateurs du produit. La compétence utilise les APIs Tavily (obligatoire) et Firecrawl (optionnelle, pour une meilleure récupération de page). Elle prend en charge les plateformes comme Claude Code, Cursor, et d'autres agents IA capables d'exécuter des commandes shell et des scripts Python, et nécessite que les variables d'environnement `TAVILY_API_KEY` et éventuellement `FIRECRAWL_API_KEY` soient définies.

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

Demander à votre IA préférée

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

Documentation

VC Finder

Prenez une URL de produit ou une description. Détectez le secteur et le stade. Trouvez 5 sociétés comparables financées. Exécutez deux pistes de recherche : qui a investi dans ces comparables (Piste A), et quels VC publient des thèses sur ce domaine (Piste B). Renvoyez une liste d'investisseurs classée et sourcée avec des accroches de prospection.


Politique zéro hallucination : Chaque fait dans la sortie doit être traçable jusqu'à un résultat de recherche Tavily spécifique ou la page produit récupérée. Ceci s'applique à :

  • Les noms d'entreprises comparables : doivent apparaître dans les résultats de recherche Tavily, pas dans la connaissance de l'IA
  • Les noms de fonds VC : doivent apparaître textuellement dans les résultats de recherche Tavily
  • Les montants des chèques, le focus de stade, les sociétés du portefeuille : doivent provenir d'extraits de recherche, pas de la connaissance de l'IA
  • Les aperçus des fonds et les résumés de thèse : extraits uniquement des extraits de recherche. Si un détail ne figure pas dans les données de recherche, écrivez « non trouvé dans les données de recherche » – ne le complétez pas à partir de la connaissance de l'IA.

Erreurs courantes

L'agent voudra...Pourquoi c'est faux
Ajouter a16z ou Sequoia parce qu'ils sont célèbresUn VC célèbre sans preuve est du bruit. N'incluez que les VC qui apparaissent dans les résultats de recherche Tavily pour ce produit spécifique. Mentionner des noms célèbres fait perdre du temps au fondateur.
Générer des sociétés comparables à partir de la connaissance de l'IALes comparables doivent provenir des résultats de recherche Tavily (Étape 6). La connaissance de l'IA sur les sociétés n'est pas une preuve – une société suggérée de mémoire peut avoir un statut de financement erroné ou ne pas être un véritable comparable.
Continuer lorsque les 5 recherches de la Piste A renvoient 0 résultatZéro résultat Piste A signifie que les comparables étaient erronés ou trop obscurs. Arrêtez-vous, relancez l'Étape 6 avec des requêtes de recherche plus larges, et réessayez.
Inclure un VC de la Piste B sans citer l'article ou le postUne thèse sans source est impossible à distinguer d'une hallucination. Le fondateur ne peut pas la vérifier et la liste perd toute crédibilité.
Compléter un aperçu du fonds à partir de la connaissance de l'IALes aperçus des fonds doivent provenir uniquement du texte des extraits Tavily. Si les extraits ne décrivent pas le fonds, écrivez « non trouvé dans les données de recherche ».
Détecter le stade à partir de l'esthétique du site WebLe stade doit provenir des signaux d'appel à l'action (CTA) spécifiques détectés à l'Étape 4.
Écrire des accroches de prospection génériquesChaque accroche de prospection doit nommer le différenciateur de ce produit spécifique et un signal de portefeuille VC spécifique ou une citation de thèse provenant des données de recherche.
Sauter la récupération de l'URL lorsque l'utilisateur fournit également une descriptionRécupérez toujours l'URL. La page en direct révèle souvent des signaux de stade que la description de l'utilisateur omet.

Étape 1 : Vérification de la configuration

echo "TAVILY_API_KEY:    ${TAVILY_API_KEY:+set}"
echo "FIRECRAWL_API_KEY: ${FIRECRAWL_API_KEY:-non défini, l'extraction Tavily sera utilisée comme solution de repli}"

Si TAVILY_API_KEY est manquant : Arrêtez-vous. Dites à l'utilisateur : « TAVILY_API_KEY est requis pour rechercher les investissements et les thèses des VC. Il n'y a pas de solution de repli pour cela. Obtenez-le sur app.tavily.com – niveau gratuit : 1000 crédits par mois (environ 125 exécutions complètes). Ajoutez-le à votre fichier .env. »

Si seul FIRECRAWL_API_KEY est manquant : Continuez silencieusement. L'extraction Tavily sera utilisée pour la récupération d'URL.


Étape 2 : Recueillir les informations

Vous avez besoin de :

  • URL du produit (obligatoire, sauf si l'utilisateur colle directement une description du produit)
  • Optionnel : indication du stade cible (pre-seed, seed, series-a, series-b) – si fourni, utilisez-le et ignorez la détection du stade
  • Optionnel : préférence géographique (US, Europe, global) – par défaut US si non spécifié

Si l'utilisateur fournit seulement une description collée (pas d'URL) : Sautez les Étape 3-4. Allez directement à l'Étape 5 avec le texte collé comme product_content. Définissez stage_source à user_description.

Si ni l'URL ni la description ne sont fournies : Demandez : « Quelle est l'URL de votre produit ou startup? Ou collez une courte description : ce qu'il fait, pour qui il est, et à quel stade vous êtes (pre-seed, seed, Series A). »

Dérivez le slug du produit à partir de l'URL pour le nom du fichier de sortie :

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

Étape 3 : Récupérer la page produit

Principal : Firecrawl (si FIRECRAWL_API_KEY est défini)

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

Solution de repli : Extraction Tavily (si FIRECRAWL_API_KEY n'est pas défini)

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

Point de contrôle au niveau de l'étape :

python3 -c "
content = open('/tmp/vc-product-raw.md').read()
if len(content) < 200:
    print('ERREUR : La page a renvoyé moins de 200 caractères.')
else:
    print(f'Contenu OK : {len(content)} caractères')
"

Si contenu < 200 caractères : Arrêtez la récupération. Dites à l'utilisateur : « La page produit n'a renvoyé aucun contenu lisible. Cela signifie généralement que le site est rendu en JavaScript et nécessite un navigateur. Veuillez coller votre description de produit directement : ce qu'il fait, pour qui il est, et à quel stade vous êtes. »

Passez à l'Étape 5 en utilisant la description collée comme product_content.


Étape 4 : Détecter les signaux de stade localement (pas d'API)

Analysez le markdown récupéré avec des expressions régulières avant l'étape d'analyse.

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 liste d\'attente ou bêta', '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 essai gratuit ou démo', '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 prix ou vente', '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': 'Études de cas ou nombre de clients', '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': 'Niveau entreprise ou offres d\'emploi', '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'texte de financement : {funding_match.group(0).strip()}', 'stage_hint': 'annoncé'})

if not stage_signals:
    dominant = 'inconnu'
elif any(s['stage_hint'] == 'annoncé' for s in stage_signals):
    dominant = 'annoncé'
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'

confidence = 'haute' if len(stage_signals) >= 2 else ('moyenne' if len(stage_signals) == 1 else 'faible')

result = {'signals': stage_signals, 'dominant_stage': dominant, 'confidence': confidence}
json.dump(result, open('/tmp/vc-stage-signals.json', 'w'), indent=2)
print(f'Stade : {dominant} (confiance {confidence}) à partir de {len(stage_signals)} signal(aux)')
for s in stage_signals:
    print(f'  - {s["signal"]} -> {s["stage_hint"]}')
PYEOF

Étape 5 : Analyse du produit (Taxonomie, Stade, ICP)

Affichez le contenu du produit et les signaux de stade :

python3 -c "
import json
content = open('/tmp/vc-product-raw.md').read()[:6000]
signals = json.load(open('/tmp/vc-stage-signals.json'))
print('=== PAGE PRODUIT (6000 premiers caractères) ===')
print(content)
print()
print('=== SIGNAUX DE STADE DÉTECTÉS ===')
print(json.dumps(signals, indent=2))
"

Instructions d'IA : Analysez le contenu de la page produit ci-dessus. Générez la taxonomie, l'ICP et la classification du stade seulement – ne générez PAS encore de sociétés comparables (cela sera fait via une recherche en direct à l'Étape 6).

Écrivez dans /tmp/vc-product-analysis.json :

  • product_name : depuis la page
  • one_line_description : ce qu'il fait, pour qui, proposition de valeur principale. Moins de 20 mots. Pas de langage marketing.
  • industry_taxonomy : l1 (haut niveau : fintech / healthtech / developer tools / consumer / etc.), l2 (secteur : sales technology / logistics software / etc.), l3 (niche spécifique : outbound prospecting / last-mile routing / etc.). Les étiquettes vagues comme « technology » ou « software » seules ne sont pas acceptables.
  • icp : buyer_persona (titre de poste), company_type, company_size
  • detected_stage : pre-seed / seed / series-a / series-b / inconnu
  • stage_confidence : haute / moyenne / faible
  • stage_evidence : une phrase citant exactement quel CTA ou texte sur la page a conduit à cela. Écrivez « aucun signal clair trouvé » si inconnu.
  • geography_bias : US / Europe / global / unclear
  • comparable_companies : laissez un tableau vide [] – sera rempli à l'Étape 6
python3 << 'PYEOF'
import json

analysis = {
    # REMPLISSEZ à partir de votre analyse ci-dessus
    "comparable_companies": []
}

json.dump(analysis, open('/tmp/vc-product-analysis.json', 'w'), indent=2)
print('Analyse du produit écrite.')
PYEOF

Vérifiez :

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

Étape 5b : Pré-correspondance organisée avec l'ensemble de données de fonds vérifiés

Exécutez la taxonomie du produit par rapport à un ensemble de données organisé de 25 fonds VC vérifiés (provenant des sites Web des fonds). Produit des correspondances de fonds sans hallucination et des comparables d'amorçage pour la Piste A – aucun crédit Tavily consommé.

Affichez l'analyse du produit pour le mappage des balises :

python3 -c "
import json
a = json.load(open('/tmp/vc-product-analysis.json'))
print('Taxonomie :', a['industry_taxonomy']['l1'], '>', a['industry_taxonomy']['l2'], '>', a['industry_taxonomy']['l3'])
print('Stade :', a['detected_stage'])
print('Géographie :', a['geography_bias'])
"

Instructions d'IA : Mappez la taxonomie du produit aux balises standard utilisées dans l'ensemble de données des fonds. Balises disponibles : DevTools, Infrastructure, Open Source, B2B SaaS, AI, Data, FinTech, HealthTech, Enterprise, Consumer, Marketplaces, E-commerce, Crypto, DeepTech, Cybersecurity, Generalist

Choisissez 2 à 4 balises qui décrivent ce produit. Mappez detected_stage à : Pre-seed, Seed, Series A, ou Growth. Mappez geography_bias à : US, Europe, India, ou Global.

Écrivez le contexte du produit :

python3 << 'PYEOF'
import json

# REMPLISSEZ en fonction de l'analyse de la taxonomie ci-dessus
context = {
    "extracted_tags": ["TagA", "TagB"],  # 2-4 balises de la liste ci-dessus
    "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('Contexte du produit :', context)
PYEOF

Exécutez le scoring par rapport à l'ensemble de données organisé intégré :

python3 << 'PYEOF'
import json

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

VC_FUNDS = [
  {"fund_name":"Y Combinator","thesis":"Nous fournissons un financement de démarrage pour les startups. Nous investissons dans des équipes profondément techniques qui construisent de grandes entreprises dans tous les domaines.","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":"Partenaire dès le premier jour pour les fondateurs axés sur le développement, la crypto et le SaaS. Nous aimons les fondateurs profondément techniques qui résolvent des problèmes d'infrastructure difficiles.","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":"L'investisseur de premier plan dans les startups axées sur les développeurs. Nous aidons les fondateurs techniques à lancer, gagner en traction et construire des entreprises prêtes pour l'entreprise.","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":"Nous investissons dans des fondateurs techniques qui construisent la prochaine génération d'infrastructure informatique, d'outils pour développeurs et de plateformes de données.","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":"Nous soutenons exclusivement les fondateurs en phase de démarrage qui construisent des sociétés de logiciels open source commerciaux (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

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Varnan-Tech/opendirectory

Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.

Varnan-Tech/opendirectory

World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.

Varnan-Tech/opendirectory

Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.

Varnan-Tech/opendirectory

Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.

Varnan-Tech/opendirectory

Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.

Varnan-Tech/opendirectory

Give it your product URL or description. It finds your top 5 competitors, runs three-track PR research across all of them (editorial, podcasts, communities), identifies which channels appear most frequently, looks up the journalist or host for each, and returns a tiered outreach list with story angles and ready-to-send cold pitch drafts tailored to your product. Use when asked to find PR opportunities, discover where competitors got featured, build a media outreach list, find which journalists cover my space, or get pitch templates for press coverage.

Varnan-Tech/opendirectory

Generate high-converting, deep-dive growth case studies in MDX format. Use this skill when asked to write a case study or blog post about a company's growth, tech stack, or product-led strategy. It handles the full pipeline (researching the company via Tavily, generating a 16:9 cover image, quality checking the draft, uploading assets to cloud storage, and pushing directly to the target repository).

Varnan-Tech/opendirectory

Scans your project for outdated npm, pip, Cargo, Go, or Ruby packages. Runs a CVE security audit. Fetches changelogs, summarizes breaking changes with Gemini, and opens one PR per risk group (patch, minor, major). Includes Diagnosis Mode for install conflicts. Use when asked to update dependencies, check for outdated packages, open dependency PRs, scan for package updates, audit for CVEs, or flag breaking changes in upgrades. Trigger when a user says "check for outdated packages", "update my dependencies", "open PRs for dependency updates", "scan for CVEs", or "which packages need upgrading".

Varnan-Tech/opendirectory

Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture. Uses graphify to build a knowledge graph first, then writes accurate docs from it. Use when asked to write docs, generate a README, document an API, update stale docs, create an API reference from code, add an architecture section, or document a project in any language. Trigger when a user says their docs are missing, outdated, or wants to document their codebase without writing it manually.

Varnan-Tech/opendirectory

Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.

Varnan-Tech/opendirectory

Brutally honest developer-experience audit for a GitHub repo. Scores 10 DX dimensions (time-to-first-success, README clarity, visual proof, install, quick-start, docs, examples, community, trust, marketing), writes a shareable roast in the requested tone (brutal/honest/kind), produces a prioritized action plan ranked by impact × effort, and sketches an ideal README. Trigger when user says "roast my repo", "audit my README", "dx audit", "developer experience review", "score my GitHub project", "before launch checklist", or "make my repo shareable".

Varnan-Tech/opendirectory

Drafts and designs a complete HTML email newsletter from a topic or content brief. Outputs paste-ready HTML for Loops, Mailchimp, Beehiiv, Resend, or any standard email platform. Includes subject line options and plain-text fallback. Trigger when a user says "write a newsletter", "draft an email newsletter", "create an HTML email", "design an email for my subscribers", or "write a newsletter about [topic]".

Varnan-Tech/opendirectory

Takes a GitHub PR URL or the current branch and writes a plain-English explanation of what it does and why, then posts it as a PR comment. Use when asked to explain a PR, summarize a pull request, write a plain-English description of a PR, add a summary comment to a PR, or understand what a PR changes. Trigger when a user says "explain this PR", "summarize this pull request", "what does this PR do", "add a comment explaining the PR", or shares a GitHub PR URL and asks what it does.

Varnan-Tech/opendirectory

Audit how often LLMs recommend your brand vs competitors and generate a GEO action plan.

Varnan-Tech/opendirectory

Takes a competitor's public GitHub repo URL, fetches their open issues via the GitHub REST API, filters noise locally, clusters issues into 6 demand categories, computes a demand score per issue and per cluster, and outputs a ranked demand gap report with a GTM messaging brief. Use when asked to scan a competitor's GitHub issues, find what their users are begging for, turn GitHub complaints into product positioning, identify competitor feature gaps, or generate messaging from real user demand. Trigger when a user says "scan competitor issues", "what are users asking for on X repo", "find demand gaps in Y", "turn GitHub issues into messaging", or "what should I build based on competitor complaints".

Varnan-Tech/opendirectory

Find recurring confusion in your repo's GitHub Discussions, rank it by urgency, and draft the actual docs fixes and content angles — with verbatim community quotes and source links as evidence.

Varnan-Tech/opendirectory

SEO keyword research workflow for blog generation using Google Trends data. Use when writing blog posts, planning content calendars, or optimizing articles for search engines. Finds breakout keywords, builds content structure, and generates SEO-optimized blog outlines targeting tech and developer audiences.

Varnan-Tech/opendirectory

Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this customer win into a PDF".

Varnan-Tech/opendirectory

Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6. 1080×1080px default, 5 style presets, highlight annotations. Trigger when user says "create a chart", "visualize data", "make a bar chart", "line graph", "pie chart", "data visualization", "chart this data", "plot", "graph", or "visualize these numbers".

Varnan-Tech/opendirectory

Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning opportunities.

Skills associés