Skip to content
Ahmad BukhariBook a 25 min call

Social monitoring engine: Follow one idea across eight platforms, then decide what earns the next post.

A designed and built interface for cross-platform content, audience growth and editorial planning, with platform-specific definitions, availability and freshness kept visible. Shown as the workspace for Loud Lunch, a food creator and media business publishing across YouTube, Instagram, TikTok, LinkedIn, X, Threads, Facebook and Pinterest.

The problem

A food media team publishes the same core idea across eight networks, but views, audience counts and engagement mean different things on each. This designed and built interface connects content decisions to platform-specific evidence without claiming equal measurement, unique cross-platform audiences or achieved client results.

How the system is built

  1. SourcesYouTube Analytics, Reporting and Data APIs; Instagram Graph insights; Facebook Page Insights; Threads insights; TikTok Display or approved Accounts API; LinkedIn Community Management organization statistics; X API v2; Pinterest API v5. Availability depends on account type, approved permissions and current provider definitions.
  2. IngestionProposed read-only OAuth connectors, platform-specific daily jobs, permitted webhooks and bulk-file downloads. YouTube reach reports supply thumbnail impressions and CTR; archive CSV files before their 60-day expiry. TikTok Display falls back to authorized-account count snapshots, not richer business analytics.
  3. NormalizationRetain provider metric name, version, units, definition, paid inclusion, source timezone, reporting grain and ready-at timestamp. Normalize to daily account facts and per-post lifetime snapshots without inventing missing metrics. Preserve Pacific YouTube cutoffs alongside UTC reporting dates.
  4. StoragePostgres account and post registry, metric observations, cross-post groups, permission inventory, refresh jobs, comments and derived content tags. Restricted object storage retains permitted raw reports and input provenance under provider-specific retention rules.
  5. DecisionsRank outliers within each platform and age-aligned cohort. Link cross-posts by reviewed core-idea groups. Derive hooks and formats from permitted titles, captions, thumbnails and transcripts with method versions and editor review; no causal performance claims.
  6. DashboardCross-post race, pulse orbit and hook x format map, alongside content, planning, audience, earnings, inbox and connection views. Unavailable metrics remain unavailable; no audience deduplication or unsupported competitor analytics.
  7. Write-backsLocal editorial notes, checklists and saved reply text only. The interface does not establish live publishing, message delivery or platform-account changes.

The dashboard

13 views: Overview, Platforms, Content, Planner, Trends & outliers, Best times, Audience, Competitors, Goals, Earnings, Inbox, Ask the data, Connections.

The cross-post race follows one idea across platforms. The pulse orbit keeps each network visible, while the hook x format map opens the posts behind derived content comparisons. Platform definitions, missing metrics and method notes stay separate from editorial judgments.

State lives in the URL (view, filters, date range), records open in drawers with their history, and every action that changes something is written to an activity log and is safe to repeat.

Data model

  • social_accounts(id, workspace_id, platform, provider_account_id, account_type, timezone, consent_state)
  • platform_permissions(account_id, permission, approved_at, expires_at, review_state)
  • posts(id, account_id, provider_post_id, format, published_at, caption_ref, refreshed_at)
  • account_daily(account_id, day, followers_total, followers_net, source_timezone, ready_at)
  • metric_observations(account_id, post_id, period_start, period_end, observed_at, provider_metric, canonical_metric, value, unit, grain, definition_version, paid_inclusion, availability)
  • crosspost_groups(id, workspace_id, core_idea, reviewed_by)
  • crosspost_members(group_id, post_id, match_method, reviewed_at)
  • content_features(post_id, hook, format, method_version, input_refs, confidence, reviewed_by)
  • comments(account_id, post_id, provider_comment_id, parent_id, text_ref, refreshed_at, permission_state)
  • public_observations(platform, provider_object_id, metric, value, observed_at, permitted_source)
  • report_files(account_id, report_type, provider_report_id, period_start, period_end, object_key, replaces_id, downloaded_at)
  • refresh_jobs(account_id, endpoint, cursor, last_success_at, next_run_at, quota_used, status)
  • editorial_actions(workspace_id, actor_id, action, post_id, payload, created_at).

Rules in the backend

  1. Never treat views, impressions and unique reach as interchangeable. Keep mixed-definition totals explicitly labelled; compare posts by within-platform percentile. Followers across accounts are not unique people and no API establishes audience overlap.
  2. YouTube Analytics is typically delayed 48-72h. Reporting API supplies thumbnail impressions and CTR, has a 30-day initial backfill and report expiry; store files and replace corrected report periods. Studio-only unique/returning viewers, typical-range bands, Shorts swipe metrics and Test & Compare remain unavailable.
  3. Instagram needs professional accounts; insights may lag 48h, demographics have thresholds and Stories need timely collection. Check current metric replacements and access-specific webhook support. Facebook Page metrics require the relevant Page role, 100+ likes where applicable and a current deprecation map; reject retired metric names rather than turning errors into zero.
  4. Threads has views, engagement and clicks but not unique reach or saves in the reviewed endpoints. TikTok Display exposes counts only; richer watch, reach and audience fields require approved Accounts API access and sometimes advanced access. Do not use the non-commercial Research API for this business dashboard or infer commercial competitor access.
  5. LinkedIn organization statistics need approved product access and a Page administrator. Organization share/follower history is rolling 12 months; follower readiness lags roughly two days. Personal-profile analytics and unconfirmed video endpoints remain gated until verified. Pin a supported API version.
  6. X public counts and video views differ from impressions; owned non-public metrics have a 30-day post window. Pinterest analytics use separate impressions, saves, outbound clicks and video definitions; standard queries have a 90-day lookback. Do not present unsupported Pinterest reach or unverified audience endpoints.
  7. Keep organic and paid-inclusive delivery separate, retain missing and thresholded data as unavailable, and derive posting-time recommendations from history except where native audience timing is available. Comment permissions are separate per platform; Pinterest comment access and other unverified capabilities remain gated.
  8. Public competitor monitoring is provider-specific: YouTube public metadata and X public metrics are available through their documented routes; Instagram Business Discovery details require verification, LinkedIn public organization follower counts do not unlock competitor post insights, and other unsupported routes stay unavailable.

Storage

Recommend workspace-isolated Postgres and restricted object storage. Store daily account snapshots from connection day to cover APIs without history. Refresh or delete YouTube Data API metadata within 30 days and respect each provider's deletion, consent and retention terms. History limits differ: Instagram account insights around 90 days, Facebook two years with 90-day queries, Threads availability from 2024, TikTok profile daily 60 days and post updates up to 365 days, LinkedIn 12 months, X owned non-public metrics 30 days and Pinterest standard queries 90 days. Store source lineage rather than promising unsupported backfills.

Reliability

Proposed daily refreshes track source readiness rather than comparing today's incomplete values. Retry late YouTube data over 48-72h, Instagram and TikTok over 24-48h and LinkedIn followers after roughly two days. Capture eligible Stories before their short availability window; use more frequent refresh only when approved quotas and budget allow. Apply bounded retries, cursor checkpoints, report-ID deduplication and idempotent upserts. Budget per-platform quotas, batch supported IDs, alert on token expiry and deprecations, and expose stale, partial, rejected and not-supported states separately. Verify rate limits in each provider's account portal before activation.

Security and access

Use server-side encrypted tokens, workspace isolation, least privilege, revocation and explicit account ownership. YouTube needs yt-analytics.readonly and youtube.readonly; monetary access separately needs yt-analytics-monetary.readonly and eligibility. Instagram permissions depend on login route: instagram_business_basic / instagram_business_manage_insights or instagram_basic / instagram_manage_insights with pages_read_engagement. Facebook needs read_insights, pages_read_engagement and the Page ANALYZE role. Threads needs threads_basic and threads_manage_insights. TikTok Display uses user.info.basic, user.info.profile, user.info.stats and video.list; Accounts API requires its access application and owner authorization. LinkedIn organization APIs require rw_organization_admin, approved product access and Page administrator status; X owned metrics require user-context OAuth; Pinterest uses user_accounts:read and pins:read with eligible business access. Meta advanced access/App Review/Business Verification, TikTok approval, LinkedIn product approval and Pinterest access level must be verified for the intended app before connecting third-party accounts. Unverified scope, app-review and rate-limit details remain launch blockers, not assumed permissions.

Cost

The proposed backend incurs hosting, Postgres, object storage, worker and network costs; optional model, vision and transcript processing needs separate approved budgets. The 3 Nov 2026 capability map reports X pay-per-use reads at $0.005 per returned post and $0.010 per user resource: 1,000 posts refreshed daily for 30 days would be $150 in post reads alone, before other resources, subject to current provider terms. Budget per-resource refreshes and enforce spend caps; no purchases or paid calls are authorized by this page. Other platform access, approval and quota entitlement are account-specific and should not be described as universally free. Earnings are source-specific and cannot be inferred from reach or views.

Use it

The window above runs the full workspace. Pause the tour and click through it, or open it full screen.

Technology stack

  • YouTube
  • Instagram
  • TikTok
  • LinkedIn
  • X
  • Threads
  • Facebook
  • Pinterest
  • PostgreSQL
Source & context

Designed and built by Ahmad Bukhari in November 2026.

The Loud Lunch interface and thirteen views are designed and built. Live API connections, approved app access, collection jobs, warehouse, provider-side replies and paid operations are proposed production capabilities, not verified running integrations.

Built: 2026-11-03

Map a workflow like this

Start with the handoffs your team already runs and where they break.

Discuss a workflow →