Table of Contents
- Overview: What This Package Is
- Team Roles & Responsibilities
- The Complete Weekly Timeline
- STEP 1: MLS Data Collection (Currently Manual)
- STEP 2: Writing the Featured Article
- STEP 3: Gathering Featured Listings (Currently Manual)
- STEP 4: Preparing the Hero Image
- STEP 5: Filling Out the Workflow Template
- STEP 6: Running the Agent Team Pipeline
- STEP 7: Reviewing Validation & Compliance Reports
- STEP 8: Deployment to GitHub & Constant Contact
- STEP 9: Post-Deployment Verification
- Where Everything Lives (File Locations)
- The 21 Communities Reference
- Troubleshooting & Common Issues
- Automation Roadmap
1. Overview: What This Package Is
Every week, The Edmund Bogen Team publishes a Market Intelligence Package — a suite of synchronized content that goes out to our clients, prospects, and the 14,000+ members of Edmund's Mastermind community.
What Gets Published Each Week
| Asset | What It Is | Where It Goes |
|---|---|---|
| Email HTML | The main weekly email with article preview, market stats, community data, featured listings, and CTAs | Uploaded to Constant Contact for email blast |
| Article Page | Full-length feature article on a market topic | Deployed to GitHub Pages at edmundbogen.github.io |
| Market Dashboard | Interactive dashboard with charts, all 21 community stats, and featured article | Deployed to GitHub Pages at edmundbogen.github.io/luxury-community-dashboard/ |
| Community Listings Pages | Individual pages showing all active listings for specific communities (always St. Andrews, plus others as needed) | Deployed to GitHub Pages |
Why Consistency Matters
All 4+ assets share the same data. The article title, date, hero image, market stats, and community numbers must be identical across every file. A mismatch (e.g., the email says "8 active listings" but the dashboard says "9") damages credibility with our luxury audience.
How Long It Takes
| Phase | Current Time (Manual) | Target Time (Automated) |
|---|---|---|
| MLS data collection | 30-45 minutes | 5 minutes (CSV export + script) |
| Article writing | 30-60 minutes | 30-60 minutes (stays manual — this is the creative work) |
| Featured listings gathering | 15-20 minutes | 5 minutes (with automation) |
| Hero image preparation | 5-10 minutes | 5-10 minutes (stays manual) |
| Template fill-out | 10-15 minutes | 5 minutes (with pre-populated data) |
| Running the AI pipeline | 5-10 minutes | 5-10 minutes |
| Review & deployment | 10-15 minutes | 5-10 minutes (agent handles deployment) |
| Total | ~2 hours | ~1 hour |
2. Team Roles & Responsibilities
Who Does What
| Team Member | Primary Responsibility | When |
|---|---|---|
| Nicole Hudson | Pulls all MLS data for 21 communities from FlexMLS. Compiles active listings, sold YTD, and absorption rates. Provides featured St. Andrews listing data. | Monday or Tuesday |
| Edmund Bogen | Writes the featured article (or assigns it). Selects/approves hero image. Final review of all output before deployment. Makes the "go/no-go" call. | Tuesday or Wednesday |
| Samantha Gornstein | May write featured articles focused on Polo Club or her specialty communities. Provides her own listing data when her communities are featured. | As assigned |
| Dina Ulrich | May write featured articles focused on Seven Bridges or her specialty communities. Provides her own listing data when her communities are featured. | As assigned |
| Any Team Member | Can fill out the workflow template and run the Claude pipeline once all data is collected. | Wednesday (target send day) |
RACI for Each Step
| Step | Nicole | Edmund | Samantha/Dina | Any Team Member |
|---|---|---|---|---|
| MLS Data Collection | R (Responsible) | I | I | — |
| Article Writing | I | R or A (Approves) | R (if assigned) | — |
| Hero Image | I | R | — | — |
| Template Fill-Out | C (Consulted) | A (Approves) | C | R |
| Run AI Pipeline | — | A | — | R |
| Review Output | — | R (Final approval) | C | C |
| Deploy | — | A | — | R |
3. The Complete Weekly Timeline
Email sends Wednesday at 9:00 AM (per SOP)
| Day | Time | Task | Who |
|---|---|---|---|
| Monday | Morning | Nicole begins pulling MLS data from FlexMLS | Nicole |
| Monday | Afternoon | Nicole delivers community stats (21 communities) + St. Andrews featured listings | Nicole |
| Tuesday | Morning | Edmund writes or finalizes the featured article | Edmund (or assigned author) |
| Tuesday | Afternoon | Hero image selected/created and uploaded to GitHub | Edmund |
| Tuesday | End of Day | All data collected — template can be filled out | Team |
| Wednesday | 7:00 AM | Run Claude agent team pipeline | Any team member |
| Wednesday | 7:30 AM | Review validation report + compliance report | Edmund |
| Wednesday | 8:00 AM | Deploy to GitHub Pages + upload email to Constant Contact | Any team member |
| Wednesday | 8:30 AM | Send test email to team | Any team member |
| Wednesday | 9:00 AM | Email sends to full list | Constant Contact (scheduled) |
| Wednesday | 9:30 AM | Post-deployment verification (check live URLs) | Any team member |
STEP 1: MLS Data Collection (Currently Manual)
What Nicole Needs to Collect
Nicole must produce two deliverables:
Deliverable A: Community Stats Table
A table with all 21 communities showing Active listings, Sold YTD, and Absorption Rate.
Deliverable B: St. Andrews Featured Listings
The top 3 St. Andrews Country Club listings with full property details.
Deliverable A: Community Stats Table
What You're Looking For (Per Community)
| Data Point | Definition | Where to Find in FlexMLS |
|---|---|---|
| Active | Total number of currently active (for sale) listings in the community | Run a search filtered to the community name, Status = Active |
| Sold YTD | Number of properties sold (closed) since January 1 of the current year | Run a search filtered to the community name, Status = Closed, Close Date = Jan 1 [year] to today |
| Absorption Rate | How fast inventory is selling. Formula: (Sold in last 12 months / 12) / Active listings x 100 | Calculate manually or use FlexMLS market stats if available |
Step-by-Step: Pulling Community Stats from FlexMLS
For EACH of the 21 communities, do the following:
Getting Active Listings Count
- Log into FlexMLS at fl.flexmls.com
- Go to Search → Residential
- Set these filters:
- Status: Active
- City: Boca Raton (for most communities) or Delray Beach (for some)
- Subdivision/Community: [Enter the community name exactly]
- Property Type: Residential (include single family + condos/townhomes if the community has both)
- Run the search
- Note the total count shown at the top of results — this is the Active number
- Record it
FlexMLS may use different names than we do. Common variations:
- "St Andrews CC" or "St. Andrews Country Club"
- "Polo Club of Boca Raton" or "Polo Club"
- "Boca West CC" or "Boca West Country Club"
Getting Sold YTD Count
- In the same search, change the filters:
- Status: Closed
- Close Date: January 1, [current year] to [today's date]
- Keep the same Subdivision/Community filter
- Run the search
- Note the total count — this is the Sold YTD number
- Record it
Calculating Absorption Rate
Formula:
If the community has 0 active listings or 0 sold, enter N/A.
Shortcut: Saved Searches
Set up saved searches in FlexMLS for each community. This saves time every week.
- Create the search with the filters above
- Save it as:
Weekly Email - [Community Name] - Active - Create a second saved search:
Weekly Email - [Community Name] - Sold YTD - Each week, just run all 42 saved searches (21 x 2) and record the counts
If FlexMLS allows you to export a statistical report by subdivision, use that instead of running individual searches. Check Reports → Statistical → By Subdivision in FlexMLS.
Output Format
When done, Nicole's deliverable should look exactly like this:
Nicole must also provide the summary totals:
- Total Active (all 21 communities): [Sum of all Active columns]
- Total Sold YTD: [Sum of all Sold YTD columns]
Deliverable B: St. Andrews Featured Listings
What to Pull
Select the top 3 most notable St. Andrews Country Club active listings. "Notable" means:
- Highest price (showcase the top of market)
- New construction
- Recently listed (freshest inventory)
- Price reduced (shows market activity)
For Each Listing, Collect
| Field | Where to Find | Example |
|---|---|---|
| Address | Listing detail in FlexMLS | 17119 Whitehaven Drive |
| Price | Listing detail | $16,160,000 |
| Bedrooms | Listing detail | 6 |
| Bathrooms | Listing detail (use total, e.g., 7.2 = 7 full + 2 half) | 7.2 |
| Living SqFt | Listing detail — use "Living Area" not "Total Area" | 10,229 |
| Year Built | Listing detail | 2026 |
| Lot SqFt | Listing detail — "Lot Size Sq Ft" | 23,958 |
| MLS Number | Top of listing detail (starts with RX-) | RX-11150516 |
| Days on Market | Listing detail or calculate from list date | 7 |
| Feature Badge | Your judgment based on the listing | New Construction 2026 |
| Link | Find this on bogenhomes.com (see below) | https://bogenhomes.com/homes-for-sale-details/... |
Finding the bogenhomes.com Link
- Go to bogenhomes.com
- Search for the property address or MLS number
- Click into the listing
- Copy the URL from your browser's address bar
- It should look like:
https://bogenhomes.com/homes-for-sale-details/[ADDRESS-SLUG]/[MLS-NUMBER]/[ID]/
Why bogenhomes.com and not FlexMLS? FlexMLS links require login. bogenhomes.com links are public and work for email recipients.
St. Andrews Price Range
Also note the overall price range for the St. Andrews Executive Summary stat:
- Low: The lowest-priced active St. Andrews listing
- High: The highest-priced active St. Andrews listing
- Format:
$1.9M–$16.16M
STEP 2: Writing the Featured Article
This step stays manual — it's the creative/strategic work that can't be automated.
Article Requirements
| Element | Requirement | Example |
|---|---|---|
| Title | Compelling, specific, relevant to luxury South Florida market | "The Hidden Cost of Selling Your Home Off-Market: What St. Andrews Country Club Sellers Need to Know" |
| Author | Must be a team member: Edmund Bogen, Samantha Gornstein, Dina Ulrich, or Nicole Hudson | Edmund Bogen |
| Date | Publication date in format: Month DD, YYYY. Must match the market data date. | February 4, 2026 |
| Summary | 2-3 sentences for the email preview | "Research suggests off-market sales can cost sellers significantly..." |
| Full Content | Long-form article, typically 800-1500 words | Multiple sections with H2 headings |
| Article Slug | URL-friendly version of the title | hidden-cost-off-market |
Topic Selection Guidelines
Good topics for the weekly article:
- Market trends affecting our 21 communities (interest rates, inventory shifts, price movements)
- Luxury buyer/seller behavior insights
- Regulatory changes impacting Florida real estate
- Community-specific deep dives (St. Andrews new construction, Boca West activity)
- Seasonal market analysis (snowbird season, summer slowdown)
- Data-driven analysis using the community stats we already track
Writing Standards
- Tone: Professional, data-driven, authoritative — not salesy
- Voice: Institutional market intelligence (think Goldman Sachs research note meets luxury real estate)
- Structure: Use H2 headings to break up sections. No bullet points in body text unless specifically needed.
- Data citations: If citing specific statistics, note the source. The Fact-Check agent will flag unverified claims.
- Legal awareness: Avoid guaranteed outcomes ("prices WILL rise"), discriminatory language, or solicitation of other brokers' clients. The Compliance agent checks for these, but it's better to avoid them in writing.
Delivering the Article
Write the article in any format (Google Doc, Word, Notes, plain text) and have it ready to paste into the workflow template. The article goes into the [PASTE FULL ARTICLE HERE] section of the template.
STEP 3: Gathering Featured Listings (Currently Manual)
What's Needed
For the St. Andrews Country Club section of the email, we feature the top 3 listings. For any additional community listings pages we're generating that week, we need ALL active listings for those communities.
For St. Andrews Featured Listings (Top 3)
See Deliverable B in Step 1 — this is collected at the same time as the community stats.
For Additional Community Listings Pages
If we're generating full listings pages for communities beyond St. Andrews (e.g., Polo Club, Seven Bridges), we need every active listing in that community.
For each listing, collect:
- Address
- Price
- Bedrooms, Bathrooms, Living SqFt, Year Built, Lot SqFt
- MLS Number
- Days on Market
- Feature Badge (if applicable)
- bogenhomes.com link
In FlexMLS, run the active search for the community, then use the Export or Print function to get all listings in a structured format. Copy/paste from the export into the template.
STEP 4: Preparing the Hero Image
Requirements
| Spec | Value |
|---|---|
| Format | .png or .jpg |
| Minimum width | 1200px (1920px preferred for article page) |
| Aspect ratio | Landscape (approximately 16:9) |
| Content | Related to the article topic — can be community photo, market graphic, headshot, editorial image |
| File naming | Descriptive, lowercase, hyphens: edmund-hero.png, off-market-cost-hero.jpg |
Where to Upload
The hero image must be live on GitHub Pages before the email sends, because the email references it by URL.
Upload location: edmundbogen.github.io/luxury-community-dashboard/[filename]
How to upload (manual):
- Copy the image to
/Users/edmundbogen/Documents/GitHub/edmundbogen.github.io/luxury-community-dashboard/ - Git add, commit, and push
- Verify it's accessible at:
https://edmundbogen.github.io/luxury-community-dashboard/[filename]
How to upload (via agent team):
The GitHub Manager agent handles this during deployment. Just include the image file in the drafts directory.
STEP 5: Filling Out the Workflow Template
The Template Sections
The template has 6 sections. Each must be complete before running the AI pipeline.
Section 1: Article Details
Fill in:
- Article Title — exact title, this appears everywhere
- Author — check one name
- Publication Date — must match market data date
- Hero Image Filename — exact filename including extension
- Article Slug — URL-friendly version (lowercase, hyphens, no spaces)
- Email Summary — 2-3 sentences for the email preview
- Full Article Content — paste the entire article with headings
Section 2: Market Data
Fill in:
- Market Data As Of — must match the Article Date
- St. Andrews Price Range — low and high
- St. Andrews Active Listings — number
- Total Active (all 21 communities) — sum
- Total Sold YTD — sum
- 2026 Status Label — a short descriptor (e.g., "Q1 Strong", "Spring Surge")
Section 3: All 21 Community Stats
Paste Nicole's community stats table here. Must include all 21 communities with Active, Sold YTD, and Absorption Rate.
Count the communities. If there are fewer than 21, stop and figure out which are missing. The AI will catch this too, but it saves time to verify upfront.
Section 4: Featured St. Andrews Listings
Fill in all fields for each of the top 3 listings:
- Address, Price, Beds, Baths, SqFt, Year Built, Lot SqFt
- MLS Number
- Days on Market
- Feature Badge (or None)
- bogenhomes.com link
Section 5: Community Listings Pages to Generate
Check which communities need full listings pages this week. St. Andrews is always checked. Others are added when:
- A community has unusual activity (many new listings, price changes)
- A team member has a listing in that community
- Edmund wants to feature a specific community
Section 6: Full Listing Data for Checked Communities
For every community checked in Section 5, paste ALL active listings data. See format in the template.
Pre-Submission Checklist
Before pasting into Claude, verify:
- All dates match (Article Date = Market Data Date)
- Article title is finalized (no more edits after this point)
- Hero image file exists and filename is correct
- Author is selected
- All 21 community stats are present (count them!)
- Featured St. Andrews listings have all required fields
- Property links are from bogenhomes.com (NOT FlexMLS direct links)
- Full listing data provided for all checked communities
STEP 6: Running the Agent Team Pipeline
What Happens Behind the Scenes
When you invoke the pipeline, a team of 6 AI agents coordinates automatically:
How to Run It
Option A: Using the team orchestrator
Option B: Using the skill directly
Option A uses the full agent team (with change detection, cloning, fact-check, and managed deployment). Option B uses the skill directly with just the validator.
What You'll Be Asked (Human Checkpoints)
The pipeline will pause 3 times for your input:
Checkpoint 1 — After Change Detection
"Here's what changed from last week: [change report]. Ready to generate?"
Review the changes. If something looks wrong (e.g., the wrong previous week was found), say so. Otherwise, confirm to proceed.
Checkpoint 2 — After Validation & Compliance
"All validations passed. These items were flagged for review: [list]. Proceed?"
Review any flagged items. Common flags:
- "Statistic on line 45 needs human verification" — check your source data
- "This claim is framed as a guarantee" — consider softening the language
- Compliance flags — review and approve or request changes
Checkpoint 3 — Before Deployment
"All checks passed. Ready to deploy to GitHub and copy email to output?"
This is the go/no-go decision. Once you confirm, files go live.
What Gets Created
| File | Location | Purpose |
|---|---|---|
email.html |
~/Desktop/weekly-email-output/email.html |
Upload to Constant Contact |
[article-slug].html |
Deployed to GitHub Pages | Live article page |
index.html |
Deployed to GitHub Pages | Updated dashboard |
st-andrews-listings.html |
Deployed to GitHub Pages | Updated listings page |
| Additional listings pages | Deployed to GitHub Pages | If other communities were requested |
Drafts are archived in: ~/Desktop/weekly-email-output/deployed/YYYY-MM-DD/
STEP 7: Reviewing Validation & Compliance Reports
Validation Report
You'll see a report like this:
If anything says FAIL: The Content Writer agent will have already attempted to fix it. If it can't be fixed automatically, you'll be told what needs manual correction.
Compliance Report
What to do with fact-check flags:
- Review each flagged claim
- If you can verify it, approve to proceed
- If you can't verify it, ask the Content Writer to soften the language (e.g., "some studies suggest" instead of a hard number)
STEP 8: Deployment to GitHub & Constant Contact
What the Agent Handles Automatically
- Pulls latest code from the GitHub repository
- Copies hero image to the correct directory
- Copies article page to the correct directory
- Copies community listings pages to the correct directory
- Updates the dashboard
- Commits everything with a descriptive message
- Pushes to GitHub (goes live on edmundbogen.github.io)
- Copies email.html to the output directory
- Archives the drafts
What You Do Manually
Upload email.html to Constant Contact:
- Open Constant Contact
- Create a new email campaign (or duplicate last week's)
- Switch to the HTML editor / code view
- Open
~/Desktop/weekly-email-output/email.htmlin a text editor - Copy the entire HTML content
- Paste it into Constant Contact's HTML editor
- Send a test email to the team first
- Schedule for Wednesday 9:00 AM (or send immediately if past that time)
STEP 9: Post-Deployment Verification
After deployment, verify these URLs are live and correct:
| URL | What to Check |
|---|---|
edmundbogen.github.io/luxury-community-dashboard/ |
Dashboard loads, shows this week's date, correct stats |
edmundbogen.github.io/luxury-community-dashboard/[article-slug].html |
Article loads, correct title/author/date, images display |
edmundbogen.github.io/luxury-community-dashboard/st-andrews-listings.html |
Listings load, correct property count, links work |
edmundbogen.github.io/luxury-community-dashboard/[hero-image] |
Image loads (not broken) |
GitHub Pages can take 1-5 minutes to deploy after a push. If you see a 404, wait a few minutes and refresh.
Also Check the Test Email
- Hero image displays (not broken)
- "Read Full Article" button links to the correct article page
- "View All Listings" button links to the correct listings page
- "View Interactive Dashboard" links to the dashboard
- Community stats table shows all 21 communities
- Author bio shows the correct author
- Footer has the Douglas Elliman disclaimer
- Unsubscribe link works
13. Where Everything Lives
Local File Locations (Edmund's Machine)
| Location | What's There |
|---|---|
~/Desktop/weekly-email-output/ |
Production email output (email.html for Constant Contact upload) |
~/Desktop/weekly-email-output/drafts/YYYY-MM-DD/ |
Working drafts for current week (safe to experiment) |
~/Desktop/weekly-email-output/deployed/YYYY-MM-DD/ |
Archived copies of deployed weeks |
~/Documents/GitHub/edmundbogen.github.io/ |
Local clone of the GitHub Pages repo |
~/Documents/GitHub/edmundbogen.github.io/luxury-community-dashboard/ |
Where all web assets live |
~/.claude/skills/weekly-email-team-instructions/ |
The AI skill that drives generation |
~/.claude/agents/ |
The 7 AI agents that form the team |
~/.claude/settings.json |
Claude Code settings (agent teams enabled) |
GitHub Repositories
| Repo | URL | Purpose |
|---|---|---|
edmundbogen.github.io |
github.com/edmundbogen/edmundbogen.github.io | Deployment target — GitHub Pages serves all web content |
weekly-email-team-instructions |
github.com/edmundbogen/weekly-email-team-instructions | The skill definition repo (instructions, not output) |
samantha-gornstein-weekly-email |
github.com/edmundbogen/samantha-gornstein-weekly-email | Samantha's version of the email package |
Live URLs
| URL | What It Is |
|---|---|
edmundbogen.github.io/luxury-community-dashboard/ |
Main market dashboard |
edmundbogen.github.io/luxury-community-dashboard/st-andrews-listings.html |
St. Andrews listings |
edmundbogen.github.io/luxury-community-dashboard/index.html |
Dashboard (same as above) |
edmundbogen.github.io/luxury-community-dashboard/[article-slug].html |
Weekly articles |
14. The 21 Communities Reference
These are the 21 luxury communities we track every week. All 21 must appear in every email and dashboard.
| # | Community Name | Typical Search Terms in FlexMLS | Notes |
|---|---|---|---|
| 1 | Addison Reserve | Addison Reserve | Delray Beach |
| 2 | Boca Bridges | Boca Bridges | Newer community |
| 3 | Boca Grove | Boca Grove | Boca Raton |
| 4 | Boca West Country Club | Boca West CC, Boca West Country Club | Largest community — usually highest active count |
| 5 | Bocaire Country Club | Bocaire CC, Bocaire Country Club | Boca Raton |
| 6 | Broken Sound | Broken Sound | Boca Raton, often high activity |
| 7 | Delaire Country Club | Delaire CC, Delaire Country Club | Smaller community |
| 8 | Le Lac | Le Lac | Very exclusive, often 0 active |
| 9 | Long Lake Estates | Long Lake Estates | Boca Raton |
| 10 | Lotus | Lotus | Boca Raton |
| 11 | Mizner Country Club | Mizner CC, Mizner Country Club | Delray Beach |
| 12 | Polo Club | Polo Club, Polo Club of Boca Raton | Samantha's specialty |
| 13 | Royal Palm Yacht Club | Royal Palm Yacht & CC, Royal Palm Yacht Club | Boca Raton, waterfront |
| 14 | Seasons | Seasons | Boca Raton |
| 15 | Seven Bridges | Seven Bridges | Dina's specialty |
| 16 | St. Andrews Country Club | St Andrews CC, St. Andrews Country Club | Edmund's primary farm — always gets featured listings |
| 17 | Stonebridge | Stonebridge | Samantha's specialty |
| 18 | The Bridges | The Bridges | Delray Beach |
| 19 | The Oaks | The Oaks | Boca Raton |
| 20 | The Sanctuary | The Sanctuary | Boca Raton |
| 21 | Woodfield | Woodfield, Woodfield Country Club | Boca Raton |
Spelling Matters
The AI validator checks exact spelling. Use the names exactly as shown in the table above. Common mistakes:
- "Bocaire" not "Boccaire"
- "Delaire" not "DeLaire" or "De Laire"
- "Le Lac" not "LeLac" or "Le lac"
- "St. Andrews" not "St Andrews" (note the period) — actually either is acceptable, just be consistent
15. Troubleshooting & Common Issues
"I only have 19 communities, not 21"
Check against the full list of 21. The most commonly forgotten are:
- Le Lac (often has 0/0/N/A — still must be included)
- Long Lake Estates
- Seasons
"The hero image shows as broken in the email"
The image must be uploaded to GitHub Pages BEFORE the email sends. Verify:
- The image exists at
edmundbogen.github.io/luxury-community-dashboard/[filename] - The filename in the email HTML matches exactly (case-sensitive)
- GitHub Pages has finished deploying (wait 1-5 minutes after push)
"The validator says links are broken"
- If the article page hasn't been deployed yet, its link will 404 — this is expected if you're running validation before deployment
- bogenhomes.com links may fail if the property was just listed and the IDX hasn't synced yet — wait and recheck
- If a link is genuinely wrong, check the MLS number and address slug
"FlexMLS shows different numbers than last week but I didn't expect changes"
This is normal. Listings go active, go under contract, close, or expire daily. The data is a snapshot of today, not a diff from last week. The Change Detector agent will show you exactly what changed.
"The article author changed but the bio still shows Edmund"
The Content Writer agent should handle this automatically if the Author field is set correctly in the template. If it doesn't, check that the Author checkbox in the template matches the intended author.
"I need to regenerate just one file, not all of them"
You can ask Claude directly: "Regenerate only the st-andrews-listings.html using the same data from this week." The agent team doesn't need to rerun the full pipeline for single-file fixes.
16. Automation Roadmap
Current State (February 2026)
| Step | Automation Level | What's Manual |
|---|---|---|
| MLS data collection | Fully manual | Nicole logs into FlexMLS, runs searches for each community, records counts |
| Featured listings gathering | Fully manual | Nicole pulls property details and finds bogenhomes.com links |
| Article writing | Manual (intentional) | This is creative/strategic work — should stay human |
| Hero image | Manual | Selection and basic editing |
| Template fill-out | Manual | Pasting data into the template |
| HTML generation | Fully automated | — |
| Validation | Fully automated | — |
| Legal compliance | Fully automated | — |
| GitHub deployment | Fully automated | — |
| Constant Contact upload | Manual | Copy/paste HTML into Constant Contact |
Phase 1: CSV Processor (Next to Build)
What it does: A Python script that reads FlexMLS CSV exports and produces the formatted community stats table and featured listings data, ready to paste into the template.
Nicole's new workflow:
- Log into FlexMLS
- Run saved searches (already set up)
- Export results as CSV
- Run the Python script
- Copy the formatted output into the template
Time savings: Cuts data collection from 30-45 minutes to ~5 minutes.
Status: Ready to build. Needs a sample FlexMLS CSV export to build against.
Phase 2: Spark API Integration (Pending Douglas Elliman)
What it does: Directly queries the FlexMLS database via the Spark API. No manual export needed. The script pulls all 21 communities' data automatically.
Nicole's new workflow:
- Run the script (or it runs on a schedule)
- Review the output
- Approve and paste into template (or it auto-populates the template)
Time savings: Eliminates manual FlexMLS work entirely.
Status: Requires Douglas Elliman to request Spark API production credentials from BeachesMLS. Edmund to initiate this conversation.
Action Item for Edmund
Contact your Douglas Elliman tech/marketing support and ask:
"I'd like to get Spark API access through our BeachesMLS data agreement for a custom market intelligence automation project. Can you help me request production API credentials?"
Phase 3: MCP Server for Live MLS Data (Future)
What it does: An MCP server that connects Claude Code directly to your MLS data. You'd be able to say: "Pull this week's stats for all 21 communities" and Claude would query the MLS live.
Status: The MLS industry is moving toward offering MCP servers, but BeachesMLS hasn't deployed one yet. The UNLOCK MLS RESO MCP Server is a working example. Check back in 6-12 months.
Phase 4: End-to-End Automation (Vision)
The ultimate workflow:
- Edmund writes the article (the only manual creative step)
- Everything else happens automatically:
- MLS data pulled via API
- Template auto-populated
- Agent team generates, validates, and deploys
- Email uploaded to Constant Contact via API
- Edmund reviews and hits "send"
Estimated timeline: Achievable within 2026 if Spark API access is granted.
Quick Reference Card
For the team member running the weekly pipeline:
-
Collect all inputs:
- Nicole's community stats (21 communities)
- Nicole's featured St. Andrews listings (top 3)
- Article (written and finalized)
- Hero image (filename noted)
- Any additional community listing data
- Fill out team-workflow-template.md completely
- Run pre-submission checklist (all dates match, 21 communities, etc.)
-
Open Claude Code:
"Use the team-orchestrator agent to run the weekly email pipeline. Here's the filled template: [paste]" -
Respond to 3 checkpoints:
- After change detection → "Proceed"
- After validation → Review flags → "Proceed"
- Before deployment → "Deploy"
- Upload email.html to Constant Contact
- Send test email to team
- Schedule/send at 9:00 AM Wednesday
- Verify live URLs after deployment