Pular para conteúdo

Decisões arquiteturais

Este documento registra decisões importantes para evitar que o projeto cresça sem direção.

ADR 001 - Começar com Streamlit

Decisão

Usar Streamlit no MVP inicial.

Motivo

Streamlit permite criar interface rapidamente em Python, sem backend separado e sem frontend complexo. Para validar upload de currículo, campo de texto e relatório, é suficiente.

Consequências

Positivas:

  • desenvolvimento rápido;
  • menos boilerplate;
  • fácil para demo;
  • bom para portfólio inicial.

Negativas:

  • menos flexível que React;
  • pode ficar limitado para produto maior;
  • não é ideal para arquitetura multiusuário complexa.

ADR 002 - Não iniciar com React + FastAPI

Decisão

Não usar React + FastAPI no primeiro MVP.

Motivo

O núcleo do produto é análise de currículo e vaga, não frontend complexo. Adicionar duas stacks cedo aumenta custo e atrasa validação.

ADR 003 - Resposta de IA em JSON

Decisão

Usar saída estruturada em JSON/schema.

Motivo

Texto livre é ruim para UI, testes e validação. JSON permite mostrar score, listas e campos com mais controle.

ADR 004 - Regras de negócio fora da IA

Decisão

Senioridade, termos de corte e recomendações determinísticas devem ficar em código.

Motivo

A IA pode variar. Regras centrais precisam ser testáveis e previsíveis.

ADR 005 - Não fazer candidatura automática em massa

Decisão

O sistema não deve aplicar automaticamente para vagas em massa.

Motivo

Isso reduz risco de spam, erro de candidatura, violação de termos de plataformas e perda de controle pelo usuário.

ADR 006 - Scraping com limites

Decisão

Scraping só deve ser considerado para páginas públicas e permitido pelo contexto técnico/legal. Não deve haver bypass de autenticação, captcha, rate limit ou coleta agressiva.

Motivo

O objetivo é portfólio profissional, não ferramenta de evasão.

ADR 007 - Testar primeiro regras determinísticas

Decisão

O primeiro foco de QA é testar funções que não dependem de LLM.

Motivo

Testes de IA são mais difíceis e instáveis. Regras determinísticas dão retorno rápido e aumentam confiança.