MartínGonzález, AI Automation Engineer.

Retrato low-poly de Martín González

AI Automation Engineer

Argentina · UTC-3

Abierto a un puesto full-time remoto

Hoy: AI Automation Engineer @ Immigration Finder

Construyo agentes de voz y sistemas con LLMs que corren en producción.

Agentes de voz

Pipelines con LLMs

Integraciones

Producción

  • 26+agentes de voz corriendo en producción
  • 15+estudios jurídicos atendidos con mi trabajo
  • 10+bugs de producción encontrados y corregidos
  • 3+años automatizando, desde 2023
01Sobre mí

Hola, soyMartín.

Construyo agentes de voz, pipelines con LLMs y las integraciones que los rodean, y los mantengo andando después de entregarlos. Hoy lo hago para una consultora que opera sistemas de CRM y automatización para más de 15 estudios de abogados de inmigración en Estados Unidos.

Empecé a automatizar en 2023, con Bash y PowerShell, como administrador de sistemas. Por eso lo que construyo aguanta producción: siempre fui el que lo tenía que sostener después.

Busco un puesto full-time remoto. Somos MGZ, más abajo, es donde construyo por mi cuenta.

Datos rápidos

Dónde
Argentina
Zona horaria
UTC-3 · 1 a 2 h de US Eastern
Hoy
AI Automation Engineer · Immigration Finder (contractor)
Idiomas
Español (nativo) · Inglés (profesional)

Cómo trabajo

Pruebo contra datos reales, no contra mocks.

Una fila de prueba demuestra el camino feliz. Las filas reales demuestran el sistema. Esa costumbre es la que me hizo encontrar más de 10 bugs de producción, un agujero de seguridad entre clientes y dos brechas de compliance, casi siempre antes que el cliente.

02Proyectos

Cosas queconstruí.

Seis sistemas en producción. Sin nombres de clientes y sin capturas: las interfaces al lado de cada caso son esquemas ilustrativos, no capturas de sistemas reales.

01 Agencia editorial · QA de traducción de libros · 2026

Revisar libros enteros, no párrafos

  • Python
  • python-docx
  • Claude Code
  • Git
books / chapter-pipeline
repair ≤ 3INTEGRITYcode, no LLMREVIEW8 dimensions✓ APPROVEDapply · .docx? 2ND OPINIONvs bible only✕ HUMAN QUEUEquality✕ ESCALATEDafter 3 repairsch.14BOOK BIBLE+1 per chaptercharacterMara Ilvesch.14: "Marah"termthe Covenantch.14: "the Pact"stylepast tense, 3rd personok
UI ilustrativa
El problema
Una herramienta interna traduce libros enteros por máquina. Página por página el resultado se ve bien. A lo largo del libro se rompe: un personaje cambia de nombre entre capítulos, los términos se desvían, y aparecen párrafos inventados, fusionados o que desaparecen sin aviso.
Qué construí
Un sistema de revisión que parte el original y la traducción en capítulos y pasa cada uno por una máquina de estados reanudable en Python: primero chequeos de integridad en código puro, después una revisión por LLM en 8 dimensiones, y al final el ensamblado del .docx. Cada libro tiene una biblia de personajes, terminología y estilo contra la que se revisa cada capítulo siguiente.
Lo difícil
Distinguir una mala traducción de un pipeline roto. Las fallas de integridad (texto del prompt filtrado, truncados, bloques duplicados o sin traducir) van a un loop de reparación de 3 intentos, y después a una persona. Un veredicto dudoso nunca repite la revisión completa: recibe una segunda opinión angosta que solo pregunta si el capítulo contradice la biblia. El orden no lo decide el modelo. Lo decide la máquina de estados.
El resultado
51 libros, 1.472 capítulos aprobados, 72 de ellos resueltos por segunda opinión. En el camino, 24 bugs de la herramienta de traducción, documentados con evidencia para IT.

02 Somos MGZ · producto propio · 2026

Cinco mensajes, una sola respuesta

  • n8n
  • Redis
  • Chatwoot
  • OpenAI
  • PostgreSQL
whatsapp / burst-buffer
holaquería consultarpor un turnopara mañanaa la tarde?REDIS LISTwa:54929…exec #1last? no → exitexec #2last? no → exitexec #3last? no → exitexec #4last? no → exitexec #5last? yes → reply¡Hola! Sí, mañana a la tardetengo turnos. ¿A qué hora?
UI ilustrativa
El problema
La gente no escribe un mensaje: escribe cinco seguidos. Un bot que contesta cada uno responde cinco veces, fuera de contexto, y queda como un robot roto.
Qué construí
Un agente de WhatsApp multimodal sobre Chatwoot y n8n, 57 nodos en producción. Cada mensaje entrante se suma a una lista de Redis con el teléfono como clave. La ejecución espera y después se pregunta una sola cosa: ¿el último mensaje de la lista sigue siendo el mío?
Lo difícil
Esperar no alcanza. Cinco mensajes arrancan cinco ejecuciones en paralelo que compiten por responder. El chequeo de "¿sigo siendo el último?" deja sobrevivir a exactamente una, que contesta la ráfaga entera, sin locks y sin cola externa.
El resultado
Una respuesta por ráfaga, con todo el contexto. Audio, imágenes y PDFs van por su propia rama, los webhooks de más de 60 segundos se descartan, y el pase a un humano calla al bot por etiqueta.

03 Immigration Finder · varios estudios · 2026

Un deployment, cualquier cantidad de clientes

  • Python
  • LiveKit Agents
  • OpenAI
  • ElevenLabs
  • AssemblyAI
  • Docker
livekit / dispatch
call · firm_ccall · firm_acall · firm_d1 DEPLOYMENTjob.metadata→ CLIENTS[key]agent_name=intakefirm_afirm_bfirm_cfirm_d+ firm_e: 1 entrybefore: 1 deployment per clientceiling: 2 clients
UI ilustrativa
El problema
Agentes de voz de intake para varios estudios de inmigración de EE.UU. El pedido original era un deployment por cliente.
Qué construí
Una plataforma en Python sobre LiveKit Agents. Un solo deployment lee la metadata de cada llamada y arma la sesión con la configuración de ese estudio: prompt, tools y agenda. Sumar un estudio es una entrada en un diccionario.
Lo difícil
Primero lo hice como me lo pidieron y encontré el límite: en LiveKit Cloud un deployment es un proceso real, siempre caliente, no una fila de configuración. Uno por cliente era un techo de dos clientes. Revertí mi propio diseño con esa evidencia y lo rehice multi-tenant.
El resultado
Sin techo de clientes. Tool factories con closures (una implementación, N estudios), sin interrupciones mientras se escribe un turno, y ningún error post-llamada puede cortar una conversación en curso.

04 Un estudio de inmigración de EE.UU. · 2026

El bug que solo muestran los datos reales

  • n8n
  • USCIS API
  • Google Sheets
  • Gmail
  • OpenAI
sheets / case-status
case-status.sheetRECEIPTNAMESTATUSIOE•••0412Applicant 1ApprovedIOE•••7731Applicant 1Applicant 2ReceivedIOE•••1958Applicant 1Applicant 3RFE sentIOE•••3304Applicant 1Applicant 4Interviewitems[0].json.nameevery row inherits row 1$json.name (per item)verified on a real I-589 caseGmail · sent
UI ilustrativa
El problema
El estudio no tenía forma automática de saber cuándo cambiaba el estado de un caso ante USCIS. Se revisaba a mano, número de recibo por número de recibo.
Qué construí
Un workflow de 27 nodos en n8n que sigue los casos por número de recibo, escribe en Google Sheets, traduce las novedades con OpenAI y le avisa por mail a cada cliente. Auditado en 3 rondas de revisión adversarial antes de salir.
Lo difícil
Correrlo con filas reales destapó 4 bugs que ninguna revisión de diseño iba a encontrar. El peor: un índice de array plano hacía que cada fila después de la primera heredara en silencio la identidad de la primera persona. En inmigración, eso es mandarle a alguien el estado del caso de otro.
El resultado
Verificado de punta a punta con un caso I-589 real: escritura real en Sheets y envío real de Gmail, confirmados por las APIs. De cero a producción en una sola sesión.

05 Immigration Finder · interno · 2026

Distinguir "todavía no salió" de "está roto"

  • n8n
  • ScraperAPI
  • GPT-5-mini
bulletin / extract
PDFGPT-5-miniJSON150 rows · June 2026fetch result0 items: not out yetwait, no alertHTTP 500: brokenalert the team
UI ilustrativa
El problema
El scraper que seguía el Visa Bulletin mensual estaba muerto, bloqueado por Cloudflare.
Qué construí
Un workflow programado que baja el PDF desde su URL predecible vía ScraperAPI, extrae el texto de forma nativa (sin OCR), lo estructura con GPT-5-mini y lo publica en un canal interno, sin repetir el mismo mes.
Lo difícil
Dos fallas silenciosas. En n8n, un nodo que devuelve cero items frena toda la cadena, y eso rompía el caso normal de "todavía no se publicó". Después, un 500 del proxy se estaba leyendo como "no publicado". Ese lo rastreé directo contra la API REST de n8n.
El resultado
Validado dos veces contra el boletín real de junio 2026: 150 filas, estructuradas. La fuente es un documento público, así que este caso se puede mostrar casi entero.

06 Immigration Finder · interno · 2026

Una contraseña que abría la puerta equivocada

  • Supabase
  • n8n
  • Next.js
  • Vercel
  • Retell API
dashboard / auth
/client-a/client-bcookie · client-a401 · rejectedsecret = derive(master, client_id)one password, one dashboard
UI ilustrativa
El problema
Nadie podía ver cuánto costaban los agentes de voz de cada cliente.
Qué construí
Un schema en Supabase, un reporte semanal de uso en n8n y una app Next.js en Vercel, con contraseña distinta por cliente. Todo en una sola sesión.
Lo difícil
Construyéndolo encontré una vulnerabilidad real: la librería de password-gate no guardaba a qué cliente pertenecía la cookie de sesión, así que con un secreto compartido la contraseña de un cliente abría el dashboard de otro. Lo corregí con un secreto derivado por cliente.
El resultado
Verificado en vivo: la cookie de un cliente fue rechazada en la ruta de otro. En producción, con datos reales.
03Trayectoria

El caminohasta acá.

Del más viejo al más nuevo. La línea se dibuja mientras bajás.

  1. 2019May - Nov 2019
    Pasantías

    Soporte e infraestructura IT

    Hospital Interzonal Dr. José Penna · Escuela Técnica n°2

    • Instalé un servidor Moodle sobre Ubuntu Server para alumnos y docentes
    • Armé un sistema de tickets para poder seguir los pedidos de soporte
  2. 2023May 2023 - Ene 2026
    Experiencia

    Administrador de sistemas

    Copeviajes · agencia de viajes

    • Llevé la reputación del dominio de 3.7 a 10, con 100% de entregabilidad de mail
    • Armé la infraestructura de backup con Veeam
    • Automaticé la operación de IT con Bash y PowerShell: ahí empezó la automatización
  3. 2026Ene 2026 - Hoy
    Experiencia

    AI Automation Engineer

    Immigration Finder · EE.UU., remoto · contractor

    • Agentes de voz, pipelines con LLMs e integraciones para más de 15 estudios de inmigración
    • Administro 26 a 30 agentes de voz de Retell en una cuenta de agencia, con costos por cliente
    • Más de 10 bugs de producción encontrados y corregidos, incluida una vulnerabilidad de seguridad
  4. 20262026 - Hoy
    Por mi cuenta

    Builder

    Somos MGZ · productos propios

    • Un agente de WhatsApp en producción, construido sobre el patrón de buffering de ráfagas
    • Demo de agente de voz, sistema de reservas para canchas, sitios a medida para agencias de turismo

Abierto a trabajo · próxima parada

¿Tu equipo?

Hablemos
04Productos · Somos MGZ

Sistemas paratu negocio.

Somos MGZ es donde construyo por mi cuenta: software para PyMEs, con soporte directo y sin humo. Pasá el mouse o tocá una ventana para recorrerla.

  • demo.somosmgz.com
    Demo en vivo01 / 03

    MGZ. Agentes

    Atendé llamadas fuera de horario

    Un agente de voz con IA que atiende, responde y agenda cuando vos no podés. Probalo en vivo, desde el navegador.

    demo.somosmgz.com
  • mgz canchas · esquema
    MGZ. CanchasReservar
    Reservá tu cancha
    Cancha 1Cancha 2Cancha 3Cancha 4
    17:00
    18:00
    19:00
    20:00
    21:00
    22:00
    23:00
    Seña
    Pagar con Mercado Pago
    Recordatorio por WhatsApp
    Panel del complejo
    En producción02 / 03

    MGZ. Canchas

    Reservas sin planilla

    Turnos online para complejos deportivos, con seña por Mercado Pago y recordatorios por WhatsApp.

    somosmgz.com/canchas
  • tu-agencia.com.ar
    Tu agenciaWhatsApp
    Tu próximo viaje
    Paquetes
    Panel: cargar un paquete
    Publicar
    En desarrollo03 / 03

    MGZ. Turismo

    Tu agencia, con sitio propio

    Sitios a medida para agencias de turismo, con un panel para cargar paquetes y destinos sin depender de nadie.

    Pedí un ejemplo

Sitios y sistemas para tu negocio

¿Querés algo así para tu negocio?

05Contacto

Construyamosalgo que funcione.

¿Buscás a alguien para un puesto de IA, voz o automatización? Escribime, o encontrame en LinkedIn.