Reclutador Virtual
El Reclutador Virtual es un bot conversacional impulsado por IA que automatiza las interacciones con candidatos a traves de WhatsApp, email y chat.
Que es el Reclutador Virtual
RECLUTADOR VIRTUAL
| Flujo | Descripcion |
|---|---|
| Candidato | Envia mensaje por WhatsApp/Chat |
| Bot IA | Procesa y genera respuesta inteligente |
Componentes del Bot:
- RAG (Base de Conocimiento)
- LLM (GPT-4)
- Contexto de Conversacion
- Acciones Automaticas
Capacidades:
- Responder preguntas sobre vacantes
- Realizar screening inicial
- Agendar entrevistas
- Recolectar documentos
- Dar seguimiento a procesos
- Escalar a humano cuando necesario
Arquitectura del Bot
Componentes Principales
CANALES
- Chat Web
- SMS
CEREBRO
- LangGraph
- GPT-4
- RAG
ACCIONES
- Responder
- Crear Tarea
- Agendar
- Mover Etapa
- Solicitar Doc
CONTEXTO
- Perfil
- Historial
- Vacante
- Proceso
Flujo de Conversacion
-
MENSAJE ENTRANTE
- Candidato envia mensaje por WhatsApp
-
IDENTIFICACION
- Buscar candidato por telefono
- Cargar contexto (perfil, aplicaciones, historial)
-
CLASIFICACION
- Determinar intencion del mensaje
- Pregunta sobre vacante
- Consulta de estado
- Envio de documento
- Confirmacion de cita
- Otro
- Determinar intencion del mensaje
-
PROCESAMIENTO (LangGraph)
- Nodo de entrada
- Buscar en RAG (conocimiento)
- Cargar contexto relevante
- Determinar siguiente paso
- Nodo de entrada
-
GENERACION (GPT-4)
- Generar respuesta personalizada
- Usar contexto del candidato
- Seguir plantilla de conversacion
- Tono y estilo configurado
- Generar respuesta personalizada
-
ACCIONES
- Ejecutar acciones si necesario
- Crear tarea
- Mover etapa
- Agendar entrevista
- Escalar a humano
- Ejecutar acciones si necesario
-
RESPUESTA
- Enviar mensaje al candidato
- Guardar en historial
Crear un Reclutador Virtual
Desde el Panel
- Ir a Automatizacion y click en + Nueva Automatizacion
- Seleccionar "Reclutador Virtual"
- Elegir plantilla base:
- screening: Pre-filtrado de candidatos
- faq: Responder preguntas frecuentes
- scheduling: Agendar entrevistas
- documents: Recolectar documentos
- followup: Seguimiento de procesos
- custom: Crear desde cero
- Configurar:
- Nombre del bot
- Vacantes/Procesos asociados
- Fuentes de conocimiento
- Mensajes y tono
- Acciones automaticas
- Probar y Activar
Interfaz de Configuracion
| Campo | Descripcion |
|---|---|
| Nombre* | Mi Reclutador Virtual |
| Plantilla base* | Screening |
| Descripcion | Bot para realizar pre-screening de candidatos a vacantes de desarrollo. Evalua experiencia tecnica y disponibilidad. |
Vacantes asociadas:
- Desarrollador Senior React
- Desarrollador Backend Node.js
- Diseñador UI/UX
Canales activos:
- Chat Web (Career Page)
Configuracion del Bot
Personalidad y Tono
{
"personality": {
"name": "Ana",
"role": "Reclutadora de Tech Corp",
"tone": "professional_friendly",
"language": "es",
"greeting": "¡Hola! Soy Ana, tu asistente de reclutamiento de Tech Corp. ¿En que puedo ayudarte hoy?",
"characteristics": [
"Amable y profesional",
"Respuestas claras y concisas",
"Proactiva pero no invasiva",
"Empatica ante dudas o preocupaciones"
]
}
}
Comportamiento
{
"behavior": {
"responseTime": "immediate", // immediate, delayed (2-5 min)
"maxTurnsBeforeEscalate": 10,
"escalateOnUncertainty": true,
"uncertaintyThreshold": 0.6,
"escalateTo": "recruiter@empresa.com",
"workingHours": {
"enabled": true,
"start": "09:00",
"end": "18:00",
"timezone": "America/Mexico_City",
"outOfHoursMessage": "Gracias por tu mensaje. Te respondere en horario laboral (L-V 9am-6pm)."
},
"typingIndicator": true,
"typingDelay": 1500 // ms
}
}
Limites y Seguridad
{
"limits": {
"maxMessagesPerHour": 50,
"maxConversationLength": 100, // mensajes
"sessionTimeout": 30, // minutos de inactividad
"blockedTopics": [
"salarios exactos",
"informacion confidencial",
"otros candidatos"
],
"sensitiveDataHandling": {
"collectCURP": false, // Solo en formularios seguros
"collectPhone": true,
"collectEmail": true
}
}
}
Integracion con LangGraph
Estructura del Grafo
El bot usa LangGraph para manejar flujos de conversacion:
Flujo del Grafo:
- START - Inicio
- Classify Intent - Clasificar intencion
- Ramas paralelas:
- FAQ
- Screening (con Follow Up)
- Schedule
- Generate Response - Generar respuesta
- Execute Actions - Ejecutar acciones
- END - Fin
Nodos del Grafo
// Nodo de clasificacion de intencion
classifyIntent(state) {
const { message, context } = state;
// Usar LLM para clasificar
const intent = await llm.classify(message, [
"faq",
"screening",
"scheduling",
"documents",
"status",
"escalate"
]);
return { ...state, intent };
}
// Nodo de busqueda RAG
ragSearch(state) {
const { message, jobPosition } = state;
// Buscar en base de conocimiento
const relevant = await vectorSearch.search(message, {
filters: { jobId: jobPosition.id },
topK: 5
});
return { ...state, ragContext: relevant };
}
// Nodo de generacion de respuesta
generateResponse(state) {
const { message, context, ragContext, intent } = state;
const prompt = buildPrompt({
candidateName: context.candidate.name,
jobTitle: context.job.title,
intent,
ragContext,
conversationHistory: context.history
});
const response = await llm.generate(prompt);
return { ...state, response };
}
Modos de Operacion
Modo FAQ
Proposito: Responder preguntas frecuentes sobre vacantes
Flujo:
- Candidato pregunta sobre la vacante
- Bot busca en knowledge base (RAG)
- Genera respuesta basada en documentacion
- Si no encuentra respuesta, Escalar
Preguntas tipicas:
- "¿Cual es el salario?"
- "¿Es trabajo remoto?"
- "¿Que beneficios ofrecen?"
- "¿Cuales son los requisitos?"
- "¿Como es el proceso de seleccion?"
Modo Screening
Proposito: Pre-filtrado de candidatos
Flujo:
- Bot saluda y presenta la vacante
- Hace preguntas de screening:
- Experiencia relevante
- Skills principales
- Disponibilidad
- Expectativa salarial
- Ubicacion/modalidad
- Evalua respuestas
- Si cumple criterios, Agendar entrevista
- Si no cumple, Agradecer y cerrar
Ejemplo:
Bot: "¿Cuantos años de experiencia tienes con React?"
Candidato: "3 años"
Bot: "Excelente. ¿Has trabajado con Node.js en el backend?"
Modo Scheduling
Proposito: Agendar entrevistas automaticamente
Flujo:
- Verificar disponibilidad de entrevistadores
- Ofrecer slots disponibles al candidato
- Candidato selecciona preferencia
- Crear evento en calendario
- Enviar confirmacion
- Programar recordatorios
Ejemplo:
Bot: "Me encantaria agendar tu entrevista. Tenemos disponibilidad:
- Lunes 22 a las 10:00 AM
- Martes 23 a las 3:00 PM
- Miercoles 24 a las 11:00 AM
¿Cual te funciona mejor?"
Candidato: "El martes"
Bot: "Perfecto, te agendo el martes 23 a las 3:00 PM..."
Modo Documents
Proposito: Recolectar documentos
Flujo:
- Notificar documentos pendientes
- Explicar como subir cada uno
- Recibir y validar documentos
- Confirmar recepcion
- Notificar si hay errores
Ejemplo:
Bot: "Para continuar con tu proceso, necesito que subas tu INE. Puedes enviarla como foto aqui mismo."
Candidato: [Envia foto de INE]
Bot: "Recibido. Estoy validando tu documento... Tu INE ha sido validado correctamente."
Modo Followup
Proposito: Seguimiento proactivo
Flujo:
- Detectar candidatos sin actividad
- Enviar mensaje de seguimiento
- Responder consultas de estado
- Reactivar candidatos inactivos
Ejemplo:
Bot: "Hola Juan, han pasado 3 dias desde tu ultima actividad. ¿Sigues interesado en la posicion de Desarrollador Senior?"
Acciones del Bot
Acciones Automaticas
El bot puede ejecutar acciones automaticamente:
Basicas:
- Enviar mensaje
- Actualizar perfil del candidato
- Agregar notas
- Cambiar tags
Proceso:
- Mover a etapa
- Agregar a proceso
- Crear tarea para reclutador
- Marcar item de checklist
Documentos:
- Recibir documento
- Validar documento
- Solicitar re-subida
Calendario:
- Verificar disponibilidad
- Crear evento
- Reagendar
Escalacion:
- Transferir a humano
- Notificar a reclutador
- Crear alerta urgente
Configurar Acciones
{
"actions": {
"onScreeningPass": [
{ "type": "ADD_TAG", "tag": "pre-screened" },
{ "type": "MOVE_TO_STEP", "step": "Entrevista" },
{ "type": "SCHEDULE_INTERVIEW", "type": "initial" }
],
"onScreeningFail": [
{ "type": "ADD_TAG", "tag": "not-qualified" },
{ "type": "SEND_MESSAGE", "template": "rejection_friendly" }
],
"onDocumentReceived": [
{ "type": "VALIDATE_DOCUMENT" },
{ "type": "COMPLETE_CHECKLIST_ITEM" }
],
"onEscalate": [
{ "type": "CREATE_TASK", "assignTo": "recruiter" },
{ "type": "SEND_NOTIFICATION", "urgent": true }
]
}
}
Escalacion a Humano
Cuando Escalar
Escalar automaticamente cuando:
- Candidato solicita hablar con humano
- Bot no entiende despues de 2 intentos
- Pregunta sensible (salario, conflictos)
- Sentimiento negativo detectado
- Limite de turnos alcanzado
- Error del sistema
- Configuracion especifica
Como Funciona
- Bot detecta necesidad de escalacion
- Informa al candidato:
"Entiendo, te comunico con uno de nuestros reclutadores. En breve te contactaran."
- Crea tarea para reclutador
- Envia notificacion urgente
- Incluye contexto de conversacion
- Reclutador toma el control
- Bot se desactiva para ese thread
Configuracion de Escalacion
{
"escalation": {
"triggers": {
"keywords": ["hablar con alguien", "persona real", "humano"],
"sentiment": "negative",
"uncertainty": 0.6,
"maxTurns": 10,
"blockedTopics": true
},
"routing": {
"defaultTo": "team:reclutamiento",
"byJobPosition": {
"developer": "user:tech_recruiter",
"sales": "user:sales_recruiter"
},
"byUrgency": {
"high": "user:senior_recruiter"
}
},
"handoff": {
"message": "Te comunico con uno de nuestros reclutadores...",
"includeContext": true,
"summarizeConversation": true
}
}
}
Metricas del Bot
Dashboard
| Periodo | Conversaciones |
|---|---|
| Hoy | 45 |
| Esta Semana | 234 |
| Este Mes | 1,023 |
METRICAS CLAVE:
- Tasa de resolucion: 78%
- Tasa de escalacion: 12%
- Satisfaction score: 4.2/5
- Tiempo promedio respuesta: 3 seg
- Conversaciones completadas: 85%
INTENCIONES MAS COMUNES:
- Preguntas sobre vacante: 35%
- Estado de aplicacion: 25%
- Agendamiento: 20%
- Documentos: 15%
- Otros: 5%
ACCIONES EJECUTADAS:
- Entrevistas agendadas: 23
- Documentos recibidos: 45
- Candidatos pre-screened: 89
- Escalaciones: 12
Metricas Detalladas
Por conversacion:
- Turnos hasta resolucion
- Tiempo de conversacion
- Intenciones detectadas
- Acciones ejecutadas
- Satisfaccion (si aplica)
- Resultado final
Por candidato:
- Total de conversaciones
- Temas discutidos
- Documentos recolectados
- Etapa actual
- Score de engagement
Por vacante:
- Conversaciones iniciadas
- Pre-screenings completados
- Entrevistas agendadas
- Conversion rate
- Preguntas frecuentes
Pruebas y Debugging
Modo de Prueba
- Ir a Bot y click en Probar Conversacion
- Simular mensajes de candidato
- Ver:
- Intencion detectada
- Contexto usado
- RAG results
- Prompt enviado
- Respuesta generada
- Acciones ejecutadas
- Iterar y ajustar
Logs de Conversacion
{
"conversationId": "conv_123",
"turns": [
{
"timestamp": "2024-01-20T10:30:00Z",
"from": "candidate",
"message": "Hola, tengo dudas sobre la vacante",
"processing": {
"intent": "faq",
"confidence": 0.92,
"ragResults": 3,
"tokensUsed": 450
}
},
{
"timestamp": "2024-01-20T10:30:02Z",
"from": "bot",
"message": "¡Hola! Con gusto te ayudo...",
"actions": []
}
]
}
Buenas Practicas
Diseño de Conversacion
DO:
- Mensajes cortos y claros
- Una pregunta a la vez
- Confirmar antes de actuar
- Ofrecer opciones cuando posible
- Mantener contexto de conversacion
- Despedirse apropiadamente
DON'T:
- Mensajes muy largos
- Multiples preguntas seguidas
- Actuar sin confirmacion
- Respuestas roboticas
- Ignorar el contexto
- Terminaciones abruptas
Seguridad
Proteccion de datos:
- No solicitar datos sensibles por chat
- Validar identidad antes de dar info
- Encriptar conversaciones
- Retener solo lo necesario
- Cumplir regulaciones (privacidad)
Proximos Pasos
- Plantillas de Bot - Templates predefinidos
- Diseño de Conversacion - Crear flujos
- RAG y Conocimiento - Base de conocimiento