Project
Sistema de Recrutamento e Gestão de Candidatos (ATS)
Plataforma completa de recrutamento com cadastro de candidatos, funil visual (Kanban), agendamento de entrevistas com calendário e WhatsApp, analytics, demografia, insights, questionários, scoring e exportações — com backend Django/DRF e frontend React/TypeScript..
Este é um sistema de recrutamento que desenvolvi para centralizar todo o processo seletivo em um único lugar: cadastro de candidatos, gestão do funil, agendamento de entrevistas, análises e relatórios — tudo em um painel interno para o time de RH.
Visão geral do projeto
O objetivo deste projeto foi sair do fluxo caótico de planilhas e formulários soltos e criar uma solução completa de ATS (Applicant Tracking System) sob medida, com:
- Cadastro detalhado de candidatos
- Funil visual de recrutamento (incluindo visão Kanban)
- Agendamento e calendário de entrevistas
- Notificações via WhatsApp (Z-API)
- Módulos de analytics, demografia e insights
- Questionários personalizados e gestão de cargos
- Logs de atividade e exportação de relatórios (PDF/Excel)
Principais funcionalidades
1. Cadastro e gestão de candidatos
Implementei um fluxo de candidatura com:
Seleção de cargo pretendido ( Formulários mudam de acordo com o cargo selecionado.)

- Dados pessoais (nome, CPF, data de nascimento, contato, endereço)
- Experiência profissional, formação, habilidades e certificações
- Upload de currículo com armazenamento em disco
2. Painel interno para RH (frontend)
No frontend, desenvolvi um painel em React + TypeScript focado na produtividade do recrutador:
- Autenticação com JWT e rotas protegidas

-
Página de Dashboard com:
-
Lista de candidatos com filtros, busca e ordenação
-
Diferentes modos de visualização (incluindo Kanban por etapa do funil)
-
Contadores por status (pendentes, em análise, entrevistados, aceitos, etc.)

-
Página de detalhes do candidato, com:
-
Perfil completo
-
Histórico de entrevistas
3. Entrevistas, calendário e WhatsApp
Implementei um módulo completo de entrevistas:
-
Modelo de entrevista contendo:
-
Candidato, entrevistador, título, tipo (telefone, vídeo, presencial, técnica, RH)
-
Data, horário, duração, local/link e descrição
-
Status:
scheduled,completed,cancelled,rescheduled,no_show -
Feedback e rating do entrevistador
-
-
Integração com Z-API (WhatsApp):
- Envio de mensagens automáticas para entrevistas agendadas, reagendadas e canceladas
- Tratamento de erros e logs para monitorar o envio
4. Analytics, Demografia e Insights
Criei páginas específicas para auxiliar o RH a trabalhar com dados:
-
Analytics
- Funil de conversão entre etapas
- Tempo médio em cada estágio do processo
- Distribuição de pontuações dos candidatos
-
Demografia
- Quebra da base de candidatos por gênero, PCD, situação profissional, etc.
- Filtros que podem ser enviados para o Dashboard para analisar segmentos específicos.
-
Insights
- Visão consolidada de indicadores e comportamentos do funil
- Navegação entre insights e lista de candidatos filtrados.
5. Questionários e pontuação de candidatos
Implementei dois módulos importantes para enriquecer os dados do processo seletivo:
-
Questionários
- Templates de questionário, perguntas e opções
- API para respostas dos candidatos
- Endpoint para inicialização dinâmica de formulários
-
Scoring (pontuação)
- Cálculo de score por candidato com base em múltiplos critérios
- Reprocessamento em massa das pontuações
- Configuração de pesos de scoring via painel, com cache no frontend
6. Logs, auditoria e relatórios
Para garantir rastreabilidade:
-
Criei um módulo de Activity Log que registra:
- Criação, atualização, reagendamento e cancelamento de entrevistas
- Mudanças de status de candidatos e ações importantes do sistema
-
Implementei exportações:
- Candidatos para PDF e Excel
- Relatórios analíticos (por ano, por exemplo) em PDF e Excel
Stack e decisões técnicas
-
Backend
- Django + Django REST Framework
- Autenticação com SimpleJWT (access/refresh tokens)
- Permissões padrão para usuários autenticados, com exceções pontuais (ex: endpoints públicos para inicializar e salvar parcialmente formulários)
-
Frontend
- React + TypeScript
- Context API para autenticação (
AuthContext) e sidebar - Axios com interceptors para injetar/renovar tokens JWT
- TailwindCSS para estilização e criação rápida de componentes responsivos