Skip to content

About

Plataforma de recrutamento com agentes de IA (Google ADK + Gemini) que analisam currículos, calculam compatibilidade com vagas e automatizam contato via WhatsApp

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 RecruitFlow - Plataforma de Recrutamento com IA

RecruitFlow React TypeScript Python Supabase

Conectando jovens talentos com empresas através de Inteligência Artificial

Sobre • Funcionalidades • Tecnologias • Instalação • Uso • Arquitetura


📋 Sobre

RecruitFlow é uma plataforma inovadora de recrutamento que utiliza Inteligência Artificial Multi-Agente para conectar jovens talentos com oportunidades de emprego, focando no potencial dos candidatos ao invés de apenas experiência prévia.

🎯 Problema que Resolvemos

  • Triagem manual demorada: Processos de 3 dias reduzidos para 8 minutos
  • Viés inconsciente: IA analisa candidatos de forma objetiva
  • Dificuldade de jovens talentos: Foco em potencial, não apenas experiência
  • Baixa taxa de resposta: Automação via WhatsApp aumenta engajamento

💡 Diferenciais

✅ Análise de CV com IA: Agentes Google ADK analisam currículos automaticamente ✅ Matching Inteligente: Score de compatibilidade entre candidatos e vagas ✅ Automação WhatsApp: Contato automático com candidatos via N8N ✅ Banco de Talentos: Base de dados de candidatos pré-qualificados ✅ Dashboard Completo: Visualização de métricas e gestão de processos seletivos


✨ Funcionalidades

Para Empresas

  • 📝 Cadastro de Vagas: Criação de vagas com requisitos detalhados
  • 🔍 Busca Inteligente: Encontre talentos por habilidades, formação e experiência
  • 📊 Dashboard Analytics: Métricas de candidatos, vagas e processos
  • 🤖 Matching Automático: IA sugere os melhores candidatos para cada vaga
  • 💬 Comunicação Automatizada: Mensagens via WhatsApp para candidatos

Para Candidatos

  • 📄 Cadastro Simplificado: Formulário intuitivo com informações relevantes
  • 🎓 Foco em Potencial: Valorização de formação e soft skills
  • 🔔 Notificações Automáticas: Receba oportunidades via WhatsApp
  • 📈 Score de Compatibilidade: Veja seu match com cada vaga

🛠 Tecnologias

Frontend

  • React 18.3.1 - Biblioteca UI
  • TypeScript 5.8.3 - Tipagem estática
  • Vite 5.4.19 - Build tool e dev server
  • Tailwind CSS 3.4.17 - Framework CSS
  • shadcn-ui - Componentes UI
  • React Router 6.30.1 - Roteamento
  • React Query 5.83.0 - Gerenciamento de estado assíncrono
  • React Hook Form 7.61.1 - Formulários
  • Zod 3.25.76 - Validação de schemas

Backend

  • Python 3.x - Linguagem principal
  • Google ADK - Agents Development Kit
  • Vertex AI - Plataforma de IA do Google Cloud
  • Gemini 2.5 Flash - Modelo de linguagem
  • Langfuse - Observabilidade de agentes IA
  • Pydantic - Validação de dados
  • python-dotenv - Gerenciamento de variáveis de ambiente

Banco de Dados e Infraestrutura

  • Supabase - Backend as a Service (PostgreSQL)
  • Google Cloud Storage - Armazenamento de arquivos
  • N8N - Automação de workflows (WhatsApp)
  • Edge Functions - Funções serverless

📦 Instalação

Pré-requisitos

  • Node.js 18+ e npm/yarn/pnpm
  • Python 3.9+
  • Conta Google Cloud com Vertex AI habilitado
  • Conta Supabase
  • Conta Langfuse (opcional, para observabilidade)

1️⃣ Clone o Repositório

git clone https://github.com/seu-usuario/desafio-final-equipe-4.git
cd desafio-final-equipe-4

2️⃣ Configuração do Frontend

cd front-end
npm install

Crie um arquivo .env na pasta front-end:

VITE_SUPABASE_URL=https://seu-projeto.supabase.co
VITE_SUPABASE_ANON_KEY=sua_chave_publica_aqui
VITE_API_BASE_URL=http://localhost:8000

3️⃣ Configuração do Backend

cd ../back-end
pip install -r requirements.txt

Crie um arquivo .env na pasta raiz do projeto (copie do .env.example):

# Google Cloud / Vertex AI
GOOGLE_API_KEY=sua_api_key_aqui
GOOGLE_CLOUD_PROJECT=seu_projeto_gcp
GOOGLE_CLOUD_LOCATION=us-central1
GOOGLE_CLOUD_BUCKET=gs://seu_bucket

# Langfuse (Observabilidade)
LANGFUSE_PUBLIC_KEY=sua_chave_publica
LANGFUSE_SECRET_KEY=sua_chave_secreta
LANGFUSE_BASE_URL=https://cloud.langfuse.com
LANGFUSE_DEBUG=true

# Configurações do Agente
AGENT_NAME=curriculum
AGENT_MODEL=gemini-2.5-flash
AGENT_STAGING_BUCKET=gs://seu_bucket/staging
AGENT_PLANNER=PlanReActPlanner

# Supabase
VITE_SUPABASE_URL=https://seu-projeto.supabase.co
VITE_SUPABASE_ANON_KEY=sua_chave_publica_aqui

# Configurações Gerais
ENVIRONMENT=development
LOG_LEVEL=INFO
PORT=8000
HOST=0.0.0.0

4️⃣ Configuração do Banco de Dados (Supabase)

  1. Crie um projeto no Supabase
  2. Execute as migrations na pasta front-end/supabase/migrations/
  3. Configure as Edge Functions em front-end/supabase/functions/
cd front-end
npx supabase login
npx supabase link --project-ref seu-projeto-ref
npx supabase db push
npx supabase functions deploy match-talents

🚀 Uso

Executar o Frontend

cd front-end
npm run dev

Acesse: http://localhost:8080

Executar o Backend (Agente IA)

cd back-end/agente_1
python agent.py

Deploy do Agente no Google Cloud

# Configure o Google Cloud CLI
gcloud auth login
gcloud config set project seu-projeto-gcp

# Deploy do agente
cd back-end/agente_1
# Siga as instruções do Google ADK para deploy

🏗 Arquitetura

Fluxo de Dados

┌─────────────┐      ┌──────────────┐      ┌─────────────┐
│   Frontend  │─────▶│   Supabase   │─────▶│  Edge Func  │
│  (React)    │      │ (PostgreSQL) │      │ match-talents│
└─────────────┘      └──────────────┘      └─────────────┘
                            │                      │
                            │                      ▼
                            │              ┌─────────────┐
                            │              │  Agente IA  │
                            │              │ (Google ADK)│
                            │              └─────────────┘
                            │                      │
                            ▼                      ▼
                     ┌──────────────┐      ┌─────────────┐
                     │     N8N      │      │  Langfuse   │
                     │  (WhatsApp)  │      │(Observab.)  │
                     └──────────────┘      └─────────────┘

Componentes Principais

1. Frontend (React + TypeScript)

  • Interface para empresas e candidatos
  • Dashboard com métricas e analytics
  • Formulários de cadastro de vagas e talentos
  • Visualização de candidatos e scores de match

2. Backend (Python + Google ADK)

  • Agente 1: Análise de currículos e matching
    • Recebe dados do candidato e da vaga
    • Analisa compatibilidade usando Gemini 2.5 Flash
    • Retorna score (0-100) e justificativa

3. Banco de Dados (Supabase)

  • Tabelas: jobs, talents, candidates, companies
  • Edge Functions para processamento serverless
  • Triggers automáticos para matching

4. Automação (N8N)

  • Workflows de WhatsApp
  • Envio de mensagens para candidatos
  • Agendamento de entrevistas

Fluxo de Matching de Candidatos

  1. Empresa cria uma vaga no frontend
  2. Supabase salva a vaga no banco de dados
  3. Edge Function match-talents é acionada automaticamente
  4. Função busca todos os talentos cadastrados no banco
  5. Para cada talento:
    • Cria uma sessão no Agente IA
    • Envia dados do talento e da vaga
    • Agente analisa usando Gemini 2.5 Flash
    • Retorna score de compatibilidade (0-100) e justificativa
  6. Candidatos são salvos na tabela candidates com seus scores
  7. N8N envia mensagens via WhatsApp para candidatos com alto score
  8. Empresa visualiza candidatos ranqueados no dashboard

📊 Estrutura do Projeto

desafio-final-equipe-4/
├── front-end/
│   ├── src/
│   │   ├── components/      # Componentes React
│   │   │   ├── ui/          # Componentes shadcn-ui
│   │   │   ├── layout/      # Layouts da aplicação
│   │   │   ├── CandidateDetailPanel.tsx
│   │   │   ├── TalentDetailPanel.tsx
│   │   │   └── JobMatchSection.tsx
│   │   ├── pages/           # Páginas da aplicação
│   │   │   ├── Landing.tsx
│   │   │   ├── Auth.tsx
│   │   │   ├── Dashboard.tsx
│   │   │   ├── Jobs.tsx
│   │   │   ├── NewJob.tsx
│   │   │   ├── JobCandidates.tsx
│   │   │   ├── TalentSignup.tsx
│   │   │   ├── SearchTalents.tsx
│   │   │   └── TalentBank.tsx
│   │   ├── hooks/           # Custom hooks
│   │   │   ├── useAuth.ts
│   │   │   └── use-toast.ts
│   │   ├── integrations/    # Integração Supabase
│   │   │   └── supabase/
│   │   └── lib/             # Utilitários
│   │       └── utils.ts
│   ├── supabase/
│   │   ├── functions/       # Edge Functions
│   │   │   └── match-talents/
│   │   └── migrations/      # Migrations SQL
│   ├── package.json
│   └── vite.config.ts
│
├── back-end/
│   ├── agente_1/            # Agente de análise de CV
│   │   ├── agent.py         # Código principal do agente
│   │   └── __init__.py
│   ├── agente_2/            # Workflows N8N (JSON)
│   │   ├── PRIMEIRA MENSAGEM RECRUIT FLOW.json
│   │   └── RESPONDER MESAGENS.json
│   └── requirements.txt
│
├── .env.example             # Exemplo de variáveis de ambiente
└── README.md

🔑 Variáveis de Ambiente

Frontend (.env no front-end/)

Variável Descrição Exemplo
VITE_SUPABASE_URL URL do projeto Supabase https://xxx.supabase.co
VITE_SUPABASE_ANON_KEY Chave pública do Supabase eyJhbGc...
VITE_API_BASE_URL URL da API backend http://localhost:8000

Backend (.env na raiz)

Variável Descrição Exemplo
GOOGLE_API_KEY API Key do Google Cloud AIzaSy...
GOOGLE_CLOUD_PROJECT ID do projeto GCP meu-projeto
GOOGLE_CLOUD_LOCATION Região do GCP us-central1
GOOGLE_CLOUD_BUCKET Bucket do GCS gs://meu-bucket
LANGFUSE_PUBLIC_KEY Chave pública Langfuse pk-lf-...
LANGFUSE_SECRET_KEY Chave secreta Langfuse sk-lf-...
AGENT_NAME Nome do agente curriculum
AGENT_MODEL Modelo de IA gemini-2.5-flash

📈 Modelo de Dados

Tabela: jobs (Vagas)

  • id - UUID
  • title - Título da vaga
  • description - Descrição detalhada
  • required_skills - Habilidades obrigatórias (array)
  • desired_skills - Habilidades desejadas (array)
  • benefits - Benefícios oferecidos
  • status - Status da vaga (open, closed)
  • created_at - Data de criação

Tabela: talents (Talentos)

  • id - UUID
  • full_name - Nome completo
  • email - E-mail
  • phone - Telefone
  • cpf - CPF
  • institution - Instituição de ensino
  • course - Curso
  • technical_skills - Habilidades técnicas (array)
  • soft_skills - Soft skills (array)
  • has_experience - Possui experiência
  • status - Status (cadastrado, em_processo, contratado)

Tabela: candidates (Candidatos por Vaga)

  • id - UUID
  • job_id - ID da vaga (FK)
  • full_name - Nome do candidato
  • email - E-mail
  • match_score - Score de compatibilidade (0-100)
  • ai_justification - Justificativa da IA
  • status - Status (received, screening, interview, approved, rejected)

🤝 Contribuindo

Contribuições são bem-vindas! Para contribuir:

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/MinhaFeature)
  3. Commit suas mudanças (git commit -m 'Adiciona MinhaFeature')
  4. Push para a branch (git push origin feature/MinhaFeature)
  5. Abra um Pull Request

📄 Licença

Este projeto foi desenvolvido como parte do desafio final da Equipe 4.


👥 Equipe

Desenvolvido pela Equipe 4 como projeto final.


📞 Suporte

Para dúvidas ou suporte, entre em contato através das issues do GitHub.


⭐ Se este projeto foi útil, considere dar uma estrela!

About

Plataforma de recrutamento com agentes de IA (Google ADK + Gemini) que analisam currículos, calculam compatibilidade com vagas e automatizam contato via WhatsApp

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages