Things I've shipped across automation, AI, and the web.
A grouped tour of the systems I've built - client portals, data pipelines, AI platforms, n8n workflows, and the long-running SaaS work behind them. Client names are withheld. Click any card to expand the detail.
Portals, pipelines, and platforms running for clients
Benchmarking Client Portal
Solo build · 2026
Next.js 16SupabaseAI insightsDashboards
Client portal for an industry benchmarking tool. Replaced a static single-page Streamlit app with login, stored imports, AI insights and interactive dashboards.
Authenticated client accounts in place of a single shared page
Imports stored per client instead of re-uploaded each session
AI-generated insights on top of the benchmark data
Interactive dashboards
2,616 of 2,618 commits authored, March to October 2026
Business Directory Pipeline
Solo build · 2026
Google MapsWordPressCRM syncGoogle Sheets
Pipeline that scrapes Google Maps listings into a WordPress business directory, syncing a CRM and a ~2,760-row tracking sheet. Built and operated end to end.
Google Maps listings scraped into directory entries
WordPress directory kept in sync with the source data
CRM and tracking sheet synced alongside
Operated in production, not handed off
734 of 735 commits authored
Multi-Tenant Directory Dashboard
Solo build · 2026
Next.jsSupabaseRow-level securityMulti-tenant
Management dashboard on top of the directory pipeline, architected as multi-tenant with Supabase row-level security.
Multi-tenant architecture from day one
Tenant isolation enforced with row-level security
Sits on top of the directory pipeline data
266 of 266 commits authored
AI Marketing Platform Engine
Co-developed with a partner team · 2026
PythonCIBackupsADRs
AI content-marketing platform engine in Python, built with a partner team. My part is the reliability and governance layer.
Compliance checks on generated content
Analytics collectors
Per-client backups with tested restore
CI gating
Architecture decision records
137 of 291 commits authored
CRM for a Non-Profit Organisation
Solo build · 2025
Next.js 15React 19Refine.devBaserowTypeScript
CRM built and launched for a non-profit organisation - contacts, session reports, role-based access, a full audit trail and WordPress form intake.
Install and configure AI Operating Systems (Claude Code workspaces) for agency owners, delivered done-with-you over remote working sessions.
Cold Email Programme
Outbound programme · 2026
Cold emailData-driven personalisation
Cold email programme for the benchmarking product: 3 streams with data-driven personalisation, drawing on a proprietary dataset of 500,000 Australian companies.
AI Training Series for a Game-Dev Company
Speaking & training · 2026
n8nClaudeWorkshops
AI training series for a game-dev company with ~1000 developers, with 200+ participants in the largest session.
Conversational AI platform - a Next.js + Supabase web app and API in one codebase, with real-time chat (CometChat) and a dual auth system: Supabase for users, Basic Auth for admin routes.
AI-powered onboarding flow with conversation agents
Admin panel for user management and invitations
Scalable Supabase database layer
Production deploy via PM2, Traefik, automated SSL
Separate production and development environments
ElevenLabs voice synthesis integration
CI/CD with Bitbucket Pipelines and ESLint
Speaker Diarization API Service
ML API service
Python 3.12FastAPIPyAnnote.AudioRedisGCPDocker
Cloud API service for speaker diarization. Processes 500MB / 2-hour audio files with an async pipeline.
Upload an audio file with multiple people talking - the system returns separate audio tracks per speaker.
Async processing with Redis Queue jobs
ML diarization via PyAnnote.audio + PyTorch
Secure file access with signed URLs
Docker containerization
<5 min processing for 1-hour audio
Voice-Enabled AI Interview System
n8n workflow · 80+ nodes
n8nElevenLabsGoogle GeminiGoogle DriveFFmpeg
End-to-end conversational AI workflow integrating ElevenLabs with Google Workspace - automates interviews, transcript processing, answer extraction, and script generation.
A smart interview assistant. After a voice-AI call ends, this workflow grabs the recording and transcript, files everything correctly, extracts the answers, and generates a personalized script.
Workflow highlights
80+ nodes orchestrating webhooks, file I/O, API calls, AI agents
Parallel processing streams converging via Merge
FFmpeg-driven audio concatenation
Schema-enforced JSON extraction
95% reduction in manual setup time
92% accuracy on answer extraction
AI-Powered Handwriting Transcription
n8n workflow
n8nGoogle DriveGoogle GeminiGoogle Docs
Auto-detects and transcribes handwritten PDFs from Google Drive using Gemini, then writes the result to a Google Doc.
Drive trigger detects new / updated PDFs
Downloads and encodes to base64
Sends to Gemini API for transcription
Creates / updates Google Doc with the result
AI-Assisted Image Intake Form
n8n workflow
n8nGoogle Vision APIJavaScript
Form-driven workflow that collects, analyzes, and validates user-uploaded images via Google Vision API.
Form trigger on name + photo submission
LABEL_DETECTION for objects (sunglasses, hats)
FACE_DETECTION for blur / underexposure
Smart filter flags problematic visuals
92% quality-detection accuracy
03 - n8n Automation
Workflows that replace recurring manual work
Automated Email-to-CRM Documentation
Email operations
n8nGmailGoogle DriveJavaScript
Captures inbound Gmail, matches against a contact database, cleans thread artifacts, and files structured markdown into per-contact folders.
A smart filing assistant - reads emails, identifies the client, strips reply chains and signatures, files them in the right folder.
Polls Gmail every minute
Contact database cross-referencing
JS-based content cleaning
Automated Drive folder organization
Markdown files with YAML frontmatter
Skool Lead Generation & AI Outreach
Lead generation
n8nSkool APIGoogle GeminiPostgreSQL
Scrapes job postings across multiple Skool communities, qualifies with AI scoring, and generates hyper-personalized outreach with Gemini 2.5 Pro.
A tireless assistant that monitors 6 communities 24/7, reads every job posting, decides which are worth your time, and emails you the best ones with ready-to-send proposals.
Multi-stage automation that watches Drive for receipt images, extracts financial data via AI OCR, translates multilingual content, and writes to Sheets.
Take a photo of a receipt - a smart assistant reads it, understands what you bought and where, then drops it into a tidy spreadsheet automatically.
Business impact
95%+ time saving vs manual entry
AI extraction reduces human error
Processes receipts 24/7
Multilingual (Georgian, English)
Smart file naming for instant retrieval
Bank Statement Processing Automation
Bookkeeping
n8nGoogle GeminiGoogle DriveGoogle Sheets
Eliminates manual statement processing - turns PDF-derived markdown into structured JSON, extracts transactions, and AI-categorizes across 8+ accounts.
Drop bank statements in a Drive folder, click once - the system reads everything, organizes it into a spreadsheet, and AI-tags each transaction.
Results
96% reduction: 4 hours → 10 minutes monthly
95%+ categorization accuracy
8 different bank accounts handled
20+ categories, 50+ merchant patterns
AI-Powered Meeting Knowledge Base (RAG)
Knowledge base
n8nFireflies.aiOpenAIQdrantCohere
Turns Fireflies transcripts into a searchable knowledge base using a RAG architecture - hundreds of meetings, six coaching categories, vector embeddings + semantic search.
Instead of digging through meeting notes, ask a question in plain English - the AI searches every meeting and gives you a comprehensive answer.
Automated ingestion from Fireflies GraphQL
Dual database (Supabase + Baserow)
512-dim OpenAI embeddings
RAG chat with Cohere reranking
Query expansion (1 question → 3-5 searches)
Insight retrieval from 20-30 min to seconds
AI Content Generator (StoryBrand)
Content
n8nOpenAIGoogle GeminiGoogle SheetsSlack
Transforms client intake forms into brand narratives, website copy, and analysis docs using the StoryBrand framework.
Form trigger via Brand Strategy Questionnaire
OpenAI analysis through StoryBrand
Google Docs generation in client folders
Slack-integrated approval workflow
5-stage Sheets-driven status management
GHL ↔ n8n Sales Automation Suite
Sales operations
n8nHighLevelGoogle SheetsGoogle Drive
Full sales-and-delivery lifecycle - dynamic quoting with discount logic, automated PDFs, approval tracking, and delivery confirmation.
When sales updates a customer order in the CRM, the system prices it, applies discounts, creates a quote PDF, and stores it. Customer approves - pipeline updates. Driver uploads a delivery photo - order closes.
Dynamic quote engine with Sheets-driven pricing
Volume / non-profit / educational discounts
Branded automated PDFs
Closed-loop approval with unique URLs
Real-time HighLevel CRM sync
95% reduction in admin time
04 - Solar Analytics (2015-2025)
A decade on a multi-tenant SaaS platform
Solar Analytics Web Portal
Lead Front End Engineer
AngularDjangoPostgreSQLD3.jsAWSDocker
Multi-tenant SaaS for solar energy monitoring and fleet management - thousands of users in Australia and the US. Microservices, real-time visualization, predictive analytics, alerting.
A smart dashboard for solar systems. Homeowners and businesses see real-time generation and usage, and even forecast their bills.