Saltar al contenido

English

Cómo está hecho

Un sistema que lee ofertas de trabajo y las evalúa contra un perfil. El modelo de IA evalúa; las reglas en código deciden; la persona elige. Acá está cómo, con detalle.

El recorrido de una oferta

Recorrido de una oferta, de la fuente a la decisiónSeis pasos en orden: 1 fuentes, 2 normalización y duplicados, 3 prefiltro en código, 4 evaluación con IA, 5 decide() en código, 6 la app y el MCP, donde la persona decide.1 · FuentesAPIs y alertas2 · Normalizacióny duplicados3 · Prefiltrocódigo, sin IA4 · Evaluacióncon IA5 · decide()código6 · App y MCPla persona decide
  1. Fuentes

    APIs públicas de bolsas de empleo y sitios de empleo de empresas (Greenhouse, Lever, Ashby), más las alertas que la persona reenvía por email.

    Nada de scraping de LinkedIn ni postulaciones automáticas.

  2. Normalización y duplicados

    Mismo aviso en dos fuentes → una sola oferta.

  3. Prefiltro (código, sin IA)

    Modalidad, disciplina, títulos fuera de perfil y país exigido. Descarta barato antes de gastar en IA.

  4. Evaluación con IA

    Lee el aviso completo contra el perfil y devuelve una respuesta con formato fijo y validado: puntaje, por qué sí, por qué no, lo que falta y riesgos.

  5. decide() (código)

    Aplica reglas verificables: años exigidos, inglés, residencia y techo por título. Así llega a la acción: aplicar, guardar o descartar.

    El modelo sugiere; el código decide.

  6. La app y el MCP

    La persona ve el porqué y decide. También se puede consultar por MCP (un protocolo para consultarlo desde un asistente de IA).

Cómo se evita que la IA invente

  • Golden set

    Un conjunto de ofertas con la respuesta correcta acordada de antemano. Cada cambio de prompt se mide contra él, con métricas estrictas y laxas, antes de salir.

  • Salida validada

    El modelo responde con un formato fijo, validado con un esquema (Zod). Si no cumple, se reintenta o se descarta; no se acepta un campo que no cumpla el formato.

  • Las reglas viven en código

    Años, inglés, país y techos por título se aplican después del modelo, con tests. El modelo no puede “convencer” al sistema de aplicar, y el sistema nunca postula por vos: la persona decide.

  • Prompt injection

    Un aviso puede traer instrucciones escondidas para engañar a la IA. El texto del aviso es dato, no instrucciones: se detecta cuando un aviso intenta darle órdenes al evaluador, y ese aviso queda con techo de puntaje.

  • Tope de costo

    Hay límites de gasto diario por persona y en total, con corte en código y registro de cada llamada.

  • Los emails se leen sin riesgo

    Si un email reenviado no tiene la forma esperada, va a revisión manual. No hay extracción “a medias”. El HTML se muestra aislado, sin scripts ni navegación.

Stack

Web
Next.js (App Router), TypeScript estricto y Tailwind.
Datos
Postgres con una regla que hace que cada persona vea solo lo suyo (Row Level Security, RLS) y Drizzle.
IA
Vercel AI SDK. El modelo se elige por tabla de ruteo, con modelo de respaldo.
Calidad
Vitest, Playwright, tests de integración con Postgres real y un CI con escáner de secretos.
Infra
Vercel y Neon, con tareas programadas en GitHub Actions.

En vivo

Ofertas activas
2.337
Fuentes
6
Nuevas en 24 h
226
Actualizado
hace 3 h

Cuenta los avisos distintos que vimos en los últimos 7 días en las fuentes que leemos.

Hay más de 2.000 tests automatizados (conteo al 20 de octubre de 2026).

El código

El código es público: podés leerlo.

Repositorio en GitHub (se abre en una pestaña nueva)Principios de diseño (se abre en una pestaña nueva)

¿Buscás trabajo en tecnología?

Pedí acceso