IN PRODUCTION
SHIPPED
LEFT BEHIND
I deliver administrative, creative, and technical support end-to-end — automation, project management, business process mapping, operations management, workflow design, client success, and executive assistance. One person covering what usually takes a small ops team.
My approach is ROI-first: every workflow exists to remove a specific manual task — a spreadsheet someone updates by hand, an inbox someone re-reads every morning, a reminder someone has to remember to send. If it doesn't save real hours or catch a real mistake, I don't build it.
Based in the Philippines. "Nobody can achieve success alone — breathe and delegate" is more or less my whole operating philosophy. Comfortable owning a build end-to-end: logic, integrations, and the frontend a client or their guests actually touch.
Operational systems, in production
Real automations built for a tour & activities operator. Client and internal names are anonymized — the logic and outcomes are exactly as shipped. Click a case to expand.
Problem
Finance manually totaled bookings per partner, chased confirmations over email, and tracked disputes and reminders by hand — every single month, across every partner.
What I built
A monthly pull that aggregates bookings per partner, generates a branded breakdown, and emails a one-click confirm/dispute link with a single-use token. Confirms and disputes route automatically; unanswered items escalate to finance after 7 days; corrections trigger a fresh cycle without a new manual email.
Outcome
Zero manual chasing. Disputes are captured in a structured form instead of scattered email threads, and nothing sits unresolved longer than a week without someone being notified.
Problem
A payment-tracking board and a guide-scheduling board could quietly fall out of sync — wrong ticket counts for a date and time slot, with no one checking until a guest showed up short a ticket.
What I built
A daily job that pulls both boards, normalizes inconsistent product naming between them, and checks every scheduled slot in the next 14 days. Posts a Slack digest — all-clear, or an itemized list of exactly what mismatched.
Outcome
A manual spot-check became a report the team reads with morning coffee — mismatches get caught days before a guest is affected.
Problem
Incoming reviews needed to be matched to the right booking, checked for language, and answered — slow, manual triage that ate into someone's day.
What I built
A pipeline that pulls new reviews, matches them to booking records, uses AI to classify whether a review is guide-related, detects and translates non-English text, and drafts a suggested reply — staged in a sheet, never auto-published.
Outcome
Review triage time dropped sharply, and the team edits a draft instead of starting from a blank page every time.
Problem
5-star reviews naming specific guides went unnoticed — no one had time to read every review and pass along the credit.
What I built
A daily job that pulls new reviews, filters out ones already processed, matches each review to its booking and guide, and sends a direct Slack shout-out — paced with a short delay so it reads as intentional, not spammy.
Outcome
Guides hear about great feedback the day it happens, instead of never hearing about it at all.
Problem
Every cancellation email had to be read by hand, checked against a same-day / walking-tour policy window, and tagged manually on the booking.
What I built
A Gmail-triggered parser that extracts the booking ID and key fields directly out of the email's HTML, checks it against the cancellation policy window, and appends the correct tag automatically.
Outcome
One less manual read-and-tag step, every time a cancellation email lands.
Problem
A photography studio ran bookings through a form, then manually tracked every client in a spreadsheet, sent reminders by hand, and forgot to clean up delivery folders — storage crept up every month.
What I built
Seven connected Make.com scenarios: a Jotform booking creates or updates a Notion CRM record and a Drive folder; a payment webhook sends receipts and updates status; day-before reminders branch to SMS when a phone number exists, email when it doesn't; day-of and after-shoot emails fire automatically; and a nightly housekeeping pair empties trash and auto-deletes delivery folders three weeks old.
Outcome
The studio's entire client journey — from form submission to gallery delivery — runs without anyone touching a spreadsheet, and Drive storage stays lean on its own.
Problem
A villa rental needed a booking flow, ID capture, payment confirmation, and an in-stay pricing menu — without hiring a developer to maintain a real website, and without the caretaker manually updating prices anywhere.
What I built
Four n8n workflows that serve real webpages straight from webhook responses: a booking portal that uploads guest ID and logs to Notion, a payment/onboarding receiver that emails a confirmation, a welcome page with house info, and a live honesty-bar menu that reads a Google Sheet and auto-sorts items into drinks vs. snacks by keyword — so the caretaker edits a spreadsheet, never code.
Outcome
The whole guest journey lives on pages that update themselves — change a price in the sheet and the honesty-bar menu reflects it on the next page load, with zero deploys.
Problem
Tasks needing a reply were scattered across chat, email, a ticket board, and personal notes. A keyword-based "unanswered" filter kept flagging threads that were already resolved several replies deep, and meeting RSVPs got missed entirely because nothing pulled all four sources into one place.
What I built
An AI agent reads full chat threads and email chains daily — not just the first message — to judge what's genuinely still open, merges in live ticket-board items and self-authored decision notes, and writes the result into a git-backed vault note. A poll-based sync picks that up and renders it as a live, starrable status board, while calendar RSVPs are checked independently every two minutes so nothing sits unnoticed.
Outcome
One page replaces manually checking four different tools every morning. Star/checked state persists across refreshes and devices, resolved tickets drop off the board on their own, and the judgment step has already caught things a keyword filter would have missed — including a live automation bug and a false "unanswered" flag on an already-closed thread.
Problem
Special-offer bookings synced from a reseller could drift out of sync with the correct wholesale/net/commission split — sometimes by a few cents, sometimes by a lot — and finding + fixing each one by hand meant cross-checking a pricing sheet against a live booking record every single time.
What I built
A predictor computes what a booking's net and commission should be from validated schedule and offer data, then runs every candidate through five independent safety checks — booking exists, isn't cancelled, has valid current pricing, net doesn't already exceed retail, no conflicting adjustments already applied — before it's allowed anywhere near a live PATCH. After patching, it re-fetches the booking to verify the correction actually landed, and writes a per-row audit status: patched, already correct, skipped-unsafe, invalid-rate, or verify-failed.
Outcome
Bookings only get touched when every check agrees it's safe to. Anything ambiguous is flagged with a specific reason instead of silently guessed at — the system is designed to leave money alone rather than risk a wrong correction.
Problem
A second review source needed the same triage as the first (extract, dedupe, draft a reply) plus something the first didn't have: getting the review in front of the right team, not just a single shared inbox someone had to sort by hand.
What I built
Fetches new reviews per tracked product, filters out ones already logged, and creates a board item for each new one. AI drafts a suggested reply and separately flags whether the review contains an actionable suggestion or complaint. A lookup matches the review's tour category against a product directory to find the right Slack channel, and routes the notification there directly.
Outcome
Reviews reach the specific team that can act on them instead of sitting in one inbox everyone assumes someone else is checking.
Problem
Comparing team and guide performance month to month meant pulling numbers from a data warehouse and a live tracker sheet by hand, then formatting it into something people would actually read.
What I built
A scheduled job that pulls bookings and reviews from BigQuery and Sheets, groups everything by destination team and individual guide, ranks top performers and top add-on sellers, and assembles it into a Slack Block Kit report — medal emoji for the top three, a destination-specific icon per tour type, and a dynamically calculated reporting period so no date is ever hardcoded.
Outcome
Every team gets a readable, ranked recap in Slack on the first of the month, with zero manual pulling or formatting.
Problem
A lead's journey touched a lead source, a calendar tool, a CRM, and a sales team's Slack — separately. Reschedules got missed, no-shows fell through, and nobody had one place to see where a deal actually stood.
What I built
Nine connected Make.com scenarios sitting on a shared CRM record: lead intake and booking capture, reschedule detection that keeps the CRM in sync with the calendar, a morning reminder sequence, post-call meeting-link housekeeping, a dedicated no-show recovery path, AI-assisted qualified/interested routing, a Slack-based follow-up sequence, and a contract-creation flow that fires the moment a deal is ready to close.
Outcome
Every stage of the pipeline updates the same record automatically — the sales team always knows where a lead stands without hunting across four tools.
Problem
Recruitment, onboarding, time-off requests, and offboarding all lived as separate manual checklists — easy to skip a step on, especially for someone doing this alongside a dozen other responsibilities.
What I built
A connected set of workflows covering the applicant email step, manager/team assignment, a clean path for applicants who don't move forward, full onboarding for new internal team members, Slack notifications for time-off requests, and a structured offboarding flow.
Outcome
Every stage of someone's time with the team — from application to exit — follows the same reliable steps, whether it's the first hire of the year or the fifteenth.
Problem
Bookings, per-tour expenses, and guide pay calculations lived in separate spreadsheets that someone had to reconcile by hand every day, on top of manually reminding guides about the next day's schedule.
What I built
A booking sync that keeps internal records current, a daily expense-capture reminder tied to the previous day's tour (down to logging specific bar/restaurant stops), an automated guide/host rate calculation, and a scheduled reminder the evening before each tour — plus an internal search tool synced to Google Drive so the team can find any document instantly.
Outcome
The daily operational grind — bookings, expenses, pay, reminders — runs on a schedule instead of on someone remembering to do it.
Problem
A digital marketing agency needed every client milestone — payment received, ads launched, first lead landed, weekly check-ins, status updates — tracked and communicated consistently, without a team member having to remember each one manually across three separate platforms.
What I built
Ten connected automations spanning a CRM, an automation platform, and a client-communication tool: payment-triggered ad launch tasks, launch-completion feedback requests, first-lead milestone celebrations, video-request folder creation with incremental naming, a tiered 48-hour/1-hour/day-of reminder system, one-click AI-formatted client updates, and a full weekly-call booking-and-reminder sequence feeding a centralized appointment report.
Outcome
Every client-facing milestone fires consistently and on time — from the moment they pay to their weekly check-in call — without anyone on the team having to track it by hand.
Problem
Monthly client reports meant an analyst manually screenshotting a dashboard, writing a summary from scratch, and getting it approved before sending — repeated for every active client, every month.
What I built
A scheduled job creates a report entry for every active client, captures a screenshot of their live performance dashboard, and has a vision-capable AI model draft a client-facing summary strictly from what's actually in the screenshot — no invented numbers, positive framing, correct client voice. The draft routes to the assigned analyst in Slack with an interactive form to add planning notes; a second AI pass merges the analyst's input into a final version, which then goes to a manager for one-click approval before it's marked complete.
Outcome
Reports go from raw dashboard to client-ready copy automatically, but a human analyst and a manager both still touch and approve every single one before it ships — speed without losing the review step that matters.
When the brief was "make it feel like an airline"
A full AI-assisted event-tech build for a 7th birthday party themed as a private charter flight — RSVP to send-off, all built and coded from scratch.
The whole event ran on an airline-charter concept — so every tool needed to look and feel like part of that world, not like software bolted on top of a party. I designed and coded the frontend for each piece and wired the automation behind it end-to-end.
Animated Boarding-Pass RSVP
Airline-class themed RSVP pages (VIP, Business, First, Concorde) with a split-flap intro and an auto-generated boarding pass on submit. Logged straight to Sheets with confirmation emails via an n8n webhook.
View demo →Custom PA Announcement Voices
24 broadcast-style PA clips across two distinct AI voice profiles — a neutral "airport announcer" and a warm/expressive voice for emotional beats — plus a robotic alert voice for a surprise moment. Scripted and generated with ElevenLabs, tuned via its stability controls for tone.
Cargo Manifest — Live Guest Uploads
A mobile-friendly live upload wall with emoji reactions, a public gallery, and a leaderboard — three connected workflows (upload, gallery, leaderboard) with logic to keep the coordinator's own uploads out of the ranking.
View demo →Guest Check-In System
A booth-facing app listing 124+ guests with group tags, tap-to-check-in timestamps, walk-in add flow, search/filter, and live stats — replacing paper check-in entirely.
View demo →Supplier Coordination Tools
Self-registration form plus a live tracker dashboard for payments, balances, and per-vendor deliverables — replacing spreadsheets and group chats for 8 vendors.
Registration → · Tracker →Boarding Call Roulette
A projector app that randomizes which table gets called to the buffet next — a split-flap "departures board" animation synced to sound design and a PA voice-over.
View demo →Departures Gag Board
A looping departures-board animation for the projector during meal service, synced to a master clock with tap-to-enable clack sound effects.
View demo →Supplier Thank-You Reel
A self-contained animated HTML page crediting all 8 vendors in order, with embedded logos — built for the projector during the remarks segment.
View demo →Ground Control Dashboard + Show Bible
A color-coded crew dashboard plus a 55-page master run-of-show and role-specific supplier briefs — all generated from one source of truth.
View demo →Let's automate something
If your team is still doing something by hand that a workflow could do for them, that's the conversation to have.