Pular para conteúdo

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.py e modules/ai/prompt_loader.py;
  • modules/ai/json_guard.py e modules/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/ e tests/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.