MVP Core Schemas¶
O núcleo do SotuHire deve começar pelos schemas, não pela interface. A interface muda, o provedor de IA muda e a fonte de vagas muda, mas os contratos de dados precisam permanecer estáveis.
Por que começar por schemas¶
Schemas fortes permitem:
- validar respostas da IA;
- salvar dados no banco sem gambiarra;
- testar regras de negócio;
- evitar JSON quebrado;
- trocar Gemini, OpenAI, Claude, Groq ou OpenRouter sem reescrever o produto inteiro.
Camadas¶
flowchart TD
A[Texto bruto: currículo/vaga/post] --> B[Parsers]
B --> C[Schemas Pydantic]
C --> D[Regras determinísticas]
C --> E[IA com structured output]
D --> F[JobAnalysisSchema]
E --> F
F --> G[Tracker / Dashboard / Resume Tailor]
Schemas principais¶
UserPreferencesJobAnalysisSchemaResumeTailorOutputTailoredResumeSectionJSONResumeCareerEvidence
Regra de engenharia¶
A IA nunca deve escrever diretamente no banco. Primeiro ela retorna um objeto tipado, depois o sistema valida e só então salva.
Erro que deve ser evitado¶
Não usar regex para extrair JSON de texto livre:
preg_match('/\{.*\}/s', $content)
Esse padrão é frágil porque a IA pode incluir texto antes/depois, objetos parciais ou vírgulas inválidas.
Caminho correto¶
Usar structured output com schema e Pydantic:
Próximo passo do MVP¶
- Validar schemas.
- Criar análise fake/determinística.
- Conectar Gemini.
- Salvar histórico.
- Exibir Streamlit.