click to skip

Selected Work

Portfolio

Client websites, sales funnels, and the automation systems running behind them.

Not Just A Website

An App They Actually Install

Every business runs differently, so every app I build is different too — priorities, team views, live analytics, whatever the job needs. This one is real, currently running on North City Roofing's field team's phones.

Install on Home Screen
Custom app — main menu

Main Menu

Custom app — secure sign-in

Secure Sign-In

Custom app — quick menu

Everything, One Tap Away

Custom app — team performance

Live Team Analytics

Built for a roofing company here — the same system works just as well for dental, HVAC, coaching, or whatever runs your business. I'll build yours around your actual workflow.

North City Roofing

Built For The Field

A quick look at the internal ops dashboard from the North City Roofing case study. Drag or swipe to see more.

North City Roofing dashboard — welcome home screen

Welcome Home

North City Roofing dashboard — secure sign-in

Secure Sign-In

North City Roofing dashboard — team performance

Team Performance

North City Roofing dashboard — analytics and rankings

Analytics & Rankings

North City Roofing dashboard — customer database

Customer Database

North City Roofing dashboard — my assignments

My Assignments

See the full case study →
Valle Del Sol Cabo · Featured Build

OpenTable → Make.com → GHL Reservation Campaigns

Every OpenTable reservation at Torote, the on-site restaurant for Valle Del Sol's development, flows into GoHighLevel and triggers a branching WhatsApp, email, and SMS sequence — one of several event-driven systems running behind the live site at valledelsolcabo.com →

OpenTable Reservation Trigger
Make.com Automation Router
GoHighLevel Contact + Pipeline
WhatsApp
Email
SMS
Team Alert
3-StageCountdown Sequence
4Channels Triggered
24/7Live & Fully Automated
Make.com scenario diagram — Torote OpenTable Reservations to GHL, with HTTP requests, iterator, and skip filters Live

OpenTable → GHL Contact SyncThe Make.com scenario polling OpenTable reservations, filtering cancelled/skipped guests, and pushing each one into GHL via /contacts/upsert.

GoHighLevel workflow builder — full reservation reminder campaign with branching WhatsApp, email, and SMS sequences

Full Workflow, Trigger to OutcomeThe complete tag-based trigger tree inside GHL — every branch, delay, and channel from the first reservation ping through to a delivered confirmation.

Reservation Reminder & Confirmation Sequence

Fires on a 7-day, 24-hour, and 2-minute countdown to every reservation — branches on guest reply ("Yes, Walk Me Through" / "No, Just Dinner" / timed out) and fans out into WhatsApp confirmations, backup emails, and an internal team notification the moment a guest responds. Delivery is tracked end to end on every channel.

Countdown LogicBranchingDelivery Tracking

OpenTable → GHL Contact Sync

Every new reservation instantly creates or updates the guest's contact record in GoHighLevel — tagged, timestamped, and ready for the sequence to fire without a single manual step.

Make.comWebhook SyncAuto-Tagging
Automations In Action

See It Running, Live

Automated Google review requests and missed-call text-backs — both fire instantly, 24/7, with zero manual work on your end. Tap the phone to watch the demo.

Automated Google Reviews

The moment a job is marked complete, the customer gets a text asking for a review — with a direct link straight to the Google listing, no app required.

Missed Call Text Back

Miss a call and the caller instantly gets a text back, so no lead ever goes cold just because nobody picked up in time.

Valle Del Sol homepage — Cabo's Secret Valley valle-del-sol.png
Flagship Case Study

Valle Del Sol — Cabo's Secret Valley

A real estate & hospitality development above Cabo San Lucas — desert ranch homes, a working farm, and the award-winning Torote Restaurant. Built entirely from scratch in VS Code with custom HTML, CSS, and JavaScript, and first hosted live on Vercel. Once the client needed ongoing, non-technical management, the whole build was migrated into GoHighLevel through vibe coding, preserving the original design and animation exactly.

Visit live site →
VS CodeVercelGHL MigrationVibe CodingOpenTable APIMake.com
01Built From Scratch — full custom HTML, CSS, and JavaScript site coded in VS Code for the client's real estate and restaurant brand.
02Hosted on Vercel — deployed and served the initial live version for the client and stakeholders.
03Migrated to GoHighLevel — rebuilt the entire site inside GHL via vibe coding, so the client can manage it long-term without touching code.
04OpenTable API Integration — configured the OpenTable API for the Torote Restaurant, then added and embedded the reservation script directly into the site so guests can book a table on the page.
05Automation Build — set up automations in Make.com and GHL connecting reservation and lead data straight into the CRM.
06Ad Campaign — built and manage the marketing campaign driving traffic to the development for this large hospitality client.
Platforms the AI agent publishes to socials-grid.png
Featured Build

Autonomous Social Media AI Agent

A fully autonomous social media agent built with Claude Code in VS Code — performs deep research, generates scroll-stopping visuals, writes platform-optimized copy, and publishes to every major platform in a single click. Zero manual work.

Claude CodeAnthropic APIBlotatoPostizGensparkFal.aiGeminiNanobanana
01Deep Research — Genspark & Gemini research trending topics, niche insights, and high-performing content angles automatically.
02AI Content Writing — Anthropic API writes platform-optimized copy for each channel (captions, hooks, CTAs).
03Visual Generation — Fal.ai and Nanobanana generate unique images and video creatives. No stock photos.
041-Click Publishing — Blotato and Postiz push polished posts to Facebook, Instagram, LinkedIn, TikTok, X, YouTube & more, simultaneously.

Publishes across 30+ platforms including Reddit, Threads, Google My Business, Pinterest, Discord, Bluesky, Telegram, Medium, WordPress, and more.

Flagship Case Study

North City Roofing

End-to-end inbound lead automation system — custom HTML form, webhook architecture, CRM pipeline strategy, GHL workflow automation, plus full Google & Meta Ads management with custom video/image creatives.

Visit live site → New site preview →New
01Custom HTML Form — Built from scratch with validation, targeting high-intent roofing leads.
02Inbound Webhook — GHL automation receives form data via webhook trigger.
03Custom Value Mapping — Workflow fetches and populates custom field values to contacts.
04Opportunity Creation — Contacts auto-created as opportunities with enriched data.
05Pipeline Strategy — Client Called → Booked → Quotes Sent → Inspection → Job Completed.
06Paid Ads & Creatives — Google & Meta Ads with AI-generated video/image creatives driving traffic into the funnel.
North City Roofing websitenorthc.png — Website homepage
Booking formform-nc.png — Multi-step booking form
GHL pipelinepipeline-nc.png — GHL pipeline stages
Webhook automationwebhook-nc.png — Webhook automation flow
Google AdsMeta AdsVideo AdsImage CreativesAI Creative API
Behind The Funnel

The Internal Ops Dashboard

Once a lead becomes a job, the team needs somewhere to run it from. I built a password-protected internal tool — Supabase auth, role-based access — with a completely different view for owners versus inspectors.

North City Roofing internal tool sign-in screen

Sign-in

Company-domain email + password gate in front of every dashboard. Nothing is reachable without an account.

Supabase Auth
North City Roofing owner dashboard

Owner Dashboard

Real-time inspection volume, an activity trend chart, and a top-performers ranking — the numbers an owner checks every morning.

Analytics
North City Roofing inspector dashboard

Inspector Dashboard

Field reps see only their own active and completed assignments, with a one-tap path into the inspection form.

Role-Based Access
7 production automations run behind the dashboard — form intake, visit-inspection completion, calendar webhook, call-to-Supabase sync, and rep assignment — connecting GHL, Supabase, and the Jobnimbus API.
SupabaseRow-Level SecurityJobnimbus APIWebhooks
See these workflows on the Automations page →
North City Roofing

The Ops Dashboard, In Your Pocket

The same internal tool from the case study above, built mobile-first for the field team. Drag or use the arrows to spin through it — tap the front phone to see more.

North City Roofing dashboard — welcome home screen

Welcome Home

North City Roofing internal tool sign-in

Secure Sign-In

Team performance overview

Team Performance

Analytics overview with top performers

Analytics & Rankings

Dashboard menu with quick links

Quick-Access Menu

Active assignments list

Active Assignments

Customer database contact detail

Customer Database

1st visit inspection form

Inspection Sales Form

My assignments detail

My Assignments

Crop profile photo screen

Profile Photo Editor

North City Roofing dashboard — welcome home screen

Welcome Home

North City Roofing internal tool sign-in

Secure Sign-In

Team performance overview

Team Performance

Analytics overview with top performers

Analytics & Rankings

Dashboard menu with quick links

Quick-Access Menu

Active assignments list

Active Assignments

Customer database contact detail

Customer Database

1st visit inspection form

Inspection Sales Form

My assignments detail

My Assignments

Crop profile photo screen

Profile Photo Editor

1 / 10
Visit the live dashboard →
Meridian Plumbing homepage with AI voice widget meridian-hero.jpg
Flagship Case Study

Meridian Plumbing Co. — AI Voice Agent Website

A demo site for a plumbing company with an AI front desk built directly into the page. A visitor can start a live call with the agent from the homepage — no phone number to dial — or switch to chat if they'd rather type.

Visit live demo — call the AI agent yourself →
AI Voice AgentAI Chat WidgetBookingReview Funnel
Answers the call — the agent picks up live from the site, no waiting on hold.
Books the job — checks availability and confirms a service appointment on the call.
Flags emergencies — burst pipes, no heat, active leaks are recognized and prioritized automatically.
Captures reviews — a one-tap feedback page routes happy customers to Google and flags anything less than great back to the owner.
AI voice widget open on the Meridian Plumbing homepage

Voice Agent, On The Page

"AI Agent Nab" answers as a live web call, styled to match the site's brand.

Web Call
AI chat widget on Meridian Plumbing

Chat, When They'd Rather Type

Same agent logic, text form — questions get routed and answered without a human watching the inbox.

AI Chat
Meridian Plumbing review capture page

Review Capture

One-tap feedback page — happy customers get sent to Google, quieter ratings get routed back privately.

Google Reviews

Try it yourself on the live demo → — you can pick the agent's voice and call it directly from the site.

AI Voice Agent

Your phone rings.
Something always answers.

An AI agent that picks up every call — day or night, weekends, holidays, mid-job — and actually gets things done instead of taking a message. It's live right now on the Meridian Plumbing demo, answering calls in real time.

Answers every call

Picks up in seconds, 24/7 — no hold music, no voicemail.

Books the appointment

Finds an open slot and puts it straight on the calendar.

Qualifies the lead

Asks the right questions and flags who's ready to buy.

Reschedules on request

Moves a booking the moment a customer needs to shift it.

Cancels cleanly

Handles cancellations and clears the slot for someone else.

Follows up on missed calls

A missed call still gets a callback or text within minutes.

agent live · answering calls 24/7
🕑 24/7 coverage
answering now
Client Work

Client Websites

Bridenti Dental Clinic website

Bridenti Dental Clinic

Full GHL AI Studio build with treatment gallery, bilingual booking automation, and calendar integration.

GHL AI StudioBilingual
NewSmile website

NewSmile

Dental clinic website build — swap in the live URL and description here.

GHL
Macdental PV website

Macdental PV

5-page bilingual site with a custom AI chatbot ("Macdental PV Assistant") and in-chat appointment booking.

GHL AI StudioAI Chatbot
Pragnya Cultural Society website

Pragnya Cultural Society

School/academy website with Firebase-backed student registration, login, and dashboards.

FirebaseVS Code
Thumber Academy website

Thumber Academy

Student coaching site — lead capture, workflow automation, inquiry management. "Real Students. Real Wins."

GHLCSSTypeFormZapier
Diesel Tech website

Diesel Tech

24/7 emergency diesel breakdown service, Northern Alberta. Mobile repair for highway trucks & oilfield equipment.

GHLCSSFrom Scratch
MEGA Water Seal website

MEGA Water Seal

Waterproofing services — professional + DIY. No tile removal, no demolition.

GHLCSS
eDigiShark website

eDigiShark

Digital marketing agency — AI automation, lead gen systems, Meta Ads, sales funnels.

GHLCSSAI Automation
Peak Flow Air website

Peak Flow Air

Business coaching site w/ ad campaigns, AI creatives, automation, lead gen funnels.

GHLMeta AdsGoogle AdsFunnels
San Jose ADU website

San Jose ADU

ADU / remodeling company — custom HTML, local SEO, webhook lead routing.

GHLLocal SEOHTMLWebhook
MEGA Water Seal Sales website

MEGA Water Seal Sales

Revenue-focused sales funnel, AI visuals via Gemini/PicsArt.

GHLCanvaPicsArtGemini
NexSale portfolio site

NexSale — Josh Portfolio

Custom-coded portfolio, EmailJS lead capture, GitHub deployment. (This site.)

VS CodeGitHubHTMLEmailJS
Conversion Focused

Sales Funnels

Trusted Home Service Pros website

Trusted Home Service Pros

Nationwide, Angi-compliant lead-matching platform — 15 core pages plus 7,800+ programmatic SEO landing pages across 710+ cities and 10 service categories.

SEOLeadConnectorAngi Compliance
Trusted Roofing Pros website

Trusted Roofing Pros

Roofing-focused lead-matching funnel — swap in the live URL and description here.

SEOLead Gen
MEGA Water Seal service funnel

MEGA Water Seal — Service Funnel

"Stop Leaks, Mould, and Water Damage Without Removing Tiles." Perth regrouting. Lead form + quote integration.

GHLCanvaAPI
MEGA Water Seal DIY funnel

MEGA Water Seal — DIY Product Funnel

Dual CTA funnel — professional services or DIY product.

GHLCSS
More Work

Personal & Agency Sites

WebHarvest new portfolio

WebHarvest — New Portfolio

"Build Systems That Generate Leads." Live metrics: 4,206+ leads, $8.32 CPL, 26.1% conversion.

GHLVS CodeGitHub
WebHarvest old portfolio

WebHarvest — Old

"Customizable Websites & Funnels That Convert." Earlier minimal version.

GHLVS CodeGitHub
Amazon VA Specialist portfolio

Amazon VA Specialist

Portfolio for Jonathan Mendoza — Amazon VA expertise, built in Framer.

FramerCanvaFigma
Aira Denisse portfolio

Aira Denisse — Graphic Designer

"Design That Makes Your Brand Unforgettable." Typography-led layout.

GHLVS CodeGitHub
Front-end developer portfolio

Front-end Developer | UI/UX

First personal portfolio version — dark aesthetic, dramatic typography.

FramerCSSClaude
Very first portfolio site

Very First Portfolio Site

Redesigned dark theme, cleaner layout, AI-assisted build with Claude.

FramerCSSClaude
New portfolio site

NexSale - Portfolio Site

My portfolio site for NexSale.

TBD
New portfolio site

New Brand & Portfolio - NEX

Premium website with modern aesthetics and seamless user experience.

TBD
Current Role · 2026–Present

Regas Media

01

Client Onboarding

Creating and configuring GHL sub-accounts, users, permissions, and initial settings.

02

Load Snapshots

Deploying GHL snapshots into sub-accounts — funnels, workflows, pipelines, templates.

03

AI Chatbot via Appointwise

Automated lead qualification, appointment booking, and client communication.

04

Zapier Integration

Connecting GHL with third-party tools — syncing data, triggering actions.

05

Slack Call Center Alerts

Real-time Slack notifications for new leads, new messages, and follow-ups via GHL API/webhook integration.

Want a system like these?

Every project starts with a conversation about what's actually broken in your funnel.

Start a project