AI Marketing Team — Workflow Reference · Afroz Shaik Real Estate
CLAUDE.md v1.1 · Afroz Shaik Real Estate · Built March 2026

AI Marketing Team
Workflow Reference

The autonomous content and campaign system — how five agents collaborate through Notion to produce, verify, and publish every piece of marketing content.

5 Agents 7 Skills 6 Tools Notion Task Board Canva + Buffer + Google Drive
Two North Stars — every action serves at least one
1

Make Afroz Shaik the go-to realtor for South Asian families in Calgary

2

Generate more closings — target 4 per month, growing consistently

Core Execution Loop
How Every Task Gets Done
Claude scans the Notion board autonomously at 7 AM daily. No confirmation needed — it executes, flags, and reports.
01
Scan the Task Board
Connect to Notion DB 5ca89c5d-.... Query all “To Do” tasks. Sort by priority: High → Medium → Low. Read Title, Priority, Agent, Details, Notes.
Notion API Auto-daily 7 AM Manual: –status flag
02
Assess for Blockers
A task is blocked if required external data is missing — no CREB data, no property sheet, no property photos. If blocked → Status = “In Progress” + write BLOCKED note → move on. Never skip silently.
BLOCKED — reason + what’s needed Examples: missing CREB PDF, no property sheet
03
Execute the Task
Set Status → “In Progress”. Run the correct script: generate-content.js for copy tasks, generate-graphic.js for visuals, schedule-post.js for publishing, or orchestrator.js for full pipeline. Outputs saved to /outputs/ folder.
Content → generate-content.js Graphic → generate-graphic.js Full run → orchestrator.js
04
Quality Check — 4 Questions
Every output must pass all four before marking complete. If any fail → rewrite. Listing content has an additional 5-point checklist (location leads, floor-by-floor headings, buyer fit line, exit strategy line, NE Calgary insurance note).
Sounds like Afroz to one real person? Zero urgency / banned phrases? Exactly one CTA? Afroz would say every word out loud?
05
Update Notion
Status → “Complete”. Fill Output File Path. Add human-attention flags to Notes. Run update_properties and replace_content as separate sequential calls — never combined.
Status: Complete Output File Path filled Flags added if needed
06
Handle Errors
If a task fails → reset Status to “To Do” + write ERROR note → move to next task. Never stop a full run because one task failed. Log the error, continue.
Reset to “To Do” ERROR — what failed — what’s needed to retry
07
Final Report
After all tasks: output summary table — tasks processed, complete, blocked, errors. Includes flags requiring Afroz or VA action.
Summary table output Human action flags listed
The AI Team
Five Agents, One Mission
Each agent has a defined lane. They don’t overlap. Research before content. Content before design. Design before publishing.
AGENT 01
📊
Market Researcher
Data engine. Pulls CREB numbers, CMA comps, area research. Every figure has a named source. Never estimates.
→ Content Creator
→ Campaign Strategist
→ Data Analyst
AGENT 02
✍️
Content Creator
Writing engine. Listing descriptions, captions, emails, guides — all in Afroz’s voice. Reads brand voice guide before every task.
→ Creative Designer
→ VA for scheduling
→ Afroz for approval
AGENT 03
🎨
Creative Designer
Visual production. Receives copy from Content Creator, produces Canva designs. Warm, people-first, community-feel aesthetic.
→ VA for publishing
→ Afroz for visual approval
AGENT 04
📈
Data Analyst
Performance tracking. Weekly reports, campaign mid-points, post-mortems within 48 hrs of campaign close.
→ Campaign Strategist
→ Content Creator
AGENT 05
🎯
Campaign Strategist
Coordinates all four agents. Plans campaigns 4–6 weeks ahead. Issues specific Notion task cards. Max 3 active campaigns simultaneously.
→ All four agents
→ Afroz for brief approval
Sequencing Rule
Dependency Chain — Always This Order
Never start a later step without the earlier step complete. If a dependency is missing, block and flag clearly in Notion.
① Market Researcher
② Content Creator
③ Creative Designer
④ Buffer Scheduler
⑤ Data Analyst (post-campaign)
Tool Integration Status — April 2026
Connected Tools & Limitations
Tool Status What It Can Do Known Limitation
Notion Connected Read/write tasks, search, update properties, replace content Run update_properties + replace_content as separate calls, never combined
Canva Connected Generate designs, open editing transactions, verify text, export PNG AI frequently garbles text — mandatory verify-and-fix workflow after every generate
Buffer via Zapier Connected Schedule Instagram & Facebook posts, send now Defaults to Carousel for single images — must explicitly set “Post” type
Google Drive via Zapier Limited Search files by name, search folders by name Read-only — cannot create, upload, or move files. Use Chrome automation or manual upload instead
Claude in Chrome Available Browser automation, create Google Docs by typing content directly Cannot upload local container files to Drive — content must be typed, not uploaded
Gmail / Google Calendar Connected – Unused Email access, calendar access Not yet integrated into active workflow
Quality Standards
Before Any Task Is Marked Complete
✅ Standard 4-Question Check — All Content
Sounds like Afroz speaking to one real person — not a brand talking to a demographic?
Contains zero urgency language and zero banned phrases?
Ends with exactly one CTA appropriate to the content type?
Afroz would be comfortable saying every word out loud to a client sitting across from him?
🏠 Additional Check — Listing Content Only
Location leads the opening sentence
Floor-by-floor sub-headings present (LOCATION / MAIN FLOOR / SECOND FLOOR / BASEMENT / BACKYARD / PARKING / RENOVATIONS / NEIGHBOURHOOD)
Buyer fit line included
Exit strategy line included
NE Calgary insurance note present if property is in NE Calgary
Escalation Flags
When to Flag for Human Attention
These are written into the Notion Notes field. Claude does not stop execution — it logs the flag and continues.
EMAIL
Afroz personal opening line requiredEmail is ready but the personal first line must be written by Afroz before sending.
WHATSAPP
Afroz personal send requiredMessage is drafted. Afroz must send it personally — never automated.
VA ACTION
VA needs to fill in the bracketsContent contains [placeholders] that require the VA to supply specific information before publishing.
GRAPHIC
Property photos not specifiedVA must supply property photos before Canva design can be exported and published.
AFROZ REVIEW
Area or community requires approvalContent involves a neighbourhood or topic that requires Afroz’s explicit sign-off.
DATA MISSING
Task requires external data sourceDescribe exactly what data is needed and from which source to unblock this task.
Design → Publish Pipeline
Canva to Instagram — Correct Sequence
Never skip step 4. Text verification is mandatory — Canva AI cannot be trusted with text accuracy.
1
Generate Design in Canva
Call generate-design. Use short, simple text labels — under 20 characters, no special characters, no $ ranges.
generate-design
2
Afroz Picks a Design
Present design candidates. Wait for Afroz to select preferred option before proceeding.
Afroz approval required
3
Save to Canva Account
Call create-design-from-candidate with job_id and candidate_id of selected design.
create-design-from-candidate
4
⚠️ Verify & Fix ALL Text
Open editing transaction. Inspect every text element. Compare against original spec. Fix garbled text with replace_text. Common failures: dollar amounts, brand names, location names, parenthetical content, labels.
MANDATORY — never skipstart-editing-transactionreplace_text
5
Export as PNG
export-design at 1080×1080px for Instagram. Only after text verification passes.
export-design · 1080×1080
6
Save to Google Drive
Save to weekly folder inside OUTPUT FILES. Naming: month-wk#-2026 (e.g. 05-wk3-2026). Use Chrome automation or manual VA upload — Zapier Drive is read-only.
Chrome automation or manualZapier cannot upload
7
Schedule via Buffer
Instagram: next day 9:00 AM MT. Facebook: next day 10:00 AM MT. Caption + image URL.
buffer_add_to_queue
8
⚠️ Verify Post Format
After publishing, check that single-image posts appear as “Post” not “Carousel.” Buffer defaults to Carousel — must be explicitly set to Post type.
Single image → Post type (not Carousel)
Lessons Learned
Operational Notes from Live Execution
🖼️
Canva AI Text Is Unreliable
Dollar amounts, brand names, locations, and numbers are all vulnerable to garbling. "Calgary" became "Cal". "$1,200-$2,400" became "$1,200-$34,0000". "Afroz Shaik" became "CALGROV|WITHPRABHATK". Always verify every text element after generation. When severely garbled, fix manually in the Canva web editor.
📱
Buffer Carousel Default
Buffer defaults to Carousel format even for single-image Instagram posts. Must explicitly set post type to "Post". Verify format is correct after publishing. If Buffer forces Carousel on single images, flag to Afroz and recommend manual posting.
📁
Google Drive via Zapier Is Read-Only
Zapier supports only google_drive_find_a_file and google_drive_find_a_folder. No creating, uploading, or moving files. Workarounds in order of preference: (1) Chrome automation to create Google Docs directly, (2) downloadable files for manual VA upload, (3) Notion as content repo.
🔄
Notion Update Pattern
Run update_properties and replace_content as separate sequential calls. Never combine them into one operation — combining causes incomplete updates and data loss.
Autonomous Execution Standard
Claude does not ask for confirmation. Does not ask for clarification before attempting. Makes the best judgement call, executes, and flags anything requiring human attention in the Notion Notes field. Partial outputs are not acceptable — every deliverable in a task is completed before the task is marked done. A session that produces incomplete deliverables requiring manual follow-up fails the standard.