Kendi Ng Ka Wai

Marketing Analytics & Digital Strategist | Python & AI Integration | China Media | Hong Kong

I build data systems that turn raw marketing signals into business decisions — and I have spent 15 years understanding the platforms those signals come from. My background spans China media platforms (Baidu, Tencent, Douyin, RED) and international channels (Google, Meta, LinkedIn), and I have built my own analytics stack on top: Python ETL pipelines, PostgreSQL, self-built Streamlit dashboards, and production Claude AI API integration. I am looking for in-house roles in Hong Kong where data, marketing, and technology intersect.

Skills & Technologies

Data Engineering

  • Python
  • ETL Pipelines
  • PostgreSQL
  • SQL
  • Pandas
  • NumPy
  • VBA Excel
  • GitHub

Analytics & Visualisation

  • Streamlit
  • Tableau
  • Power BI
  • Looker Studio
  • matplotlib
  • seaborn
  • GA4
  • Google Search Console

Marketing Technology

  • Google Ads
  • LinkedIn Ads
  • LinkedIn Marketing API
  • GA4
  • GTM
  • Claude AI API
  • Azure Graph API
  • Google Apps Script

China & APAC Platforms

  • Baidu Search & Display
  • WeChat Moments Ads
  • Tencent Video
  • Douyin
  • RED / Xiaohongshu

CRM & Business Analysis

  • Odoo CRM
  • Zoho CRM
  • Jira
  • UAT
  • Requirements Gathering
  • Data Mapping

Web Frameworks

  • Streamlit
  • FastAPI
  • HTML / CSS
  • JavaScript

Automation & DevOps

  • Docker
  • AWS EC2
  • APScheduler
  • Windows Task Scheduler
  • Microsoft Graph API
  • Outlook 365 Automation
  • BeautifulSoup

Featured Projects

All projects below are part of one integrated analytics platform I built from scratch. Each card links to the relevant code within the main repository.

Digital Marketing Analytics Platform

Problem: Marketing data was scattered across SEO, LinkedIn Ads, LinkedIn Lead Forms, and GA4 with no unified analytics view or AI-powered insights.

Built a unified digital marketing analytics hub with 4 core modules: SEO keyword tracking (Brand vs. Paid segments with MoM/YoY comparisons), LinkedIn Lead Gen Form sync via API, LinkedIn Agency report ingestion from Excel uploads, and Digital Marketing campaign drill-down from Odoo CRM. Integrated Claude AI API for automated executive summary generation and insight buttons throughout.

  • Python
  • Streamlit
  • PostgreSQL
  • Search Console API
  • LinkedIn Marketing API
  • GA4 Data API
  • Claude AI API
  • Pandas

CRM Reporting & Analytics Dashboard

Problem: A financial services company had no internal BI tool — sales pipeline, pension AUM, and marketing data lived in disconnected CRM tables with no interactive reporting.

Built a multi-page Streamlit BI dashboard serving 8+ interactive pages: EBCAS sales pipeline analytics by product team with fiscal year filtering, PIES pension AUM analysis with multi-scheme classification and MPF provider breakdown, and marketing campaign performance reporting. Includes automated email report generation via Microsoft Graph API.

  • Python
  • Streamlit
  • PostgreSQL
  • Pandas
  • Docker
  • Microsoft Graph API

Data Warehouse & ETL Pipeline

Problem: Marketing and sales data from Google Search Console, GA4, and LinkedIn APIs had no centralised storage, making cross-source analysis impossible.

Designed and built a local PostgreSQL data warehouse with normalised tables for SEO reports, keyword data, LinkedIn leads, agency data, and GA4 leads. Created Tableau-ready SQL views (unified monthly summary, agency targeting breakdown, audience demographics). Built 4 automated ETL scripts pulling from Search Console API, GA4 Data API, LinkedIn Lead Gen API, and LinkedIn Ads Reporting API into PostgreSQL on a scheduled basis.

  • PostgreSQL
  • Python
  • Search Console API
  • GA4 API
  • LinkedIn Marketing API
  • Google Sheets API
  • Tableau
  • psycopg2

Automated Email Report System

Problem: 10+ recurring business reports (sales insights, pension reports, campaign summaries) were being compiled and sent manually, consuming hours of analyst time.

Built a comprehensive automated email reporting engine with HTML-formatted reports, styled data tables with conditional formatting, and Excel attachments — all sent via Microsoft Graph API. Powered by APScheduler with configurable cron schedules via JSON, replacing Windows Task Scheduler. Report types include Combined Sales Insight, Individual Sales, EBCAS, Pension, Marketing Campaign, and provider-specific reports.

  • Python
  • APScheduler
  • Microsoft Graph API
  • MSAL
  • Pandas
  • HTML/CSS Email

AI-Powered SEO Reporting Pipeline

Problem: Monthly SEO performance reporting required hours of manual analysis and formatting before it could be sent to senior management.

Built a Google Apps Script pipeline that connects to Search Console API, tracks 3 keyword segments (Brand, Paid Maintain, Paid New), generates MoM/YoY performance comparisons, and sends HTML email reports with monthly trend tables. Integrated Claude AI API for automated executive summary narratives. Reports distributed to 9 stakeholders via Microsoft Azure Graph API — zero manual intervention.

  • Google Apps Script
  • Claude AI API
  • Search Console API
  • Azure Graph API
  • HTML
  • JavaScript

More Projects

Lead Management & CRM Automation

Built lead assignment (10 preset workflows), lead release, and contact analysis tools that automate CRM operations and generate Odoo-importable files. Includes 7-stage filter pipeline for data quality monitoring.

  • Python
  • Streamlit
  • PostgreSQL
  • Pandas

Sales Data Processing & Reporting Engine

Comprehensive sales data pipeline processing CRM exports across 6 report modules: opportunity pipeline, activity tracking, customer lead conversion, target vs. actual performance, and executive Combined Sales Insight dashboard.

  • Python
  • Pandas
  • Odoo CRM
  • openpyxl

Data Comparison & Quality Tools

FastAPI web portal for internal data comparison tools. Lead vs. Sales Rep comparison engine with 4 exclusion rules, live schedule viewer for automated tasks, and card-based navigation. Dockerised deployment.

  • FastAPI
  • Python
  • Docker
  • Bootstrap 5

Company Name Matching Algorithm

Fuzzy company name matching tool using sequence matching and Unicode normalisation for CRM data deduplication. Handles bilingual names (English/Chinese) and cross-platform path handling.

  • Python
  • difflib
  • Pandas
  • Unicode

Odoo CRM Data Export Suite

6 automated data export scripts pulling from Odoo CRM's PostgreSQL database — activities (59 columns with auto header mapping), contacts, leads, opportunities, sales rep logs, and AUM detail.

  • Python
  • psycopg2
  • PostgreSQL
  • Odoo ERP

Monthly GUMbees TV & Won Case Reports

Automated monthly internal reports with data visualisation charts embedded directly in emails. Won Case quarterly report generates 3 heatmaps + 1 stacked bar chart as inline CID images in HTML emails.

  • Python
  • matplotlib
  • seaborn
  • Graph API

Weekly Data Quality Monitoring

Automated weekly monitoring that detects dissolved companies and parent-subsidiary mismatches in CRM data. Sends alert emails with 4 filter categories and automated correction of parent/subsidiary files.

  • Python
  • Pandas
  • Graph API
  • PostgreSQL

Docker Containerisation & Infrastructure

Containerised the entire reporting platform with Docker for AWS EC2 deployment. Multi-service Docker Compose with Streamlit + FastAPI, health checks, volume mounts, and environment-based configuration.

  • Docker
  • Docker Compose
  • AWS EC2
  • Linux

Automated Job Application Tracker

Python automation that reads Outlook 365 emails from JobsDB via Microsoft Graph API, parses application status updates, and updates an Excel tracking file on OneDrive automatically. Runs hourly.

  • Python
  • Graph API
  • Azure AD
  • BeautifulSoup

CRM Migration Planning (Freelance)

Led full Zoho CRM migration planning for a social enterprise as sole consultant — stakeholder interviews, module evaluation, and complete data mapping documentation.

  • Zoho CRM
  • Data Mapping
  • Requirements
  • Consulting

Career Journey

2007

AXA

Finance

2010

Publicitas

APAC Publications

2015

iClick

China Media — Senior Director

2024

Gain Miles

MPF/Insurance — CRM & Analytics