Trabajo
PropioProducto propio · IA aplicada
FirstCommit

FirstCommit

Un SaaS de empleabilidad que conecta CV con IA, perfiles de GitHub y matching de vacantes para desarrolladores junior.

Captura de FirstCommit (1/2)
Captura de FirstCommit (2/2)
SYSTEM.md

El problema

Conseguir el primer empleo tech implica traducir proyectos y habilidades a un perfil que conecte con oportunidades relevantes.

Qué construí

Diseñé tres macroservicios: una Core API en Go, un AI Engine en Python y un scraper en Python que corre como job. Generan el CV, analizan GitHub y buscan vacantes por significado.

Resultado

Un producto que reúne la preparación del perfil y el descubrimiento de oportunidades. Sin demo pública por ahora.

Decisiones que importaron

  1. 01

    Tres macroservicios, dos lenguajes

    Go donde importa la latencia (auth, feed, pagos) y Python donde vive el ecosistema de IA y scraping. Arquitectura hexagonal en el backend.

  2. 02

    Una sola cola entre Go y Python

    La Core API nunca llama al AI Engine de forma directa: encola en Cloud Tasks. Así una generación de 60 s no bloquea a la API.

  3. 03

    Vectores dentro de la base

    pgvector en Supabase relaciona el perfil con las vacantes por significado, sin un servicio de vectores aparte.

  4. 04

    Costo fijo cercano a cero

    Cloud Run, Supabase, Cloudflare Pages y R2 mantienen el presupuesto total por debajo de US$65 al mes, con el LLM incluido.

  5. 05

    Secretos y permisos mínimos

    Secret Manager monta los secretos en Cloud Run, y cada servicio tiene su propia cuenta de servicio con permisos mínimos.

Tecnologías

  • Go
  • Python
  • Angular
  • Supabase
  • pgvector
  • Cloud Run
  • Cloud Tasks

Modelo C4. La línea con pulso es el recorrido principal de una solicitud.

Nivel 1 · quién usa el sistema y con qué se conecta

HTTPS1RESTAPIs ·scrapingLiteLLMWebhooksDesarrolladorjuniorBusca su primer empleoFirstCommitEmpleabilidad con IAGitHub[REST]Perfil y repositoriosFuentes de vacantes[APIs · HTML]APIs públicas y scrapingAPIs de LLM[LiteLLM · Helicone]Detrás de LiteLLM yHeliconeMercado Pago[Mercado Pago]Suscripciones

Nivel 2 · las aplicaciones y almacenes que lo componen

HTTP ·HTMLHTTPS1REST · JWT2WebhooksHTTPSS3 APISQLenqueue3HTTP push4RESTpgvectorLLM API5Fuentes de vacantes[APIs · HTML]APIs públicas y scrapingScraper[Python · Cloud Run Job]Lote de vacantes programadoMercado Pago[Mercado Pago]SuscripcionesResend[Resend]Avisos de oportunidadesDesarrolladorjuniorBusca su primer empleoAplicación web[Angular 22 · Cloudflare Pages]Perfil, vacantes y CVCore API[Go · Fiber · Cloud Run]Auth, feed, perfil y pagosArchivos[Cloudflare R2]PDF de los CVCola de tareas[GCP Cloud Tasks]Único canal del Core al AIEngineBase de datos[Supabase · PostgreSQL · pgvector]Datos, auth y vectoresGitHub[REST]Perfil y repositoriosAI Engine[Python 3.12 · FastAPI · CloudRun]CV, análisis de GitHub ymatchingAPIs de LLM[LiteLLM · Helicone]Detrás de LiteLLM yHelicone

Nivel 3 · los componentes dentro de la API

calls1rulesport2SQL ·Supabase3portenqueueportWebhooksHandlers HTTP[Fiber handlers]Fiber, con límite desolicitudesCasos de uso[Use cases]Auth, feed, perfil y pagosDominio[Domain]Reglas sin dependenciasAdaptador de datos[Supabase adapter]Supabase y pgvectorBase de datos[Supabase · PostgreSQL · pgvector]Datos, auth y vectoresAdaptador de colas[Cloud Tasks adapter]Encola en Cloud TasksCola de tareas[GCP Cloud Tasks]Único canal del Core al AIEngineAdaptador de pagos[mercadopago/sdk-go]SDK oficial de Mercado PagoMercado Pago[Mercado Pago]Suscripciones
  • Persona
  • Sistema
  • Contenedor
  • Base de datos
  • Externo
  • Recorrido principal
  1. 01Perfil
  2. 02Core API · Go
  3. 03Cola de tareas
  4. 04AI Engine · Python
  5. 05LLM y pgvector
  6. 06CV y vacantes

CV

Descarga mi CV

Déjame tu correo y te envío el CV ahí. Primero verifico que el correo es tuyo con un código.