Para o candidato
- Busca por cargo com filtros de cidade e área
- Detalhes da vaga: salário, escala, requisitos e benefícios
- Inscrição com máscara de telefone e envio do currículo em PDF
- Banco de talentos para quem não achou a vaga certa
Sistema de recrutamento de uma empresa de segurança e facilities com unidades em cinco cidades. O candidato encontra a vaga e se inscreve pelo celular. O RH acompanha cada pessoa num painel só, da inscrição até a aprovação.
o problema
A empresa não tinha um lugar próprio para divulgar as vagas nem para receber os currículos. As vagas ficavam em plataformas externas e os currículos chegavam por caminhos diferentes. Para saber quem tinha se candidatado a qual vaga, e em que etapa cada pessoa estava, o RH precisava juntar tudo na mão.
Boa parte dos candidatos se inscreve pelo celular, muitos pela primeira vez num processo seletivo online. O formulário precisava ser simples de verdade.
o que eu construí
decisões técnicas
Um portal de vagas guarda nome, telefone e currículo de muita gente. Por causa da LGPD, segurança veio antes de qualquer detalhe visual.
Usei Row Level Security no PostgreSQL. Quem não está logado só consegue ler vagas ativas e enviar uma inscrição. Ver candidatos, editar ou apagar exige login do RH. A regra vale mesmo se alguém chamar a API direto.
Os PDFs não têm endereço público. Quando o RH clica em baixar, o sistema gera um link que expira em 60 segundos.
Só aceita PDF de até 5 MB, com mensagem clara quando o arquivo não serve. Evita upload pesado e arquivo que o RH não consegue abrir.
const handleDownloadResume = async (filePath: string) => {
const { data, error } = await supabase.storage
.from("resumes")
.createSignedUrl(filePath, 60); // link vale 60 segundos
if (error || !data) {
toast.error("Erro ao gerar download seguro.");
return;
}
window.open(data.signedUrl, "_blank");
};
telas
A maioria das inscrições vem do celular. Os cards mostram o que importa antes do clique: cidade, escolaridade, escala e salário.
o que eu aprendi
Projeto de estudo pode quebrar. Este não: se o portal sai do ar, a empresa deixa de receber candidatos. Aprendi a pensar em quem usa do outro lado, tanto o candidato no celular quanto a pessoa do RH que abre o painel todo dia.
O próximo passo é um sistema de chamados de TI para a mesma empresa, com a mesma base: Supabase, regras de acesso e um painel simples.
Me conta o que você precisa que eu te respondo.