Yohann Mar Gayao

Data, automation and QA tools, some AI video ads, and a separate page of Total War: WARHAMMER III mods. Each project says what's been checked and what hasn't.

Data, automation and other tools

SQL Query Agent

Ask a question in plain English. Claude writes the SQL, a Cloudflare Worker runs it against a small demo database, and the answer comes back from the real result. The model's SQL has to pass a SELECT-only check before it touches the database.

Cloudflare Worker, D1, Claude API, plain SQL

Checked
A test confirms the check blocks DROP, UPDATE and stacked statements and lets ordinary SELECTs through.
Not yet
Not deployed, since every question calls a paid API. The check is a keyword blocklist, not a SQL parser.

Gameplay video QA

Tools for reviewing a gameplay recording as a QA engineer. They measure freezes, black frames, scene cuts and brightness jumps on every frame, read HUD bars that show no numbers, cut labelled bug screenshots, and check that written findings point at real evidence. A Claude Code skill and a multi-agent workflow drive the review.

Python standard library, FFmpeg · MIT licence

Checked
Tests build videos with known defects (black, frozen and flashing stretches, a HUD bar dropping to half) and check each tool finds them at the right frame. Built for a QA take-home: an AI agent's boss fight against a reference run.
Not yet
The tests don't measure how accurate a review is.
The workflow on the n8n canvas: form, fetch, clean, extract fields, validate, then append to the tracker or log the failure.
The workflow imported into n8n. The red marks are nodes still waiting for Google credentials.

Job posting triage in n8n

Paste a job posting link. n8n fetches the page, Gemini pulls out the company, role, salary and requirements, a code step checks the fields, and a row lands in a Google Sheet. Every node sends its failures to a separate tab.

n8n, Gemini, Google Sheets

Checked
The validation logic passes 11 checks, and the workflow imports into n8n.
Not yet
Never run against a live posting. Next up: six to eight weeks of real use with a failure log, then the same workflow in Make and Zapier to compare.
Open, urgent and overdue counts above the maintenance queue.
The dashboard running on its made-up sample data.

Business operations dashboard

Staff CSV exports for a made-up property manager become one dashboard: versioned imports that turn away stale edits, assigned maintenance tasks, leasing and finance summaries, and local reminders.

Python standard library, SQLite, plain HTML, CSS and JavaScript · money kept in whole centavos

Checked
25 tests, an offline demo, and real clicks through the dashboard at desktop and phone width.
Not yet
Not connected to any real account or deployed anywhere, and its reminders stay in a local log instead of going out as messages.

Lead-to-CRM automation

Lead handling for the same kind of made-up property manager. An AI assessment has to quote its sources, a person approves before anything goes out, and then come the contact, a follow-up task and an optional email campaign. It handles replies, bounces and unsubscribes without redoing work that's already finished.

Python standard library, SQLite, n8n · HubSpot, Instantly and Gemini adapters

Checked
38 tests and an offline demo: duplicate intake, an approval, a timeout held for a person to sort out, recovery after a restart, and an unsubscribe cancelling unsent work.
Not yet
Never connected to real HubSpot or Instantly accounts. The adapters were tested against fake HTTP servers.
The calculator showing 12+4 = 16.

Rust calculator

A desktop calculator in Rust with egui. Operator precedence, parentheses and negative numbers, by mouse or keyboard. On Windows it's a single .exe that runs without an installer or a console window.

Rust, egui

Checked
cargo test covers the parser and the number formatting.

AI video ads

Forested ridges above a sea of cloud at sunrise.
A still from the Mistline Coffee ad.

Eight spec ads for brands that don't exist, in 16:9, 9:16 and 1:1. Google Veo and Gemini Omni made the clips, Flow Music made the music, and DaVinci Resolve put each one together. Four show off a product; the others are clay stop-motion, a creator-style phone video, a little story with dialogue and a 1990s TV spot.

Every clip is AI-generated, people included. None of it is client work.

Checked
The live page plays all eight at desktop and phone width.

Total War: WARHAMMER III mods

Seven campaign and battle mods, most generated from Python and tested outside the game. They have a page of their own.