Open to senior marketing leadership opportunities across MENA and Europe

Aldar
Aldar Estates | 2025

Asteco Community Management

EDM Gate

A fact-checked pipeline that writes an Asteco resident notice in English and Arabic, checks every fact against the brief, and returns the email, the PDF, and the JPG ready to send.

Generative AIBilingual ContentFact-Checking PipelinePrompt EngineeringNext.js
EDM Gate
EDM Gate brief form showing message type, output language and the run panel

7

Pipeline Stages

English written and locked first, Arabic transcreated after

2

Languages

English and mirrored right-to-left Arabic

5

Assets Per Brief

EN copy, AR copy, PDF, JPG, and SFMC email

3

AI Models

Claude Sonnet and Opus write, GPT-4o audits

The Problem

The Problem

Asteco's community teams send resident notices constantly: maintenance windows, water and power shutdowns, events, and policy changes. Every one has to go out in English and Arabic, on brand, and in several formats at once.

Done by hand the work is slow and easy to get wrong. A mistyped date, a weekday that does not match the date, a loose translation, or an off-brand PDF each reach thousands of residents before anyone catches it.

The brief was a single form that produces send-ready comms in both languages and every format, with one hard rule: the system never states a fact that was not in the brief.

What I Built

What I Built

I designed and built the whole system with Claude Code: the brief schema, the multi-model pipeline, the bilingual templates, and the guardrails that keep the output accurate. Three areas carried most of the work.

Pipeline and Model Orchestration

Designed a seven-stage pipeline where Claude generates and refines the English, GPT-4o audits it as an independent second model, then Claude transcreates and parity-checks the Arabic

Split every stage into its own API call with a client-side runner, so a full bilingual run stays inside Vercel’s execution limit

Surfaced real per-stage token cost on every run, so each notice shows exactly what it cost to produce

Bilingual Accuracy

Built mirrored templates with English on the left and right-to-left Arabic on the right, stacking cleanly on mobile

Derived every weekday from its date in code, in both languages, so the model can never label the wrong day

Parsed dates day-first (dd/mm/yy) to match UAE convention, removing an entire class of month and day swaps

The Fact-Checking Gate

Traced every fact in the notice back to the brief; the auditor reads the assembled notice against the form and blocks anything it cannot support

Wrote a calendar checker that catches false date claims even when they hide inside a relative clause or a negation

Added a recovery loop: a blocked notice is rewritten once with the audit findings fed back in, then escalated to human review if it still fails

How the Pipeline Runs

Seven Stages, Two Passes

English is written and locked first so there is a single approved source of truth. Only then is the Arabic transcreated from it, which keeps both languages carrying identical facts.

English — written and locked first

1

Generate

Claude drafts the notice from the brief, and nothing else

2

Tone

Claude enforces the Asteco voice: formal MSA register, no exclamation marks, no banned phrases

3

Lint

Code checks the assembled notice for the required contact line, footer, and exact strings

4

Audit

GPT-4o independently verifies every fact against the form and can block the run

Arabic — transcreated from the approved English

5

Transcreate

Claude rewrites the approved notice in natural Arabic, not a literal translation

6

Lint

Code checks Arabic formatting, Western digits, and the fixed contact phrases

7

Parity

A final pass confirms the Arabic and English carry exactly the same facts

What It Produces

What It Produces

Approved Bilingual Copy

English written and locked first, then transcreated into Arabic rather than translated word for word, so both read naturally to residents.

A4 PDF Notice

A branded, print-ready bilingual PDF rendered on the server with headless Chromium, matching the layout of Asteco's sent notices.

Broadcast JPG

A high-resolution image of the same notice for WhatsApp and social channels, generated from the identical source.

SFMC-Ready HTML Email

Salesforce Marketing Cloud email markup with merge fields in place, ready to drop into a send.

The Brief Form

A guided form with typed input masks, optional and independent schedule toggles, and known community names that prefill the contact details.

Per-Stage Cost Transparency

Live token cost for each model call, so the running cost of a notice is never a surprise.

Inside the Brief

One Form, One Source of Facts

The whole system hangs off one principle you can see right in the form: the “what is happening” field is the only place facts enter. Everything else — schedule, audience, hero image — is structure and styling.

Dates and times are optional and independent per notice type, so a policy update can carry no schedule while a maintenance window carries both a date and a time window. The hero image is labelled decoration only, never a source of facts.

EDM Gate
EDM Gate schedule, content and hero image fields, with the run panel on the right

Built With

Built With

Next.js 14TypeScriptClaude SonnetClaude OpusGPT-4oVercelpuppeteer-coreHeadless ChromiumSalesforce Marketing Cloud

One brief in. Two languages, five formats, and not a single fact the brief did not contain. EDM Gate takes a slow, error-prone bilingual comms process and turns it into one checked step.

Back to AI Systems