v0.10.0 — AI Structured Extraction e Domain Intelligence¶
Status de implementação¶
A v0.10.0 implementa a fundação de extração estruturada e Domain Intelligence no código.
Entregue nesta versão:
modules/ai/prompt_spec.py,modules/ai/prompt_registry.pyemodules/ai/prompt_loader.py;modules/ai/json_guard.pyemodules/ai/exceptions.py;modules/ai/schemas/resume_extraction.py;modules/ai/schemas/job_extraction.py;modules/ai/schemas/domain_classification.py;modules/domain_intelligence/;modules/ai/structured_resume_extractor.py;modules/ai/structured_job_extractor.py;modules/ai/domain_classification_service.py;- provider Gemini com
generate_structured; - fixtures fictícias multiárea em
tests/fixtures/resumes/etests/fixtures/jobs/; - testes unitários para registry, JSON Guard, schemas, Domain Intelligence e fallback.
A UI principal ainda continua usando os fluxos existentes. A integração v0.10 é discreta e expõe serviços validados para as próximas telas de revisão, sem substituir os parsers antigos nem mudar coleta autenticada.
Objetivo¶
A v0.10.0 deve transformar a IA do SotuHire em uma camada estruturada, validada e multiárea.
A versão não deve adicionar mais automação de coleta. O foco é qualidade de extração, prompts, schemas, confidence e revisão.
Problema¶
Na v0.9.0, o produto já possui Gemini opcional, fallback local, memória, RAG, extensão e análise de GitHub/portfólio. Porém, a análise ainda pode depender demais de heurísticas e textos simples em partes do fluxo.
A v0.10.0 corrige isso com:
- prompts completos;
- entrada rica;
- saída JSON rígida;
- Pydantic;
- confidence por campo;
- comparação heurística + IA;
- revisão humana;
- suporte multiárea.
Entregas principais¶
1. Prompt Registry¶
Criar registro central de prompts.
Campos mínimos:
@dataclass
class PromptSpec:
id: str
version: str
system_prompt: str
user_template: str
output_schema: type[BaseModel]
temperature: float = 0.1
2. Schemas Pydantic¶
Criar schemas para:
ResumeExtractionOutput;JobExtractionOutput;DomainClassificationOutput;ATSAnalysisOutput;MatchEvidenceOutput;ResumeTailorOutput.
3. Extração de currículo por IA¶
Fluxo:
currículo bruto -> parser local -> IA estruturada -> Pydantic -> merger -> UI de revisão
Campos mínimos:
- identidade;
- resumo;
- domínio profissional;
- senioridade;
- formação;
- experiências;
- skills;
- ferramentas;
- certificações;
- registros profissionais;
- idiomas;
- projetos;
- observações ATS;
- confidence.
4. Extração de vaga por IA¶
Fluxo:
vaga bruta -> IA estruturada -> requisitos classificados -> regras -> análise
Campos mínimos:
- título;
- empresa;
- domínio;
- senioridade;
- modalidade;
- localidade;
- contrato;
- salário;
- requisitos obrigatórios;
- requisitos desejáveis;
- certificações;
- registros;
- responsabilidades;
- benefícios;
- red flags;
- confidence.
5. Domain Intelligence inicial¶
Implementar camada para:
- detectar domínio primário;
- detectar domínios secundários;
- classificar requisitos;
- reconhecer credenciais críticas;
- reconhecer competências transferíveis;
- evitar viés de TI.
Domínios iniciais de teste:
- software;
- cybersecurity;
- enfermagem;
- pedagogia;
- psicologia;
- engenharia civil;
- engenharia biomédica;
- arquitetura/interiores;
- cursos técnicos;
- general.
6. Confidence Merger¶
Comparar outputs:
- parser local;
- IA;
- memória;
- entrada manual do usuário.
Regras:
- concordância aumenta confiança;
- divergência reduz confiança;
- campos críticos divergentes exigem revisão;
- IA nunca substitui evidência ausente em credential crítica.
7. UI de revisão¶
A fundação de serviços já expõe confidence, low_confidence_fields, fallback e campos revisáveis.
Uma UI dedicada de revisão ainda é evolução de produto futura e deve mostrar:
- campos extraídos;
- confidence;
- origem;
- campos incertos;
- botão de confirmar;
- botão de corrigir;
- botão de salvar perfil.
Fora do escopo¶
- Não refatorar coleta autenticada.
- Não criar novo documento de ética solicitado fora deste escopo.
- Não criar auto-apply.
- Não enviar mensagens automáticas.
- Não remover heurísticas existentes.
- Não depender apenas da IA.
Testes necessários¶
Criar testes para:
- JSON válido;
- schema inválido;
- currículo vazio;
- vaga vazia;
- currículo de TI;
- currículo de enfermagem;
- currículo de pedagogia;
- vaga de engenharia civil;
- vaga de psicologia/RH;
- registro profissional ausente;
- certificação ambígua;
- senioridade ambígua;
- conflict parser vs IA;
- fallback local.
Critério de pronto¶
A v0.10.0 está pronta quando:
- todos os prompts produtivos tiverem schema;
- todo output de IA for validado;
- confidence estiver disponível nos serviços para a UI;
- currículo e vaga funcionarem fora de TI;
- campos críticos não forem inventados;
- a análise continuar funcionando sem IA;
- fixtures multiárea passarem nos testes;
- documentação do prompt catalog estiver atualizada.
Risco principal¶
O maior risco é a IA parecer mais confiante do que deveria.
Mitigação:
- confidence por campo;
- Pydantic;
- revisão humana;
- fallback heurístico;
- regras de domínio;
- golden tests.