User Manual · 08 · Data Sources
WholeReach — Automated Marketing System

Data Sources

Every source of truth the content engine reads from — where it lives, what it provides, and how often it refreshes.

Every source the engine reads

SourceProvidesLocationRefresh
Network site listEach site's domain + verified description → site features & spotlightsmain:/root/wt-sites.jsonAs the network changes
Marketing-skills library47 skills → AI-marketing tipsskills-data.jsWeekly
Quality-score snapshotsDaily AI-readiness scores → milestones & new-site spotlightsmain:/root/ama-snapshots/Daily
The built feedThe combined, cleaned, publishable itemshub:/opt/portal/listings/wholetech.jsonNightly
Connected-account tokensCredentials to publish to each networkhub databaseOn connect/refresh

One principle governs all sources

Verified in, or held out.A field only becomes part of a post if it is present in the source. Truncated descriptions are dropped; missing scores are skipped; unverifiable facts are held. The feed is deliberately conservative — it would rather post less than post something it can't stand behind.

Adding a new source

To feed a new kind of post, add a section to gen-social-feed.py that reads the new data, cleans it, and emits items tagged with a new kind; then add matching templates. Keep the same rule: emit an item only when every field a template needs is verified.