Documentação

Como o CyberLens funciona, quais tecnologias utiliza e como contribuir com o projeto.

Como Funciona

Pipeline de Análise

1

Upload do PDF

O usuário envia seu currículo em formato PDF.

2

Extração de Texto

O texto é extraído diretamente no navegador.

3

Pré-processamento NLP

Palavras-chave e seções são identificadas via TF-IDF.

4

Análise com IA

O texto otimizado é enviado ao provedor de IA escolhido.

5

Resultado

Um relatório completo com score, gaps e plano de estudos.

Extração de texto

O PDF é processado inteiramente no seu navegador usando pdfjs-dist. A extração detecta automaticamente layouts multi-coluna e reordena o texto em ordem natural de leitura, evitando que currículos em duas colunas fiquem embaralhados. Em seguida, o texto passa por uma normalização que unifica bullets, corrige hifenização de fim de linha e remove caracteres invisíveis. Quando o PDF é escaneado, o sistema ativa o OCR via Tesseract.js e informa a confiança média por página. Você pode revisar e corrigir o texto extraído antes de analisar. Tudo fica no seu navegador.

Pré-processamento NLP

Antes de enviar o texto para a IA, o sistema aplica TF-IDF para extrair os termos mais relevantes do currículo e da vaga. Isso reduz o número de tokens enviados, diminuindo o custo da análise e melhorando a precisão dos resultados. Os resultados dessa pré-análise são exibidos ao usuário como um "Raio-X de Compatibilidade" instantâneo antes de chamar a IA.

Análise com IA

O texto otimizado é enviado ao provedor de IA escolhido (OpenAI, Anthropic ou Google) via proxy CORS do Next.js. A IA retorna um relatório estruturado com score de aderência, habilidades, lacunas, palavras-chave e plano de estudos. Para cada lacuna identificada, a IA também sugere como reescrever trechos do currículo para incorporar os termos faltantes. Cada sugestão tem botão de cópia com feedback visual para você aplicar no seu currículo em um clique. O usuário pode opcionalmente salvar cada análise num histórico local (até 10 entradas) ativando o toggle em Configurações. O histórico fica inteiramente no navegador.

Quer ver tudo isso em ação? A rota /demo mostra três análises completas pré-geradas (analista de dados, segurança e dev full stack) sem precisar de cadastro ou API key.

Tecnologias

Frontend

Next.js

Framework React com SSR e API Routes

React

Biblioteca de UI com Server Components

TypeScript

Tipagem estática para segurança em tempo de compilação

Tailwind CSS

Estilização utility-first com design responsivo

Lucide React

Ícones SVG leves e tree-shakeable

PDF / OCR

pdfjs-dist

Extração de texto de PDFs digitais no navegador

Tesseract.js

OCR para PDFs escaneados ou baseados em imagem

@react-pdf/renderer

Geração de PDFs vetoriais para exportação

Inteligência Artificial

OpenAI (GPT)

Análise de currículo via modelos GPT

Anthropic (Claude)

Análise via modelos Claude

Google (Gemini)

Análise via modelos Gemini

TF-IDF (natural)

Redução de tokens antes do envio à IA

Infraestrutura

Vercel

Deploy automático com edge network global

Zod

Validação de schemas em runtime

API Routes

Proxy CORS para comunicação segura com provedores de IA

Para Desenvolvedores

Estrutura do Projeto
src/
  app/
    api/              # API Routes (proxy CORS)
    configuracoes/    # Página de configurações
    documentacao/     # Esta página
    privacidade/      # Política de privacidade
    sobre/            # Sobre o projeto
    termos/           # Termos de uso
    layout.tsx        # Layout raiz
    page.tsx          # Página principal (análise)
  components/         # Componentes React reutilizáveis
  constants/          # Constantes e configurações
  hooks/              # Custom hooks
  lib/                # Lógica de negócio (IA, PDF, NLP)
  types/              # Definições de tipos TypeScript
Como adicionar um novo provedor de IA
1Crie o adaptador em src/lib/ai/ seguindo a interface existente
2Registre o provedor no mapa em src/lib/ai/providers.ts
3Adicione a API Route correspondente em src/app/api/
4Atualize a página de configurações com o novo provedor
5Adicione os tipos necessários em src/types/
Convenção de commits
feat:Nova funcionalidade
fix:Correção de bug
docs:Alteração em documentação
style:Formatação (sem mudança de lógica)
refactor:Refatoração de código
test:Adição ou alteração de testes
chore:Tarefas auxiliares (build, CI, deps)

Para o guia completo de contribuição, consulte o CONTRIBUTING.md.

Esta documentação é atualizada junto com o código-fonte do projeto.