Internal — Platform Ops

Distribution Runbook

How every piece of content gets to every platform, who does what, and what happens without Sam. Last updated 25 June 2026.

Jump to section

Fully Automated One-Tap (Sam) Claude Runs Weekly Cadence Canonical Handles
⚙ Fully Automated

Zero human input needed

These run every day whether Sam is at his desk or not. Check logs if something looks wrong.
Telegram @SamChopraIndia
Fully automated

Content: Estate by Eight (EST8) daily brief

When: 8:02 AM IST every day

How it runs: Cron at 08:02 runs ~/.est8/post_telegram.py. Reads ~/.est8/today_text.txt (8 headlines + Sam takes, HTML-formatted) and ~/.est8/today_caption.txt. Sends photo card via Telegram Bot API multipart/form-data, then sends text message. Bot token at ~/.est8/telegram_token (chmod 600). Channel numeric ID: -1003513534350.

Health check: Run tail -50 ~/.est8/est8.log. Look for 200 OK from Telegram. If absent, re-run post_telegram.py manually.

Fallback: If bot fails: copy today_text.txt and the card image from ~/Desktop/"Estate by Eight Cards"/ and post manually in Telegram app.

EST8 card render
Fully automated

Content: Daily news card image

When: 6:50 AM IST (before post jobs run)

How it runs: Cron at 06:50 runs ~/.est8/render_card.py. Fetches 8 headlines via web search, builds today.json, renders card to ~/Desktop/"Estate by Eight Cards"/est8-YYYY-MM-DD.png.

Health check: ls -la ~/Desktop/"Estate by Eight Cards"/ | tail -3. File dated today should exist by 7 AM.

Fallback: Run render_card.py manually. If web fetch fails, paste 8 headlines from Google News Real Estate into today.json manually then run render only.

Beyond The Deal — X and Threads
Fully automated (Publer)

Content: Daily BTD cards (2/day)

When: Scheduled in Publer queue

How it runs: Cards pre-rendered to samchopra.com/btd/ and batch-loaded into Publer. Publer auto-fires at scheduled times via OAuth token (no laptop needed).

Health check: Publer dashboard: check queue is populated 7+ days ahead. If empty, run /tmp/render_btd.py and reload Publer.

Fallback: Publer renewal due 8 Jun rolling. If Publer down: post manually from the /btd/ page.

👆 One-Tap (Sam)

Sam's login required — but takes under 5 minutes each

These cannot be automated: platform restrictions or Sam's judgment is needed. Claude stages everything; Sam just sends.
👆
LinkedIn Newsletter
Sam — one tap, but his LinkedIn login required

Content: The Real State of Real Estate (weekly, Friday)

When: Friday afternoon IST

How: Claude stages the full draft + branded cover image on Thursday. Sam opens LinkedIn, pastes the HTML body, uploads the cover, clicks Publish. Takes under 4 minutes.

  1. Open linkedin.com/newsletters
  2. Click 'Write newsletter'
  3. Paste the staged draft (file: /newsletter-drafts/ in project)
  4. Upload the cover image (saved to Desktop by Thursday)
  5. Click Publish
  6. Use LinkedIn's 'Grow your subscribers' panel to cross-share to Facebook, X, and LinkedIn groups immediately after

Note: Cannot be automated: LinkedIn blocks Publer/API newsletter publishing. This is the one true holdout.

👆
WhatsApp Channel
Sam (or team member with phone access)

Content: EST8 daily brief — 'Sam Chopra | Indian Real Estate'

When: 8 AM IST daily (after the card is rendered)

How: Open WhatsApp Channel. Copy the 8 headlines text from ~/.est8/today_text.txt (or the Telegram post). Paste into the channel. Attach today's card image from ~/Desktop/"Estate by Eight Cards"/.

  1. Open WhatsApp on phone
  2. Go to channel: https://whatsapp.com/channel/0029Vb87ZBx8KMqoar7mhl3U
  3. Tap the attachment icon, pick the card image from Photos
  4. Paste the 8-headline text
  5. Send

Note: No WhatsApp API exists for channels. This is the one irreducibly manual step in the EST8 pipeline. Time: under 2 minutes.

👆
Instagram + LinkedIn + Facebook — EST8 card
Sam or team (Publer OAuth is Sam's account)

Content: Daily EST8 card on personal + brand pages

When: 8:00 AM IST daily

How: Card is batch-loaded into Publer. Requires Sam's Publer OAuth token to be active. Publer fires automatically once loaded.

  1. Go to Publer.io (samchopra account)
  2. Check 'Scheduled' tab shows today's EST8 slot is populated
  3. If empty: click 'New post', upload est8 card, paste caption from today_caption.txt, schedule for 8 AM
  4. Set to post to: IG @samir.chopra + LinkedIn personal + FB personal + eXp India FB page

Note: Once queue is loaded 7-14 days ahead, this requires zero daily input.

👆
Quora
Sam (login required; Quora uses Pangram to detect AI posts — Sam must pass final voice through his own edit)

Content: 5 staged answers (paste-ready in project file)

When: 2-4 per week, staggered, not all at once

How: Answers drafted by Claude at sam's voice. Sam opens his Quora account, finds the target question, pastes the answer with light human edits to strip AI tells before posting.

  1. Open quora.com and log in as Sam Chopra
  2. Search the question (exact text in 'Quora - First 5 Answers (paste-ready).md')
  3. Click 'Answer'
  4. Read the draft, humanise 2-3 sentences in your own spoken voice
  5. Add one line at the end with your bio: 'Sam Chopra | President, eXp India | 30 years in real estate'
  6. Post

Note: Do NOT paste raw AI drafts without editing. Quora detects 'slop' and shadow-bans accounts. One human sentence at the end seals it.

👆
Reddit u/SamChopraIndia
Sam (account is under [email protected] login)

Content: Warm-up comments (2-4/week until ~9 Jul 2026)

When: 2-4 times per week, any time Sam is online

How: Claude surfaces 3-5 Reddit threads in the morning brief each weekday (from r/IndianRealEstate, r/personalfinanceindia, r/gurgaon, r/IndiaInvestments). Sam picks one, reads the thread, pastes the suggested comment with any edits, posts from u/SamChopraIndia.

  1. Check morning brief for the day's Reddit thread suggestions
  2. Open reddit.com on browser, log in as u/SamChopraIndia
  3. Find the thread (direct link in the brief)
  4. Read 5 comments to understand the conversation
  5. Paste Claude's draft comment OR write your own 2-4 line take
  6. Post — no links, no eXp mentions, no pitch during warm-up

Note: Graduation date: ~9 Jul 2026 when account reaches ~100 karma. After that, Claude will flag when it is safe to post original content + links.

🤖 Claude Runs

AI-managed, no Sam input

Claude handles these end-to-end. Sam is briefed in the morning report, not asked for approval.
🤖
samchopra.com
Claude Code (no Sam needed)

What: Library, Blog, Distribution map, Ask Sam page, Reports

How: Claude builds pages via Python scripts in /tmp/build_*.py and deploys via git push to Cloudflare Pages (~/Desktop/samchopra-deploy/).

🤖
Sitemap + SEO hygiene
Claude Code

What: sitemap.xml, canonical tags, llms.txt, robots.txt

How: Updated in deploy folder whenever new pages are added. git push triggers Cloudflare rebuild.

🤖
EST8 card render pipeline
Claude (cron) — restorable via crontab -e

What: Cron 05:30 scrape + 06:50 render + quality check

How: Cron jobs managed in crontab. Scripts at ~/.est8/. Logs at ~/.est8/est8.log.

🤖
Reddit thread surfacing
Claude (Apify + morning brief routine)

What: Morning brief includes 3-5 Reddit threads for Sam to comment on

How: Apify actor (trudax/reddit-scraper-lite) pulls threads matching Sam's keywords. Claude drafts the comment. Added to daily brief.

🤖
Memory and monitoring
Claude (scheduled task)

What: Weekly cadence audit, distribution matrix drift checks, memory updates

How: Scheduled task cadence-discipline-audit-weekly fires Monday 07:00 IST. Reads distribution-matrix.md, checks channel status, flags drift.

Weekly Cadence

DayTime (IST)Action
Monday07:00Cadence audit fires (Claude). Check distribution matrix drift. Surface Reddit threads for Sam.
Monday–Friday05:30EST8 scrape cron (auto).
Monday–Friday06:50EST8 card render cron (auto).
Monday–Friday08:00EST8 Publer post (auto: IG + LinkedIn + FB).
Monday–Friday08:02EST8 Telegram post (auto: bot).
Monday–Friday08:02–08:15WhatsApp Channel paste (Sam — 2 min manual).
Tue / Thu / Sat09:30BTD + LinkedIn posts fire via Publer (auto).
Wednesday19:00–20:00 ISTLive webinar (Sam + team). ManyChat autoresponder active.
ThursdayEnd of dayNewsletter draft + cover image ready for Sam (Claude stages it).
FridayAfternoonNewsletter published by Sam (one-tap on LinkedIn).
Friday17:00–19:00eXp All-Staff call (eXp lane, not content lane).
Friday by 16:30Central sheet clean for eXp Grow-Up call.
SaturdayMorningBatch review: Quora answer queue, Reddit comment queue, Publer load for next 7 days.

Canonical Handles

These are the verified-live handles as of 25 June 2026. Always use these; never use stale handles from old docs.

PlatformHandle / Link
Instagram — personal@samir.chopra
Instagram — TRSORE@the_real_state_of_real_estate
LinkedInin/samchopra
X@samchops_cybiz
Threads@samir.chopra
YouTube — Sam@SamChopraIndia
YouTube — eXp India@exprealty_india
Telegram@SamChopraIndia
WhatsApp Channel0029Vb87ZBx8KMqoar7mhl3U
Redditu/SamChopraIndia
QuoraSam Chopra
Websitesamchopra.com
ChatGPT GPTAsk Sam Chopra
Linktreelinktr.ee/samchopra

Where this is maintained

This page is generated from /tmp/build_runbook.py and deployed via git push from ~/Desktop/samchopra-deploy/. Any edits to the runbook should be made in that script and redeployed. The distribution matrix lives at /distribution/. The Quora Q&A content lives at /ask/.

Updated: 25 June 2026 | Maintained by: Claude Code (AI Sam CoS)