Minds-On — Data Platform & Digital Growth Engine

Aug 2025 – Present Whitby, ON youth organization

One source of truth, and a growth engine on top of it.

I lead the data and growth infrastructure for a Whitby-based youth organization serving 1,000+ students across 20+ programs. The work spans two halves that feed each other: a relational data platform that replaced disconnected spreadsheets with validated, connected data unified in BigQuery, and a digital growth engine — GA4/GTM tracking, offline conversion feedback, SEO, paid media, and live dashboards — that turns that clean data into enrollments. I act as the point of contact for leadership across the whole program.

1,000+
students across 20+ programs
100+
weekly registrations synced
70%
less manual data processing
30%
fewer data errors

The engagement

I started by running requirements gathering with 10+ staff — stakeholder interviews and process mapping — to map how data, enrollment, and marketing actually flowed through the organization, and where it broke. That surfaced two connected problems: operational data was scattered across disconnected spreadsheets, and marketing had no reliable line of sight into what was actually driving enrollment. The build addresses both as one system.

🗄️

The data platform

A relational Airtable architecture with automated intake, validation, and Python ETL — migrated into BigQuery as a central warehouse and modeled into clean layers.

📈

The growth engine

GA4/GTM tracking, offline conversion feedback, SEO, and paid media across Google, Meta, and LinkedIn — all reporting back through the same warehouse.

How it fits together

Operational, marketing, and CRM data land in BigQuery as a single source of truth. Validated enrollments don't just sit there — they flow back out to the ad platforms as offline conversions, so acquisition spend is optimized against real enrollments, not just form fills.

Sources
📝Intake forms
Registrations & landing-page leads
📣Marketing
GA4, Google/Meta/LinkedIn Ads, Search Console
🗂️Airtable + CRM
Operational system of record
↓
⚙️
Automation layer (JavaScript + Python ETL)
Sync, validate & deduplicate on the way in; aggregate across bases
↓
🏛️
BigQuery warehouse
Staging → reporting layers, joining operational + marketing + CRM into one source of truth
↓
📊Looker Studio
Live dashboards + automated weekly leadership summaries
↑
🔁Offline conversions
Validated enrollments feed back to Google Ads & Meta for smarter bidding

Relational data architecture

The operational core is a 5-base relational architecture in Airtable, with ERD documentation, metadata definitions, and validation rules that keep data clean at the source. Attendance is the junction table, linking students to both programs and events.

  • Students — core records: personal info, school details, medical/dietary notes, guardian contacts
  • Attendance — junction table linking students to programs and events with check-in/out times
  • Programs — recurring activities with capacity, scheduling, and resource tracking
  • Staff — full-time, volunteers, and student leaders with certifications, availability, and assignments
  • Events — community events with budget, vendor, sponsor, and marketing sub-tables
Minds-On Entity Relationship Diagram showing Students, Attendance, Programs, Staff, and Events bases with their relationships
The 5-base relational model. Attendance links students to both programs and events; staff assignments span both.

Automation & ETL

🔄

Registration sync (JavaScript)

JavaScript automations sync 100+ weekly registrations from intake forms straight into the database, with validation and deduplication so bad or duplicate records never land.

🐍

Cross-base aggregation (Python)

Python ETL scripts aggregate attendance and enrollment data across bases, producing the joined tables that feed the warehouse and reporting layers.

Measurement & conversion tracking

I rebuilt tracking on GA4 and Google Tag Manager with a clean event and conversion taxonomy, then closed the loop with offline conversion tracking so ad platforms optimize against outcomes that are actually real.

Conversion taxonomy

Enrollment Event RSVP Sponsor inquiry Donation

Offline conversion feedback

Validated enrollments feed back into Google Ads and Meta, so bidding is driven by confirmed enrollments — not raw form fills that may never convert.

Acquisition: SEO, paid media & landing pages

🔍

Technical & local SEO

Site speed, structured data for programs and events, schema, Google Business Profile, and keyword mapping for Durham Region intent — improving organic visibility for the searches that drive enrollment.

🎯

Paid media

Google Ads (search + Performance Max), Meta, and LinkedIn, segmented by program, enrollment season, and sponsor outreach. On-brand creative built with a designer and tested at the ad level.

🧪

Landing pages

Per-program and per-event landing pages, A/B tested, with form submissions wired into the existing validation layer — so marketing leads stay clean end to end.

Reporting, leadership & delivery

Live dashboards on BigQuery

Looker Studio dashboards read directly from the warehouse, with automated weekly summaries emailed to leadership.

Enrollment funnel Channel efficiency SEO Event performance Sponsor pipeline
🤝

Point of contact for leadership

Performance reviews, next-step recommendations, and proactive flags on under-enrolling programs.

🗂️

Program management in Asana

A Gantt view across seasons, campaigns, content, and events — plus staff training for long-term adoption.

Impact

70%

Less manual processing

Automated sync and ETL replaced hours of weekly copy-paste between systems.

30%

Fewer data errors

Validation and deduplication at intake eliminated the duplicates and inconsistencies of the old system.

1

Unified warehouse

Operational and marketing reporting merged into a single source of truth in BigQuery.

The stack

Data & warehouse

Airtable BigQuery Python JavaScript Zapier

Analytics & tracking

GA4 Google Tag Manager Search Console Looker Studio

Paid & growth

Google Ads Meta Ads LinkedIn Ads SEO

Ops & PM

Asana Glide