Pular para conteúdo

SotuHire — case study de produto e engenharia

Problema

Currículos, vagas, portfólios, Lattes, editais e candidaturas vivem em ferramentas separadas. A pessoa repete contexto, perde proveniência e pode receber sugestões de IA sem saber quais fatos foram usados.

Solução

SotuHire centraliza evidências em um Perfil Profissional Universal. O Career Context Engine seleciona apenas o contexto necessário e o distribui para Match, ATS, Tailor, Radar, Editais, Tracker e extensão. Tudo permanece revisável e local-first.

Arquitetura

  • modules/: regras, parsers, Perfil, contexto, memória/RAG, identidade e scores.
  • apps/api/: FastAPI local e contratos Pydantic.
  • apps/web/: React/Vite em Demo e API Real.
  • browser-extension/: Companion assistiva com captura manual e fila offline.
  • JSON/JSONL atômico mantém implantação simples; sem banco externo ou microserviços.

IA explicável

Gemini/OpenAI são opcionais. Cada análise expõe provider/modelo solicitado e usado, prompt/versionamento, modo, fallback, motivo, request ID, fontes e evidências. Scores críticos continuam ancorados em regras determinísticas e revisão.

Produto multiárea

A demo cobre engenharia, enfermagem/COREN, pesquisa/Lattes, docência/extensão, transição com experiência não formal, concurso e design/portfólio. GitHub não é requisito universal e registro profissional nunca é presumido.

Extensão e integrações

A v0.9.1 captura vaga, edital, GitHub e lotes com a Local Companion; funciona sem o frontend aberto. O popup e o modal injetado organizam análise local, IA do SotuHire e Gemini/OpenAI próprios. Catálogos oficiais atualizáveis alimentam uma seleção de modelo funcional, enquanto a API pública do GitHub aprofunda README, commits, stack, estrutura e atividade sem autenticação. Offline, mantém fila temporária e fallback local. O site funciona integralmente sem a extensão.

Segurança e decisões técnicas

  • sem auto-apply, login automático, CAPTCHA bypass ou inscrição/pagamento automático;
  • chave do app somente no backend local; chave própria opcional da extensão isolada no service worker;
  • candidatos de IA/Lattes/GitHub passam por revisão antes do Perfil;
  • identidade canônica preserva DOI, ORCID, owner/repo, URLs e histórico;
  • arquitetura existente foi reforçada sem Redis, fila distribuída ou reescrita.

Testes e qualidade

O projeto combina pytest, Ruff, Pyright, compileall, MkDocs strict, TypeScript, ESLint, Vite, Playwright multi-browser, scanner de segredos, empacotamento da extensão e verificação de checkout limpo.

Resultado e próximos passos

A v1.9.5 transforma abas antes conectadas de forma desigual em um fluxo demonstrável com proveniência. Próximos passos legítimos: upload direto de PDF/HTML, estudo avançado por edital, notificações do sistema e telemetria local de uso/fallback.