Sebastián Arteaga Portafolio digitalDigital portfolio

Llevo productos y automatizaciones de la idea a producción: apps web, flujos con IA y la operación que los sostiene. Aquí están los principales proyectos, con el problema, las decisiones y lo que cambió.

I take products and automations from idea to production: web apps, AI workflows and the operations around them. Here are the main projects, with the problem, the decisions and what changed.

Productos webWeb products

Sencillo

En producciónLive

2025 – 2026Proyecto personal · finanzasPersonal project · finance

Finanzas personales que se anotan solas. Cuando llega el aviso del banco, un bot de Telegram pregunta qué fue y el resumen del mes se arma solo.

Personal finances that log themselves. When the bank's notice arrives, a Telegram bot asks what it was and the monthly summary builds itself.

En uso por 2 personas. Partió como un bot en n8n y lo reconstruí como producto propio.

Used by 2 people. It started as an n8n bot and I rebuilt it as a standalone product.

Ver el casoRead the case
ProblemaProblem
Anotar cada gasto a mano es lo primero que se abandona. Los bancos ya mandan un correo por cada compra y transferencia: la información existe, pero no está ordenada en ningún lado.
Logging every expense by hand is the first habit to go. Banks already email every purchase and transfer: the data exists, it just isn't organized anywhere.
Para quiénWho it's for
Una pareja que lleva sus finanzas por separado, en el celular y el computador. Al abrir la app quieren saber, en este orden: cuánto gastaron este mes y en qué, cómo van contra los meses anteriores y si les queda plata.
A couple who keep their finances separate, on phone and laptop. When they open the app they want to know, in this order: how much they spent this month and on what, how it compares with previous months, and whether money is left over.
DecisionesDecisions
  1. Captura automática y confirmación humana. Gmail avisa en tiempo real y el bot hace una sola pregunta. Lo que el banco no informa por correo se registra escribiéndole al bot, por ejemplo «5000 almuerzo». A cambio, todo depende del formato de cada banco, así que los lectores de correo se calibraron con correos reales y tienen tests.
  2. La categoría la decide la persona; el comercio se recuerda. Un descriptor críptico como «MERPAGO*JUANPEREZ» se traduce una sola vez, pero la categoría se pregunta siempre, porque el mismo comercio puede ser supermercado o un gusto. Los botones se ordenan según lo que se usó antes en ese comercio.
  3. Los correos ilegibles generan un aviso. Un correo que parece movimiento pero no se puede leer llega como aviso. Borrar no elimina: marca el correo como ignorado para que no vuelva a aparecer.
  4. Cada persona ve solo sus datos. La regla se aplica en la base de datos (RLS), además de en la pantalla.
  1. Automatic capture, human confirmation. Gmail pushes each notice in real time and the bot asks a single question. Anything the bank doesn't email gets logged by texting the bot, like “5000 lunch”. The trade-off is depending on each bank's email format, so the parsers were calibrated on real emails and are covered by tests.
  2. The person picks the category; the merchant is remembered. A cryptic descriptor like “MERPAGO*JUANPEREZ” is translated once, but the category is asked every time, because the same merchant can be groceries or a treat. Buttons are ordered by what was used at that merchant before.
  3. Unreadable emails raise an alert. An email that looks like a transaction but can't be parsed arrives as an alert. Deleting doesn't erase: it marks the email as ignored so it never comes back.
  4. Each person sees only their own data. The rule is enforced in the database (RLS) as well as in the UI.
IteraciónIteration
v1 (2025): bot en n8n con Gemini y búsqueda vectorial en Supabase. v2 (2026): app propia con lectores de correo probados, panel web y acceso con Google.
v1 (2025): an n8n bot with Gemini and vector search on Supabase. v2 (2026): a standalone app with tested email parsers, a web dashboard and Google sign-in.
Stack
Next.js · Supabase (Postgres, Auth, RLS) · Gmail API + Pub/Sub · Telegram Bot API · Vercel
Ver la appSee the app
Resumen del mes en Sencillo: gasto acumulado, comparación con meses anteriores y gasto por categoría
Pantalla de inicio con un ejemplo de compra y los botones de categoría Movimientos del mes, cada uno con su categoría Ajustes: conexión con Gmail y Telegram, y categorías editables
Capturas con datos de prueba. Toca una para ampliarla.Screenshots with test data. Tap one to enlarge.

Pricing de propuestasProposal pricing

En construcciónIn progress

2026Manuia · herramienta internaManuia · internal tool

Herramienta para que la consultora cotice todas sus propuestas con el mismo criterio, en vez de copiar planillas con datos de otra propuesta.

A tool so the consultancy prices every proposal with the same criteria, instead of copying spreadsheets pre-filled from another proposal.

Unificó los criterios de pricing y redujo los errores por copiar planillas prellenadas.

Unified pricing criteria and cut the errors that came from copying pre-filled spreadsheets.

  1. Costo por cargoCost per role
  2. Tarifa con factorRate with factor
  3. Fases × dedicaciónPhases × allocation
  4. Extras
  5. ContingenciaContingency
  6. Semáforo de margenMargin traffic light
Ver el casoRead the case
ProblemaProblem
Cada propuesta partía de una copia de la anterior. Los parámetros quedaban desactualizados, cada consultor aplicaba su criterio y los errores se arrastraban de una planilla a otra.
Every proposal started as a copy of the previous one. Parameters went stale, each consultant applied their own criteria and errors carried over from one spreadsheet to the next.
Para quiénWho it's for
Los consultores que arman propuestas y la administración, que define costos, parámetros y tipos de cambio.
Consultants who build proposals, and the admins who set costs, parameters and exchange rates.
DecisionesDecisions
  1. Paridad con la planilla antes de cambiar el proceso. El motor reproduce los cálculos de la planilla original, con tests que lo verifican hasta el redondeo de Excel. Así el equipo confía en los números desde el primer día.
  2. Lo sensible no sale del servidor. Un consultor ve tarifas por cargo, nunca sueldos individuales. El permiso se aplica en la base de datos, con políticas por fila y por columna.
  3. Parámetros con fecha de vigencia. Costos, parámetros y tipos de cambio tienen fecha de vigencia, así una propuesta antigua se puede recalcular tal como se cotizó.
  4. El margen se lee como semáforo. Verde si el margen alcanza el objetivo, amarillo si queda cerca y rojo si no, también con el descuento aplicado.
  1. Spreadsheet parity before process change. The engine reproduces the original spreadsheet's math, with tests that check it down to Excel's rounding, so the team trusts the numbers from day one.
  2. Sensitive data never leaves the server. Consultants see rates per role, never individual salaries. The permission is enforced in the database with row- and column-level policies.
  3. Parameters carry an effective date. Costs, parameters and exchange rates carry an effective date, so an old proposal can be recalculated exactly as it was quoted.
  4. Margin reads as a traffic light. Green when the margin meets the target, yellow when it's close, red when it isn't, with the discount applied too.
Siguiente pasoNext step
Terminar el simulador de propuestas. El motor de cálculo, la exportación a Excel por etapa, el panel de administración y los tipos de cambio automáticos ya están listos.
Finish the proposal simulator. The pricing engine, the per-stage Excel export, the admin panel and automatic exchange rates are already done.
Stack
Next.js · Supabase (RLS) · Vitest · Excel · Vercel Cron

Closet Sale Jo

En producciónLive

2026Proyecto personal · e-commercePersonal project · e-commerce

Catálogo para vender ropa usada: la vendedora publica desde el celular y cada compra se cierra por WhatsApp.

A catalog for selling second-hand clothes: the seller posts from her phone and every sale closes on WhatsApp.

Recién lanzado, con métricas de ventas e interés desde el primer día.

Just launched, with sales and interest metrics from day one.

Ver el casoRead the case
ObjetivoGoal
Que una vendedora con prendas únicas muestre todo lo disponible en un solo lugar y converse solo con quien ya eligió algo.
Let a seller with one-of-a-kind items show everything available in one place, and only talk to people who already picked something.
DecisionesDecisions
  1. La venta se cierra por WhatsApp. Cada prenda es única, así que no hay carrito ni pagos: el botón de WhatsApp está en la ficha de cada prenda. Sirve para un inventario pequeño, que es el caso.
  2. Publicar desde el celular. Se suben varias fotos de una vez, cada una queda como borrador y se publica al completar título, precio y talla.
  3. Lo vendido se queda a la vista. Con su etiqueta y sin botón de WhatsApp: muestra movimiento y evita mensajes por prendas que ya no están.
  4. Reservar sin sacar la prenda de la tienda. Una prenda apartada queda visible con su etiqueta y se puede liberar si la venta no se concreta.
  5. Medir el interés sin seguir a nadie. Conteos anónimos y sin cookies de visitas, prendas vistas y clics en WhatsApp; las visitas de la vendedora no se cuentan. La pestaña de ventas muestra lo vendido, los días que tarda una prenda en venderse, de dónde llegan las visitas y qué se vende por categoría, talla y marca.
  6. Planes gratuitos y registro cerrado. Supabase y Vercel en planes gratuitos, con el registro cerrado para que solo la vendedora pueda administrar.
  1. Sales close on WhatsApp. Every item is unique, so there's no cart or checkout: the WhatsApp button sits on each item's page. It suits a small inventory, which is the case here.
  2. Post from the phone. Upload several photos at once; each becomes a draft and goes live once title, price and size are filled in.
  3. Sold items stay visible. Labeled and without the WhatsApp button: it shows turnover and prevents messages about items that are gone.
  4. Reserve without pulling the item. A held item stays visible with its label and can be released if the sale falls through.
  5. Measure interest without tracking people. Anonymous, cookie-free counts of visits, item views and WhatsApp clicks; the seller's own visits aren't counted. The sales tab shows what sold, how many days items take to sell, where visits come from and what sells by category, size and brand.
  6. Free tiers, closed sign-up. Supabase and Vercel free tiers, with sign-up closed so only the seller can manage the store.
Stack
Next.js · Supabase (Postgres, Storage, Auth) · Vercel
Ver la tiendaSee the store
Tienda Closet Sale Jo: portada con dos prendas destacadas
Ficha de una prenda con el botón para escribir por WhatsApp Administración desde el celular: prendas disponibles, reservadas y vendidas Pestaña de ventas: lo vendido, días en venderse, ventas por mes e interés
Capturas con datos de prueba. Toca una para ampliarla.Screenshots with test data. Tap one to enlarge.

AutomatizacionesAutomations

Flujos en n8n y Make.

Workflows in n8n and Make.

Screening NIIF S1 y S2 con RAGIFRS S1 & S2 screening with RAG

En producciónLive

2026Manuia

Revisión asistida por IA de las normas de divulgación NIIF S1 y S2: un agente lee la documentación de la empresa y evalúa criterio por criterio.

AI-assisted review against the IFRS S1 and S2 disclosure standards: an agent reads the company's documents and assesses them criterion by criterion.

La revisión pasó de ~2 semanas a ~40 minutos, con 88 % de coincidencia con las respuestas de un consultor en un proyecto de referencia.

Review time went from ~2 weeks to ~40 minutes, with 88% agreement with a consultant's answers on a reference project.

  1. FormularioForm
  2. DocumentosDocuments
  3. Fragmentos y embeddingsChunks & embeddings
  4. Búsqueda y rerankingSearch & reranking
  5. Agente evalúa cada criterioAgent scores each criterion
  6. Planilla de resultadosResults sheet
DecisionesDecisions
DecisionesDecisions
  1. Piloto acotado en S2. Partió con S2 (clima) y luego se amplió a S1 y S2.
  2. Medir contra el trabajo de un consultor. La calidad se midió comparando con las respuestas de un proyecto ya hecho.
  3. Los errores tienen su propio flujo. Las fallas se manejan en un flujo dedicado, separado de la revisión.
  1. Narrow pilot on S2. It started with S2 (climate) and was later extended to S1 and S2.
  2. Measure against a consultant's work. Quality was measured against the answers of a completed project.
  3. Errors get their own workflow. Failures are handled in a dedicated workflow, separate from the review.
Stack
n8n · Claude · Gemini embeddings · Cohere rerank · Google Sheets

Operación del CRMCRM operations

En producciónLive

2026Manuia · HubSpotManuia · HubSpot

Cuatro flujos que mantienen el CRM al día: un bot de Telegram para registrar contactos, empresas y negocios sin abrir HubSpot, limpieza de datos cada noche, sincronización con Google Sheets y consultas.

Four workflows that keep the CRM current: a Telegram bot to log contacts, companies and deals without opening HubSpot, a nightly data cleanup, a Google Sheets sync and queries.

El costo bajó de ~USD 7 al mes (antes ~USD 50) al pasar de Zapier a n8n en un servidor propio.

Cost dropped to ~USD 7 a month (from ~USD 50) by moving from Zapier to self-hosted n8n.

  1. Mensaje en TelegramTelegram message
  2. Buscar o crear empresaFind or create company
  3. Contacto y negocioContact & deal
  4. ValidaciónValidation
  5. HubSpot
DecisionesDecisions
DecisionesDecisions
  1. Llevar el CRM a donde ya está el equipo. Registrar desde Telegram, con botones y validaciones, evita abrir HubSpot para cada contacto.
  2. Limpieza automática cada noche. Corre a las 2:00 y mantiene la base ordenada.
  3. n8n en un servidor propio. Reemplaza a Zapier con menos costo y sin cobro por tarea.
  1. Bring the CRM to where the team already is. Logging from Telegram, with buttons and validation, saves opening HubSpot for every contact.
  2. Automatic nightly cleanup. It runs at 2:00 and keeps the data tidy.
  3. Self-hosted n8n. It replaces Zapier at a lower cost, with no per-task pricing.
Stack
n8n (self-hosted) · HubSpot API · Telegram · Google Sheets

Pagos de reservas con Webpay PlusBooking payments with Webpay Plus

En producciónLive

2025 – 2026Cliente · arriendo de equipos de ski en el sur de ChileClient · ski rental in southern Chile

Cobro de reservas por correo: cada reserva envía al cliente un correo con un link de Webpay, y tanto él como el equipo se enteran del resultado del pago.

Booking payments by email: every booking sends the customer an email with a Webpay link, and both they and the team hear how the payment went.

Antes, una persona en el extranjero creaba cada link a mano en Khipu y cobraba CLP 2.000 por transacción; la demora hacía perder clientes. Ahora el correo con el link sale solo: el costo de cada transacción bajó considerablemente y pagar tiene mucha menos fricción.

Before, a person abroad created each link by hand in Khipu and charged CLP 2,000 per transaction; the delay was losing customers. Now the email with the link goes out on its own: the cost per transaction dropped considerably and paying has far less friction.

  1. ReservaBooking
  2. Correo con link de pagoEmail with payment link
  3. El cliente abre el linkCustomer opens the link
  4. Transacción WebpayWebpay transaction
  5. Consulta de estadoStatus check
  6. ConfirmaciónCommit
  7. Aviso según resultadoNotice by outcome
DecisionesDecisions
DecisionesDecisions
  1. El pago vive en el correo, fuera del ERP. El ERP del cliente no manejaba pesos chilenos, así que la pasarela se armó alrededor del correo de la reserva en vez de dentro del sistema.
  2. La transacción se crea al abrir el link. Cada pago en Webpay tiene un tiempo límite; crearlo recién cuando el cliente abre el correo o el link evita que le llegue un pago ya vencido.
  3. Cada estado del pago tiene su aviso. Pagado, rechazado, expirado y anulado avisan al cliente y al equipo por separado.
  4. Migración por etapas. Primero se automatizó el link de Khipu; después se migró a Webpay Plus, probado en el ambiente de integración antes de pasar a producción.
  1. Payment lives in the email, outside the ERP. The client's ERP didn't handle Chilean pesos, so the gateway was built around the booking email instead of inside the system.
  2. The transaction is created when the link is opened. Every Webpay payment has a time limit; creating it only when the customer opens the email or the link keeps them from getting an already expired payment.
  3. Every payment state has its own notice. Paid, rejected, expired and cancelled notify the customer and the team separately.
  4. Staged migration. The Khipu link was automated first; then it moved to Webpay Plus, tested in the integration environment before going to production.
Stack
n8n · Webpay Plus API · Gmail

Captación para alzamiento de hipotecasLead intake for mortgage releases

EntregadoDelivered

2026Freelance para una agencia de IA · estudio jurídicoFreelance for an AI agency · law firm

Embudo de captación automatizado: los documentos que llegan por correo se convierten en un cliente registrado, un primer correo personalizado y seguimientos hasta que responda.

An automated intake funnel: documents arriving by email become a registered client, a personalized first email and follow-ups until they reply.

Iterado en varias versiones: ingesta, clasificación y seguimiento.

Iterated over several versions: intake, classification and follow-up.

  1. Correo con PDFsEmail with PDFs
  2. Extracción de textoText extraction
  3. LLM extrae cliente y operaciónLLM extracts client & case
  4. CRM en Airtable y DriveCRM in Airtable & Drive
  5. Agente redacta el primer correoAgent drafts first email
  6. Seguimiento diarioDaily follow-up
DecisionesDecisions
DecisionesDecisions
  1. Reglas de negocio editables en Airtable. Días entre seguimientos, máximo de intentos y plantillas se cambian sin tocar el flujo.
  2. El agente escribe con contexto y en un formato fijo. Lee la base de conocimiento del estudio y el historial de la operación, y responde con una estructura que el flujo puede enviar directo.
  3. Límites documentados en el flujo. Por ejemplo, los documentos escaneados que necesitan OCR.
  1. Business rules editable in Airtable. Days between follow-ups, maximum attempts and templates change without touching the workflow.
  2. The agent writes with context, in a fixed format. It reads the firm's knowledge base and the case history, and answers in a structure the workflow can send as is.
  3. Limits documented in the workflow. For example, scanned documents that need OCR.
Stack
n8n · Airtable · Google Drive · Gmail · OpenAI · Gemini

Conciliación de liquidaciones en varias monedasMulti-currency settlement reconciliation

PrototipoPrototype

2026Desafío técnico de un proceso de selecciónTechnical challenge for a hiring process

Convierte la moneda, calcula la diferencia y una IA audita cada operación antes de marcarla como liquidada o levantar una alerta.

It converts the currency, computes the difference, and an AI audits each operation before marking it settled or raising an alert.

El código calcula, la IA audita: los montos los calcula código determinista y la respuesta del modelo decide si se liquida o se alerta.

Code calculates, AI audits: amounts come from deterministic code, and the model's verdict decides whether to settle or alert.

  1. Webhook
  2. OperaciónOperation
  3. Conversión de monedaCurrency conversion
  4. DiferenciaDifference
  5. Auditoría con ClaudeClaude audit
  6. Liquidado o alertaSettled or alert
n8n · API de tipos de cambioExchange-rate API · Claude API

Lectura de reglamentos de copropiedadCondominium bylaws reader

No continuóDiscontinued

2026Freelance · legal tech · MakeFreelance · legal tech · Make

Reglamentos de copropiedad, muchas veces escaneados: Claude extrae el texto y genera un informe en Google Docs para proponer modificaciones.

Condominium bylaws, often scanned: Claude extracts the text and writes a Google Docs report to propose amendments.

El proyecto no siguió adelante, pero el OCR quedó funcionando.

The project didn't go ahead, but the OCR works.

  1. Registro en AirtableAirtable record
  2. Carpeta en DriveDrive folder
  3. Claude lee el documentoClaude reads the document
  4. Informe en DocsReport in Docs
  5. Actualiza AirtableUpdates Airtable
Make · Claude · Airtable · Google Drive · Google Docs

Skills de IAAI skills

Skills de Claude para la consultoríaClaude skills for consulting

2026Manuia

Paquetes de instrucciones y scripts que le enseñan a Claude a producir entregables con el estándar de la consultora: un diagnóstico de sostenibilidad que lee la documentación de cada empresa y completa las planillas de evaluación, la carta Gantt del proyecto a partir del kick-off y la identidad de marca aplicada a cualquier material.

Packaged instructions and scripts that teach Claude to produce deliverables to the consultancy's standard: a sustainability assessment that reads each company's documents and fills in the evaluation workbooks, the project Gantt chart from the kick-off, and the brand identity applied to any material.

La metodología y las plantillas son de Manuia, por eso no las muestro.

The methodology and templates belong to Manuia, so I don't show them.

Claude Skills · Python · Excel

Cómo trabajoHow I work

  • Diseñar para el usuario principal. Elijo la solución que más le sirve a quien usa el producto: Closet Sale no tiene carrito porque a la vendedora le sirve más cerrar cada venta conversando.
  • Automatizar lo repetible, dejar a la IA la validación y la interpretación, y el criterio a las personas. En la conciliación, el código calcula y la IA audita; en Sencillo, el bot registra y la categoría la decide la persona.
  • Diseñar también los casos que fallan. Un pago rechazado o un correo ilegible tienen su propia respuesta.
  • Medir e iterar en versiones. El screening NIIF se validó contra un consultor y creció de S2 a S1 y S2; el CRM redujo su costo al pasar de Zapier a n8n.
  • Design for the primary user. I pick the solution that serves the person using the product best: Closet Sale has no cart because closing each sale in conversation works better for the seller.
  • Automate the repetitive, let AI validate and interpret, leave judgment to people. In the reconciliation, code calculates and AI audits; in Sencillo, the bot logs and the person decides the category.
  • Design the failure cases too. A rejected payment or an unreadable email gets its own response.
  • Measure and iterate in versions. The IFRS screening was validated against a consultant and grew from S2 to S1 and S2; the CRM cut its cost by moving from Zapier to n8n.

HerramientasTools

ConstrucciónBuilding
Next.js · TypeScript · Supabase · Postgres · Vercel
AutomatizaciónAutomation
n8n · Make · Airtable · HubSpot · Google Workspace · Telegram
IAAI
Claude · OpenAI · Gemini · RAG (embeddings, reranking) · agentesagents

ContactoContact

¿Conversamos?Let's talk.

Estoy abierto a nuevas experiencias laborales en roles como Product Manager, Product Owner, automatización o IA. Si te interesa conversar, escríbeme.

I'm open to new opportunities in roles such as Product Manager, Product Owner, automation or AI. If you'd like to talk, drop me a line.

seba.arteaga@gmail.com