Amir Omidvar
← All work

Marketing Systems · Automation · 2026

Demand-generation engine for a home-services contractor

An end-to-end acquisition system: landing pages, paid search, and an automated CRM funnel with closed-loop tracking.

CampaignsLast 14 days
CTR
6.2%
▲ vs 2.6% ind.
CPA
$38
▼ 12%
Booked
214
▲ 28
Conversion funnel
Impressions
48,200
Clicks
2,990
Leads
410
Booked
214

Representative UI, abstract, with no client data.

45+
programmatic SEO/conversion landing pages (service × city)
Closed-loop
Google Ads + GA4 + Meta Pixel with offline-conversion sync back into bidding
~2.4×
industry click-through rate, cost-per-acquisition below average

How it works

1Landing pages

45+ programmatic service × city pages, schema + message match

↓
2Google Ads CLI

plans, creates & optimizes campaigns from verified keyword data

↓
3Conversion tracking

client-side tag + hourly offline-conversion backfill from the CRM

↓
4CRM funnel

speed-to-lead SMS/email, pipeline stages, nurture

↓
55-layer diagnostics

targeting, arrival, engagement, form and pipeline, graded

Architecture

Frontend
45+ landing pages (Next.js)
↓
Backend
Google Ads CLI
Conversion sync
5-layer diagnostics
↓
Data
PostgreSQL
GoHighLevel CRM
↓
External
Google Ads
GA4
Meta Pixel
Clarity

By the numbers

Live campaign performance vs. industry

Click-through rate, this system~2.4×
Click-through rate, industry average1×
Conversions recovered by offline syncmeasured per account

Context

A residential contractor needed a repeatable way to generate and convert leads across multiple services and cities, without leads falling through the cracks between ads, the website, and follow-up.

What I did

  • Built a programmatic set of 45+ SEO/conversion landing pages across services and locations, each with schema markup and message-matched hero copy.
  • Wrote a Python Google Ads CLI that plans, creates, monitors and optimizes campaigns from data, verifying every keyword's volume and bid via the Keyword Planner API.
  • Wired closed-loop tracking (Google Ads, GA4, Meta Pixel) plus an offline-conversion backfill so real CRM outcomes feed bidding, not just form fills.
  • Built a five-layer diagnostic engine covering targeting, arrival, engagement, form and pipeline, fusing Ads, Clarity, GA4 and the CRM into graded reports.

Outcome

  • A single system takes a click to a tracked, followed-up lead, with no manual handoffs.
  • Offline conversions recover conversions that client-side tags miss, so Smart Bidding optimizes on complete signals.
  • The diagnostic engine caught a consent banner intercepting ~40% of mobile form taps before it burned budget.

Under the hood

Programmatic landing pages

  • 45+ live SEO pages generated across service × city, each with schema markup, message-matched hero copy, and multi-step lead forms.
  • New service/city pages and campaigns clone from a template instead of being rebuilt.

Closed-loop conversion tracking

  • Dual Google Ads actions, a client-side tag plus an hourly CRM offline-conversion backfill, recover conversions that client-side tracking alone misses.
  • Full click-to-deal attribution via gclid and UTM capture means Smart Bidding optimizes on real revenue signals.

Diagnostics that catch regressions

  • A 5-layer audit engine fuses Google Ads, Microsoft Clarity, GA4 and the CRM into graded, prescriptive reports.
  • It caught and flagged a consent banner intercepting approximately 40% of mobile form taps, a silent conversion leak, before it wasted spend.

Stack

Next.jsGoogle Ads APIGA4Meta PixelGoHighLevel CRM