// Proyecto · LangGraph · Agente · Azure OpenAI · Tavily
Un agente LangGraph que investiga cualquier empresa antes de tu entrevista: 6 workers de búsqueda concurrentes, routing por intent del feedback, dos checkpoints de revisión humana y un briefing Markdown listo para repasar antes de entrar.
// Características del sistema
El problema
Información dispersa. LinkedIn, web corporativa, Glassdoor, noticias recientes, GitHub público, redes sociales. Hay que abrir diez pestañas y tomar notas en papel. No hay un documento estructurado para repasar en los cinco minutos antes de entrar.
No hay tiempo. La investigación profunda que marca la diferencia tarda entre dos y cuatro horas. La mayoría de candidatos tiene múltiples procesos abiertos en paralelo. No escala.
Contexto desactualizado. Una empresa que investigaste hace dos semanas puede haber cerrado una ronda, lanzado un producto o enfrentar una crisis. Investigar en el momento justo sin automatización es imposible.
Preguntas genéricas. Sin investigación real, las preguntas al entrevistador son las mismas que hace todo el mundo. Un briefing estructurado genera preguntas específicas que demuestran interés genuino.
PASO 01
El agente recibe el nombre de la empresa. Desde START se abren dos subgrafos hermanos a la vez: research (qué hace la empresa y sus noticias recientes) y tech_stack (su stack real, inferido de blog de ingeniería, ofertas de empleo y StackShare).
PASO 02
Patrón map-reduce con la Send API de LangGraph. Dentro de cada subgrafo, 3 workers search_one se lanzan a la vez —6 en total— y escriben sobre un canal Annotated[list[str], operator.add] que concatena en vez de sobrescribir. Al cerrar el fan-in, un único nodo synthesize resume.
CHECKPOINT 01
El agente redacta 3 preguntas concretas para la entrevista —con un guard de frases genéricas que reintenta hasta 3 veces antes de enseñar nada— y el grafo pausa con interrupt(). Puedes aprobar con ok, pedir un cambio de redacción o pedir que vuelva a buscar.
PASO 03
El subgrafo briefing monta el documento final en Markdown a partir de la investigación, el stack y las preguntas aprobadas. La extracción de stack está protegida contra alucinación: el prompt obliga al modelo a declarar qué secciones quedan vacías en vez de inventar tecnologías.
CHECKPOINT 02
Segundo interrupt() antes de guardar nada. Revisas el documento completo, pides ajustes o confirmas. Solo con el visto bueno, write_file_node escribe el .md en briefings/. Ningún archivo se guarda sin aprobación explícita.
Agente construido con LangGraph sobre Python 3.10+. Búsqueda web con Tavily Search API. Inferencia con Azure OpenAI vía Azure AI Foundry. Sin frameworks extra — grafos, nodos, edges y Send API nativos.
Tecnologías
Seis nodos ejecutados concurrentemente usando el patrón Send de LangGraph — no polling manual, no threads externos. El grafo espera a que todos los workers terminen antes de continuar. Paralelismo gestionado dentro del grafo.
Los checkpoints no son try/except — son nodos de interrupción diseñados en el grafo. El agente no puede avanzar sin input humano. Patrón transferible a cualquier sistema donde la autonomía total es inaceptable.
Un clasificador LLM ordena cada rechazo en edit, research o tech_stack: «acorta la sección de noticias» nunca dispara una búsqueda, «revisa otra vez su stack» sí. Edge condicional en LangGraph, no un if/else fuera del agente.
El output no es un dump de información — es un documento con secciones pensadas para ser leídas cinco minutos antes de entrar a entrevistar. Síntesis que prioriza señales sobre volumen.
Relevante si...
Menos relevante si...
Proyectos relacionados
Pipeline multi-agente de búsqueda de empleo con revisión humana. ~€0.05–0.50/día de coste operativo.
Ver caso completo → Claude Code · MCP · ASTLos seis puntos de extensión de Claude Code aplicados a un monorepo real, con suite de validación.
Ver caso completo →Contacto
30 minutos. Sin compromiso. Si veo que puedo ayudarte, te lo digo. Si no, también.
Agendar videollamada →