Senior Data Engineer for BigQuery Marketing Spine + Cloudflare Worker Integration

Posted 2 days ago

Worldwide

Summary

I am seeking a senior data engineer to complete a unified marketing + intake data platform for my law firm. The system is already partially built: a Cloudflare Worker (JavaScript/ESM) acts as an API gateway to Google Ads, GA4, BigQuery, Gmail, Drive, Calendar, and Clio. BigQuery is the canonical analytics store.

Your job is to:

Harden and complete the data spine (Ads → GA4 → Contacts → Outcomes → Call logs).

Build clean, reliable daily fact tables in BigQuery.

Set up BigQuery ML models for lead-retention prediction.

Add simple API endpoints (or BigQuery queries) that my existing Cloudflare Worker can call.

Ensure everything is idempotent, tested, and production-ready.

EXISTING INFRASTRUCTURE YOU WILL BUILD ON

Cloudflare Worker already set up with working routes for:

/bigquery/query, /bigquery/tables

/ads/* including /ads/backfill

/ga4/*

/nl (natural-language analytics)

BigQuery dataset: friscia_law_live_data

contacts_clean_v1 (validated)

case_outcomes_v1 (retained vs not-retained)

GA4 export dataset

Ads data is partially implemented

A ChatGPT-based internal assistant consumes the Worker API. No changes needed here — just maintain endpoint compatibility.

SCOPE OF WORK

1. Vonage Call Logs → BigQuery

Create call_logs_raw_vonage and call_logs_enriched.

Normalize phone numbers and join to contacts.

Idempotent ingestion (daily + historical backfill).

2. Ads + GA4 Daily Fact Tables

Confirm or correct Ads history ingestion via /ads/backfill.

Build ads_daily_v1 (date, campaign, cost, clicks, impressions, conversions).

Build ga4_daily_v1 from GA4 export (sessions, conversions).

Build ads_ga4_daily_v1 joined on date/campaign.

3. Contacts + Outcomes Aggregates

Build contacts_daily_v1 keyed by date + source bucket (ads / gmb / referral / other).

Join against case_outcomes_v1.

4. Marketing Daily Spine

Build marketing_daily_spine_v1 with:

Ads metrics

GA4 metrics

Contacts + retained counts

This is the primary analytics table.

5. BigQuery ML Model (Lead Propensity)

Label: outcome_type = retained / not_retained.

Features from contacts, enriched call logs, GA4 channels, etc.

Deliver:

CREATE MODEL SQL

ML.EVALUATE results

A view such as lead_retention_scores_v1 using ML.PREDICT.

6. Cloudflare Worker Compatibility

Add minimal endpoints so the Worker can fetch daily metrics and ML predictions.

No redesign of the Worker is needed.

REQUIREMENTS

Must have:

Strong Google BigQuery + SQL experience

Proven ETL/data-pipeline experience

Experience with Google Ads API + GAQL

Experience with GA4 BigQuery export

Experience with Cloudflare Workers or serverless APIs

Experience with ML in BigQuery (LOGISTIC_REG or BOOSTED_TREE preferred)

Ability to produce production-quality schemas, views, and code

Ability to document assumptions & data logic clearly

Nice to have:

Experience with law firm CRM/intake systems

Experience with marketing attribution modeling

Experience with data-quality monitoring

Prior experience with Cloudflare Workers

DELIVERABLES

Working BigQuery tables/views:

call_logs_raw_vonage, call_logs_enriched

ads_daily_v1, ga4_daily_v1, ads_ga4_daily_v1

contacts_daily_v1

marketing_daily_spine_v1

BigQuery ML model + evaluation + prediction views

Ingestion jobs + backfill scripts

Minimal API endpoints or scripts compatible with my Worker

Documentation (README + schema notes)

WORK STYLE

Independent contributor comfortable working with an existing codebase.

Must communicate clearly and document details.

Must understand how to test ETL and confirm counts vs GA4/Ads UI.

SCREENING QUESTIONS

Please answer these with your application:

Describe a recent project where you built a data spine combining Ads + GA4 + CRM + call logs.

Do you have hands-on experience with BigQuery ML? Please provide examples.

Describe how you would design an idempotent ingestion job for daily call logs.

Do you have experience with Cloudflare Workers or similar serverless gateways?

What is your experience with GA4 export and matching campaigns across Ads and GA4?

  • Less than 30 hrs/week
    Hourly
  • 1-3 months
    Duration
  • Expert
    Experience Level
  • $40.00

    -

    $80.00

    Hourly
  • Remote Job
  • Complex project
    Project Type
Skills and Expertise
Mandatory skills
BigQuery
ETL Pipeline
Cloudflare Workers
Activity on this job
  • Proposals:15 to 20
  • Last viewed by client:yesterday
  • Interviewing:
    3
  • Invites sent:
    0
  • Unanswered invites:
    0
About the client
Member since May 2, 2019
  • United States
    Newark1:50 PM
  • $35 total spent
    1 hire, 1 active
  • Mid-sized company (10-99 people)

Explore similar jobs on Upwork

Database University AssignmentsHourly‐ Posted 1 month ago
SQL
Database
Microsoft Excel
Database Design
Database Management
SQL Server Integration Services
Excel Macros
Excel Formula
Microsoft Power BI
Microsoft Excel PowerPivot
Power Query
Data Entry
Data Cleaning
Data Analytics
Data Extraction
Snowflake
Database Design
Data Integration
Data Preprocessing
Data Transformation
Data Migration
Data Engineering
ETL Pipeline
SQL
Looker
Data Visualization
Scripting Language

How it works

  • Post a job icon
    Create your free profile
    Highlight your skills and experience, show your portfolio, and set your ideal pay rate.
  • Talent comes to you icon
    Work the way you want
    Apply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
  • Payment simplified icon
    Get paid securely
    From contract to payment, we help you work safely and get paid securely.
Want to get started? Create a profile

About Upwork

  • Rating is 4.9 out of 5.
    4.9/5
    (Average rating of clients by professionals)
  • G2 2021
    #1 freelance platform
  • 49,000+
    Signed contract every week
  • $2.3B
    Freelancers earned on Upwork in 2020

Find the best freelance jobs

Growing your career is as easy as creating a free profile and finding work like this that fits your skills.

Trusted by

  • Microsoft Logo
  • Airbnb Logo
  • Bissell Logo
  • GoDaddy Logo