// Proyecto · LangGraph · Agente · Azure OpenAI · Tavily

Llegar a la entrevista
sabiendo todo sobre la empresa.
En minutos.

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

Workers de búsqueda
6
concurrentes · map-reduce Send
Checkpoints humanos
2
pausa explícita en el grafo
Output
Markdown
briefing estructurado
Routing
3 intents
edit · research · tech_stack

El problema

Investigar una empresa antes
de entrevistar lleva horas.
La mayoría no lo hace bien.

01

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.

02

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.

03

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.

04

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.


Cómo funciona

PASO 01

Dos subgrafos en paralelo

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

6 workers de búsqueda concurrentes

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

Revisión de las preguntas

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

Síntesis con Azure OpenAI

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

Revisión del briefing

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.

LangGraph como motor,
Tavily para buscar,
Azure OpenAI para sintetizar.

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.

Python 3.10+ LangGraph Azure OpenAI (Azure AI Foundry) Tavily Search API Send API (map-reduce) Human-in-the-loop Intent routing python-dotenv Markdown output

Qué demuestra

LangGraph avanzado

Map-reduce real con Send API

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.

Human-in-the-loop

Dos pausas explícitas en el 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.

Routing por intent

Lógica de decisión dentro del grafo

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.

Output accionable

Briefing Markdown estructurado

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.


¿Te interesa este proyecto?

Relevante si...

  • Buscas un AI Engineer con experiencia real en LangGraph y patrones agénticos avanzados
  • Necesitas un sistema de investigación + síntesis con puntos de control humano explícitos
  • Quieres ver cómo implementar paralelismo real dentro de un grafo agéntico (Send API)
  • Valoras el routing condicional y los checkpoints como parte del diseño del sistema, no como parches

Menos relevante si...

  • Buscas un sistema de preparación de entrevistas con práctica de respuestas — este solo investiga la empresa
  • Necesitas integración con calendarios, ATS o plataformas de empleo para automatizar el proceso completo
  • Tu caso de uso requiere un agente completamente autónomo sin intervención humana en ningún punto

Proyectos relacionados

Multi-agente · Azure OpenAI · Next.js

Job Application Multi-Agent

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 · AST

Large Codebases AI Layer

Los seis puntos de extensión de Claude Code aplicados a un monorepo real, con suite de validación.

Ver caso completo →

Contacto

¿Construyes sistemas con IA?
Hablemos.

30 minutos. Sin compromiso. Si veo que puedo ayudarte, te lo digo. Si no, también.

Agendar videollamada →