WB Serviços — RH com assinatura digital verificável.
Plataforma de gestão de pessoal para uma empresa de serviços em campo: cadastro de funcionários por empresa cliente, assinatura de holerites e documentos com validador público por hash, controle de EPI sob a NR-6, contratação self-service e banco de vagas público.
- Cliente
- WB Serviços
- Período
- 2025 – 2026
- Papel
- Arquiteto e desenvolvedor principal
Total code
~78k LOC
Go backend
~35k LOC
SvelteKit front
~42k LOC
Commits
300+
O problema
Uma empresa de serviços em campo funciona sobre papel que ela não pode perder: holerites que precisam de assinatura, atestados, fichas de entrega de EPI que são a defesa jurídica numa reclamação trabalhista, e documentação de contratação espalhada por gente que raramente está num escritório.
Duas restrições moldaram tudo. Uma assinatura precisa ser verificável por um terceiro que não tem conta no sistema. E controle de EPI sob a NR-6 não é uma feature de estoque — é uma matriz do que cada função é obrigada a usar, amarrada a cada entrega e devolução.
A solução
O documento é a unidade de trabalho. Qualquer documento pode exigir um ou vários signatários, internos ou externos; a assinatura é confirmada por senha e pode carregar uma rubrica desenhada na tela; ela é estampada no PDF no servidor e registrada em log imutável.
- Validador público. Todo documento assinado expõe um hash. Qualquer pessoa — um auditor, um fiscal — abre a página pública, cola o hash e vê quem assinou o quê e quando, sem ter conta.
- Signatários externos. Quem não tem conta recebe um link com token: identifica-se, confere e assina.
- Contratação self-service. O candidato recebe um link com hash, preenche o próprio cadastro, envia documentos, assina o termo de proteção de dados e conclui — com exportação para o sistema de folha que o contador já usa.
- Módulo de EPI. Categorias, variantes, unidades, matriz de exigência por função, movimentação de estoque, entregas, devoluções e fichas assinadas.
Arquitetura
O único projeto poliglota do conjunto: uma API em Go sobre Fiber e GORM com MySQL, e um front SvelteKit que também faz papel de BFF — suas rotas de servidor fazem proxy da API Go, então nenhum navegador guarda credencial de backend.
- A estampagem da assinatura no PDF é feita em Go com pdfcpu e gopdf, escrevendo dentro do documento em vez de anexar uma página de certificado.
- Um canal WebSocket autenticado por JWT empurra notificações em tempo real.
- A API é documentada com Swagger e instrumentada com Prometheus — os dois endpoints fazem parte do produto, não são pensamento tardio.
- Importação em massa traz funcionários de planilha, e exportações filtradas saem em ZIP.
Resultados
Folha, atestados, EPI e contratação vivem num lugar só, e o papel que antes era passivo trabalhista virou uma URL que um terceiro verifica sozinho. O banco de vagas e o funil de candidatos alimentam o mesmo cadastro que o resto do sistema lê, então uma contratação nunca precisa ser digitada duas vezes.
Stack completa