Gustavo Karsten
🚀

Website Analyzer — Qualificador de Leads com IA

Ferramenta de análise de websites para qualificação de leads B2B. Dado o nome de uma empresa ou URL, o sistema roda em paralelo Lighthouse 12 (performance/a11y/SEO), SEO audit (links quebrados, meta tags), Wappalyzer (tech stack) e Chrome UX Report (field data do CrUX) — e consolida tudo num relatório Markdown em 5 seções mais um email de outreach personalizado gerado por OpenAI. Suporta interface web (FastAPI + Jinja2 com auth PBKDF2-SHA256) e modo batch via CLI com ThreadPoolExecutor.

Core Project

## 🔧 Tech Stack

Python 3.11FastAPIUvicornJinja2PostgreSQLpsycopg2Lighthouse 12 (Node, subprocess)Wappalyzer (Node, subprocess)BeautifulSoup4requestsChrome UX Report APIChromium headlessOpenAI gpt-4oGoogle Places APIGoogle CSESerperPBKDF2-SHA256DockerDokploy

## 📈 Workflow

transform

company_website_resolver.py

Resolve nome de empresa → URL usando chain com fallback: Google Places → Google CSE → Serper

scraper

Análise paralela (4 fontes)

Lighthouse 12 (performance/a11y/SEO), SEO audit (BeautifulSoup4, broken links), Wappalyzer (tech stack), CrUX (field data) rodam em paralelo

ai

openai_email_generator.py

OpenAI gpt-4o gera email de outreach personalizado com base nos achados da análise

transform

report_generator.py

Consolida tudo em relatório Markdown em 5 seções (executive summary, performance, SEO, tech stack, recommendations)

database

Persistência (analysis_runs)

Payload completo em JSONB (analysis_json), report_html, email_subject, email_html, email_text, duration_ms

automation

Batch (ThreadPoolExecutor)

Modo batch: analyze_websites.py --limit 50 --parallel 4 lê leads do PostgreSQL e processa em paralelo

monitoring

Rate limit + observability

Rate limit de 5 análises/min por usuário (dict em memória); todos os resultados ficam em /reports e /generated_emails

## ✨ Features

  • Análise multi-ferramenta em paralelo: Lighthouse 12 (perf/a11y/SEO), SEO audit (BeautifulSoup), Wappalyzer (tech stack), CrUX (field data real)
  • Email de outreach personalizado gerado por OpenAI gpt-4o com base nos achados
  • Relatório Markdown consolidado em 5 seções (executive summary, performance, SEO, tech stack, recommendations)
  • Resolução empresa → URL com chain de fallback: Google Places → Google CSE → Serper
  • Interface web FastAPI + Jinja2 com auth PBKDF2-SHA256 (sessão cookie)
  • Modo batch via CLI com ThreadPoolExecutor (`analyze_websites.py --limit 50 --parallel 4`)
  • Rate limit de 5 análises/min por usuário
  • Dashboard HTML persistido em `analysis_runs` com analysis_json (JSONB), report_html, email_subject, email_html
  • Container Docker com Chromium headless pré-instalado (Lighthouse precisa de browser)

## 🎯 Results

  • Pipeline de análise multi-ferramenta rodando em paralelo — Lighthouse + SEO + Wappalyzer + CrUX + email AI numa única chamada
  • Resolução empresa→URL com chain de fallback reduz falhas quando a fonte primária não tem a empresa
  • Modo batch com ThreadPoolExecutor escala para dezenas de leads simultâneos
  • Email de outreach gerado por IA personalizado para cada lead — qualifica antes do primeiro contato humano

## 🧩 Use Case

Times de vendas B2B e agências que prospectam empresas em escala. Em vez de abrir 5 abas pra checar performance/SEO/tech stack de cada lead, o sistema entrega um relatório consolidado + email de primeiro contato em segundos. Demonstra orquestração de ferramentas (Lighthouse/Wappalyzer/CrUX/OpenAI) com paralelismo, fallback e rate limiting — um padrão de automação de inteligência de leads aplicável a qualquer vertical.

## 🔗 Related Projects