Back to .md Directory

Social Posting & Engagement Analysis

- **Twitter (X)**: Full posting via Twitter API v2 (`src/clients/twitter.ts:15-135`), including text tweets, media (image/video) upload (`twitter.ts:50-59`), threaded replies (`twitter.ts:81-106`), and metric retrieval (likes, retweets, comments, impressions) (`twitter.ts:62-79`).

May 2, 2026
0 downloads
2 views
ai prompt eval claude openai gemini
View source

Social Posting & Engagement Analysis

Current Capabilities

Platform Support

  • Twitter (X): Full posting via Twitter API v2 (src/clients/twitter.ts:15-135), including text tweets, media (image/video) upload (twitter.ts:50-59), threaded replies (twitter.ts:81-106), and metric retrieval (likes, retweets, comments, impressions) (twitter.ts:62-79).
  • LinkedIn: Full posting via LinkedIn REST API v2 (src/clients/linkedin.ts:13-363), including text-only posts (linkedin.ts:77-114), image posts with registered uploads (linkedin.ts:116-231), video posts (linkedin.ts:233-348), and partial metric retrieval (likes, comments only -- no impressions) (linkedin.ts:44-75).
  • Platform routing: PostingService dispatches to one or both platforms per queue item (src/services/posting-service.ts:44-88). Platform-specific text variants are generated (posting-service.ts:48-51): Twitter gets a 280-char version, LinkedIn gets the full post.

Content Ingestion & Discovery

  • RSS-based content discovery: Polls 6 hardcoded RSS feeds (HN, TechCrunch, The Verge, Ars Technica, OpenAI Blog, Anthropic Blog) every 2 hours (src/services/content-discovery.ts:8-33, src/services/scheduler.ts:117-123).
  • AI relevance scoring: Each discovered article is scored 0.0-1.0 by Claude for developer/AI audience relevance (content-discovery.ts:35-47). Dynamic threshold adjusts based on queue fullness (0.5 when empty, 0.85 when full) (content-discovery.ts:104-111).
  • Deduplication: New articles are checked against existing discovered_content table to prevent re-processing (content-discovery.ts:93-99).
  • Slack-based intake: Users send messages via Slack; IntakeService classifies content type (link/image/video/remotion/text/video_edit), scheduling intent, platform target, and priority (src/services/intake-service.ts:9-208). Supports Gemini vision analysis for attached images (intake-service.ts:86-117).

Content Generation Pipeline

  • Multi-step generation: Link posts go through scrape -> marketing report -> platform-specific post generation (src/services/content-generator.ts:135-188). Generates separate Twitter and LinkedIn variants.
  • Content types supported: link, image, video, remotion (AI video), text, video_edit (content-generator.ts:979-1141).
  • Thread generation: Automatic Twitter thread (3-5 tweets) when content exceeds 280 chars (content-generator.ts:246-265).
  • Video pipeline: Full Remotion video generation with 6 templates (TechNewsVideo, QuoteCard, ProductShowcase, AudiogramVideo, StoryVideo, ShortFormVideo), AI-generated TTS via fal.ai MiniMax Speech, AI images via fal.ai Flux 2 Flex, image quality gating via Gemini vision (content-generator.ts:391-564, 74-130).
  • Dynamic prompt augmentation: DynamicPromptBuilder injects performance insights, voice profile, procedural rules, user preferences, and skill instructions into all generation prompts (src/services/dynamic-prompt-builder.ts:34-115).

Scheduling & Queue Management

  • 4 posts/week default schedule: Mon 9AM, Tue 10AM, Thu 9AM, Fri 10AM (src/config/schedule.ts:26-51).
  • Content mix balancing: Soft weekly quota per type (1 link, 1 media, 1 remotion, 1 text) with automatic overflow to next week (src/services/content-queue.ts:22-48).
  • Status lifecycle: pending -> generating -> generated -> rendering -> awaiting_approval -> ready -> posted/failed (content-queue.ts).
  • Approval workflow: Generated items go to Slack for human review with approve/reject/edit buttons; auto-approval option for configured content types (src/services/scheduler.ts:368-423).
  • Pre-post notifications: 35 minutes before posting, Slack notification sent (scheduler.ts:479-494).
  • Failed item retry: Every 30 min, failed items retry up to 3 times with smart error classification (permanent vs. transient vs. rate-limit) (scheduler.ts:425-466).
  • Adaptive scheduling config: Supports dynamic slot count (up to 8/week), analysis window of 30 days for timing optimization (schedule.ts:62-74).

Metrics & Analytics

  • Engagement collection: Hourly cron collects 24h and 72h metrics from Twitter (likes, retweets, comments, impressions, engagement rate) and LinkedIn (likes, comments) (src/services/metrics-collector.ts:34-88).
  • Post history tracking: Each post recorded with platform, timestamp, day-of-week, hour-of-day for pattern analysis (content-queue.ts:131-165).
  • Performance analysis: Weekly Gemini Flash analysis of last 30 days of metrics to extract actionable insights (topic performance, timing optimization, template performance, audience preferences) (metrics-collector.ts:173-237).
  • Evergreen repost suggestions: Sunday 6PM job surfaces high-performing posts (5+ likes, 2+ weeks old) for potential reposting (scheduler.ts:524-556).

Memory & Learning System

  • Hybrid vector+keyword memory: AgentMemoryService stores feedback, performance, preferences, patterns with pg_vector embeddings via Gemini for semantic search (src/services/agent-memory.ts:43-649).
  • Voice profile learning: Nightly consolidation pipeline analyzes edit/feedback episodes to build structured voice profile (tone, formality, humor style, platform-specific styles, topic framings, hard rules) (src/services/memory-consolidation.ts:19-60).
  • Procedural rule promotion: When a pattern reaches 3+ episodes, it becomes a strict rule injected into all generation prompts (agent-memory.ts:504-528).
  • Episode compression: Old low-salience episodes (>30 days) get truncated to save space (agent-memory.ts:610-648).

Proactive Agent Personality

  • Morning briefing (8:30 AM weekdays): Streak data, today's plan, insights, motivational close (src/services/proactive-agent.ts:67-80, scheduler.ts:169-173).
  • Smart nudges (3 PM weekdays): Context-aware reminders (scheduler.ts:176-180).
  • Milestone celebrations: Streak tracking, total posts, engagement milestones (proactive-agent.ts:28-32, scheduler.ts:183-188).
  • Trend alerts (3x daily weekdays): Surfacing trending topics (scheduler.ts:190-195).
  • Weekly retrospective (Friday 4 PM): Evolving voice, performance reflection (scheduler.ts:197-203).

Competitor Comparison

Buffer

CapabilityThis AgentBuffer
Platforms supportedTwitter, LinkedIn (2)Twitter, LinkedIn, Instagram, Facebook, Pinterest, TikTok, Mastodon, Bluesky, Threads, YouTube (10+)
Scheduling4 fixed weekly slots, adaptive configFlexible calendar UI, drag-and-drop, best-time suggestions
Content queueSupabase-backed with status lifecycleVisual queue with drag reordering, pause/resume
Analytics24h/72h metric pulls, weekly AI analysisReal-time dashboards, custom date ranges, exportable reports
AI content generationClaude-powered full pipeline (scrape->report->post)AI Assistant for captions/rephrasing
Engagement/repliesNot supportedEngagement inbox for replies across platforms
Team collaborationSingle-user Slack-basedMulti-user with approval workflows, roles, permissions
Content calendarWeek view via SlackVisual calendar with month/week/day views
Hashtag suggestionsNot supportedAI-powered hashtag suggestions
Link shortening/trackingNot supportedBuilt-in link shortening with click tracking

Hootsuite

CapabilityThis AgentHootsuite
Platforms supported210+ including YouTube, TikTok
Social listeningRSS feed discovery onlyFull social listening (keyword monitoring, sentiment analysis, brand mentions)
Engagement monitoringMetric collection only, no reply monitoringUnified inbox for all platforms, auto-assignment, sentiment tagging
Team workflowSingle-userEnterprise: team roles, approval chains, asset library
AnalyticsWeekly AI batch analysisReal-time dashboards, ROI tracking, competitive benchmarking
Content curation6 RSS feedsStreams, content suggestions, RSS, content library
Ad managementNot supportedPaid social ad management integration
CRM integrationNot supportedSalesforce, HubSpot integrations

Sprout Social

CapabilityThis AgentSprout Social
Social listeningRSS discoveryDeep listening: brand mentions, competitor tracking, sentiment analysis, crisis detection
EngagementPost-and-forgetSmart Inbox: unified cross-platform inbox with reply, like, retweet directly
Reply automationNot supportedSuggested replies, saved replies, chatbot flows
Audience analyticsDay/hour engagement patternsDemographic data, audience growth tracking, follower analysis
Competitive intelligenceNot supportedCompetitor benchmarking, share-of-voice analysis
ReportingInternal AI analysisPresentation-ready reports, custom report builder, export to PDF/CSV
Employee advocacyNot supportedEmployee advocacy platform for content amplification

LangChain Social Agent / AI-powered Social Tools

CapabilityThis AgentLangChain-style AI Agents
AI backboneClaude (Anthropic) + Gemini Flash for analysis/visionModular LLM (OpenAI, Anthropic, etc.) with tool chains
Content generationFull pipeline with dynamic prompts, voice learning, feedback loopTypically single-shot generation without persistent memory
Memory systemHybrid vector+keyword with consolidation, procedural rules, voice profilesTypically conversation-window memory or external vector store
Video generationFull Remotion pipeline with TTS, AI images, quality gatingRare; most focus on text/image only
Proactive behaviorMorning briefings, trend alerts, milestone celebrationsTypically reactive only
Learning loopFeedback -> episodes -> consolidation -> rules -> improved generationBasic RAG; few have closed-loop learning from post-performance
ObservabilitySlack-based with review cardsVaries; LangSmith/LangFuse for traces

Later / SocialBee

CapabilityThis AgentLater / SocialBee
Content recyclingEvergreen repost suggestions (Sunday cron)Full content recycling: category-based queues, automatic resharing on schedule
Visual planningText-based Slack interfaceVisual Instagram grid planner, media library
Content categoriesSoft type mix (link/media/remotion/text)Category-based queues with custom ratios and rotation
Best time to postAdaptive scheduling config (not yet active on enough data)Data-driven best time recommendations per platform
Link in bioNot supportedLinkin.bio / Smart.bio landing pages
Bulk schedulingOne-at-a-time via SlackCSV bulk upload, bulk scheduling
Content variationsThread generationA/B testing of post variants, content variations per platform

Improvement Opportunities (Ranked by Impact)

HIGH Impact

  1. Engagement/Reply Monitoring & Social Inbox

    • Gap: The agent posts content and collects metrics, but never monitors replies, mentions, or DMs. Twitter client has replyToTweet (twitter.ts:81-106) but it is only used for threads, never for community engagement. LinkedIn client has no reply capability at all.
    • Competitor reference: Buffer, Hootsuite, Sprout Social all have unified engagement inboxes. Sprout Social's Smart Inbox is a core differentiator.
    • Recommended approach: Add a mentions-monitor cron that polls Twitter mentions/replies via v2.userMentionTimeline() and LinkedIn notifications. Surface new mentions in Slack with one-click reply buttons. Use Claude to draft reply suggestions.
    • Why HIGH: Community engagement is the single biggest driver of organic growth. Posting without engaging is like broadcasting into a void. This is the most glaring gap vs. every competitor.
  2. A/B Variant Testing

    • Gap: The agent generates one Twitter and one LinkedIn variant per post. There is no mechanism to test multiple variants of the same post and measure which performs better. The content generator could easily produce 2-3 variants, but the infrastructure to split-test and track winners does not exist.
    • Competitor reference: Later and SocialBee offer content variations. Buffer has experimented with A/B testing. Sprout Social tracks variant performance.
    • Recommended approach: Generate 2 variants per post at content-generation time. Post variant A, then variant B a week later (or on different platforms). Track which gets better engagement, feed results back into the memory/insights system.
    • Why HIGH: The entire learning loop (memory -> insights -> prompt augmentation) already exists. A/B testing would dramatically accelerate learning about what works, multiplying the value of the existing intelligence infrastructure.
  3. Additional Platform Support (Instagram, Bluesky, Threads)

    • Gap: Only Twitter and LinkedIn are supported. PostingService (posting-service.ts:10-17) hardcodes two clients. IntakeService platform validation only allows "both", "twitter", "linkedin" (intake-service.ts:197-201).
    • Competitor reference: Buffer supports 10+ platforms. Hootsuite supports 10+. Even niche tools like Later started as Instagram-first.
    • Recommended approach: Start with Bluesky (AT Protocol, open API, growing developer audience) and Instagram (Meta Graph API for business accounts, huge reach). Add a BlueskyClient following the same interface pattern as TwitterClient. Extend PostingService routing.
    • Why HIGH: Platform diversity is a core expectation of any social management tool. The developer audience is increasingly on Bluesky. Instagram is table-stakes for reach.
  4. Real-time Analytics Dashboard

    • Gap: Analytics are only viewable through Slack notifications (weekly digest, morning briefing) and internal AI analysis. No persistent dashboard, no trend visualization, no on-demand reporting.
    • Competitor reference: Buffer, Hootsuite, and Sprout Social all have web dashboards with charts, date pickers, and export functionality.
    • Recommended approach: Build a lightweight web dashboard (Next.js or similar) that queries post_history and performance_insights tables directly from Supabase. Show engagement trends, best-performing posts, content type breakdown, posting streaks.
    • Why HIGH: Visibility into performance is essential for decision-making. Currently, insights are generated but buried in the system. A dashboard makes the intelligence layer tangible and actionable.

MEDIUM Impact

  1. Content Calendar UI

    • Gap: The queue is managed entirely through Slack slash commands. There is no visual calendar. The getItemsForWeekOffset method exists (content-queue.ts:242-273) but only powers Slack text output.
    • Competitor reference: Buffer and Later have visual drag-and-drop calendars. Hootsuite has a planner view.
    • Recommended approach: Web-based weekly/monthly calendar view showing scheduled, pending, and posted items. Allow drag-to-reschedule and click-to-edit.
  2. Hashtag Strategy & Suggestions

    • Gap: No hashtag generation or optimization. Posts are generated without hashtag consideration. The prompts do not instruct Claude to include or optimize hashtags.
    • Competitor reference: Buffer, Later, and Hootsuite all offer hashtag suggestions. Sprout Social tracks hashtag performance.
    • Recommended approach: Add hashtag generation to the content generation prompts, with platform-specific strategies (Twitter: 1-3 targeted hashtags, LinkedIn: 3-5 industry hashtags). Track hashtag performance in post_history.
  3. Link Tracking & UTM Parameters

    • Gap: URLs are shared as-is. No link shortening, no UTM parameter injection, no click tracking.
    • Competitor reference: Buffer has built-in link shortening with analytics. Hootsuite integrates with Bitly.
    • Recommended approach: Auto-append UTM parameters (source=social, medium=platform, campaign=content_type) to shared URLs. Integrate with a link shortener API.
  4. Bulk Content Scheduling

    • Gap: Content is added one item at a time through Slack or RSS discovery. No way to upload a batch of content or schedule a week at once.
    • Competitor reference: Later and Buffer support CSV bulk upload. SocialBee has category-based batch scheduling.
    • Recommended approach: Add a /bulk Slack command that accepts multiple URLs or topics, or support CSV upload through Slack file attachment.
  5. Content Recycling with Decay Awareness

    • Gap: Evergreen repost suggestions exist (scheduler.ts:524-556) but are basic -- just surfaces posts with 5+ likes that are 2+ weeks old. No intelligent refresh/rephrase, no cooldown tracking, no category rotation.
    • Competitor reference: SocialBee's core differentiator is category-based content recycling with automatic rotation. Later offers similar features.
    • Recommended approach: Enhance the evergreen system with: content freshness scoring, automatic rephrase via Claude before repost, cooldown periods per post, category-based rotation to ensure variety.

LOW Impact

  1. Multi-user Team Collaboration

    • Gap: Single-user system controlled via one Slack channel. No role-based access, no multi-approver workflow, no shared content library.
    • Competitor reference: Hootsuite and Sprout Social are enterprise-grade with teams, roles, and approval chains.
    • Recommended approach: Low priority for a personal/small-team agent. Would require significant auth infrastructure.
  2. Competitive/Brand Monitoring

    • Gap: No social listening beyond RSS feeds. Cannot monitor brand mentions, competitor activity, or industry conversations.
    • Competitor reference: Sprout Social and Hootsuite have deep social listening with sentiment analysis and crisis detection.
    • Recommended approach: Add Twitter search API queries for brand keywords and competitor handles. Surface in Slack as discovery items.
  3. Employee Advocacy / Content Amplification

    • Gap: Not applicable for current single-user setup.
    • Competitor reference: Sprout Social has an employee advocacy module.

Summary

The social media agent has a remarkably strong AI-powered content generation pipeline -- its multi-step generation (scrape -> report -> post), dynamic prompt augmentation with learned voice profiles, and closed-loop performance learning system are more sophisticated than what most competitors offer. The Remotion video pipeline with TTS and AI image generation is a unique differentiator that none of the compared tools match.

Core strengths vs. competitors:

  • Deepest AI integration (Claude for generation, Gemini for analysis/vision/embeddings, fal.ai for TTS/images)
  • Self-improving system (feedback -> memory -> consolidation -> procedural rules -> better output)
  • Proactive personality layer (morning briefings, milestone celebrations, smart nudges)
  • Full video generation pipeline with quality gating

Critical gaps (in priority order):

  1. Engagement monitoring -- the agent is "post-and-forget" with no community interaction capability
  2. A/B variant testing -- the learning infrastructure exists but only tests one variant per post
  3. Platform coverage -- only 2 platforms vs. industry standard of 6-10
  4. Analytics visibility -- intelligence is generated but locked inside the system with no dashboard

The highest-ROI improvements would be engagement monitoring (drives organic growth) and A/B testing (accelerates the existing learning loop). Platform expansion to Bluesky and Instagram would bring the agent closer to feature parity with competitors on distribution reach.

Related Documents