1
Upload Profiles
2
Generate Personas
3
Setup Test
4
View Results

How It Works

Transform social media engagement data into predictive insights using AI-powered synthetic personas

The Pipeline

1

Data Input

Real User Profiles with Engagement History

User bio & demographics
Content clicked vs viewed
Platform (LinkedIn/Twitter)
Last 30 days activity
2

Persona Generation

AI analyzes engagement patterns and creates behavioral personas

Example Analysis:

"This user clicks on automation content but ignores strategic analysis. They prefer practical tutorials over theory. Engagement peaks with AI/ML topics."

Demographics
Age, location, role
Psychographics
Big Five traits
Behavioral
Content prefs, goals
3

Content Testing

Each persona evaluates your content options

Persona: Sarah (Marketing Dir)

"I'd choose [A] - practical tools are more actionable than theory"

A
8/10
Persona: Mike (Tech Lead)

"[A] has code examples which I need for implementation"

A
9/10
4

Aggregated Insights

Statistical analysis + AI-generated summary

Vote Distribution
75%
chose Option A
Avg. Likelihood
8.2
out of 10
AI Summary: "Respondents prefer practical, actionable content over strategic analysis..."

Why "Synthetic" Personas?

Traditional personas are fictional. These are data-grounded - they mirror real user behavior from actual engagement data.

Key difference: Instead of guessing "marketing professionals like tools," we analyze what they actually clicked on.

How It Predicts Behavior

The AI learns from past engagement patterns (clicks vs impressions) to predict future content preferences.

Analyzes what topics/formats drove clicks
Identifies behavioral patterns and preferences
Simulates how that user would respond to new content

Use Cases

📱

Ad Testing

Test headline variations before spending on campaigns

📧

Email Subject Lines

Predict which subject lines drive opens in your audience

📝

Content Strategy

Validate content ideas before production

Technical Architecture

User Profiles (JSON)
↓ API: /api/generate-personas
→ OpenAI Agent SDK (Persona Generator)
→ LLM analyzes engagement patterns
↓ Generated Personas
↓ API: /api/query-personas
→ OpenAI Agent SDK (Research Moderator)
→ Each persona evaluates content options
↓ Aggregated Results (votes, scores, insights)
Built with: FastAPI, OpenAI Agent SDK, Pydantic
View API Docs →

MCP Integration

Expose this API as tools for AI agents using the Model Context Protocol (MCP).

MCP Server Configuration

{
  "mcpServers": {
    "synthetic-personas": {
      "url": "https://synthetic.smartabout.ai",
      "tools": ["generate_personas", "query_personas"]
    }
  }
}

Tool: generate_personas

Generate synthetic personas from user profiles with engagement history.

{
  "name": "generate_personas",
  "description": "Generate synthetic personas from user profiles",
  "inputSchema": {
    "type": "object",
    "properties": {
      "profiles": {
        "type": "array",
        "description": "User profiles with bio and activity_log",
        "items": {
          "type": "object",
          "properties": {
            "user_id": { "type": "string" },
            "bio": { "type": "string" },
            "job_title": { "type": "string" },
            "activity_log": { "type": "array" }
          }
        }
      }
    },
    "required": ["profiles"]
  }
}

Tool: query_personas

Query personas with content options to predict engagement.

{
  "name": "query_personas",
  "description": "Query personas with content options for A/B testing",
  "inputSchema": {
    "type": "object",
    "properties": {
      "personas": {
        "type": "array",
        "description": "Previously generated personas"
      },
      "question": {
        "type": "string",
        "description": "e.g., 'Which headline would you click?'"
      },
      "options": {
        "type": "array",
        "description": "Content options with id and headline",
        "items": {
          "type": "object",
          "properties": {
            "id": { "type": "string" },
            "headline": { "type": "string" }
          }
        }
      }
    },
    "required": ["personas", "question", "options"]
  }
}

Example Agent Usage

# Agent prompt example:
"Using my audience data, generate personas and test which
headline performs better: 'Save Time with AI' vs 'Boost ROI
with Automation'. Return the winner with reasoning."

# Agent calls:
1. generate_personas(profiles=audience_data)
2. query_personas(personas=result, question="Which headline?",
   options=[{id:"A", headline:"Save Time..."}, {id:"B", ...}])
3. Returns: "Option A wins 65% - audience prefers time-saving messaging"