Generate rich personality profiles from social media data exports (Twitter/X, LinkedIn, Instagram). Use when a user wants to analyze their social media presence, create a personality profile for AI personalization, understand their communication patterns, or extract insights from their digital footprint. Triggers on requests like "analyze my Twitter data", "create a personality profile", "what can you learn about me from my posts", "personalize an AI for me", or when users provide social medi...
Scanned 2/12/2026
Install via CLI
openskills install petekp/claude-code-setup---
name: personality-profiler
description: Generate rich personality profiles from social media data exports (Twitter/X, LinkedIn, Instagram). Use when a user wants to analyze their social media presence, create a personality profile for AI personalization, understand their communication patterns, or extract insights from their digital footprint. Triggers on requests like "analyze my Twitter data", "create a personality profile", "what can you learn about me from my posts", "personalize an AI for me", or when users provide social media export files.
---
# Personality Profiler
Generate comprehensive, extensible personality profiles from social media data exports.
## Overview
This skill analyzes exported social media data to create detailed personality profiles suitable for:
1. AI assistant personalization (training data for personalized responses)
2. Self-reflection and pattern discovery
## Workflow
1. **Receive data** — User provides exported data files (JSON/CSV)
2. **Parse data** — Extract posts, comments, interactions using platform-specific parsers
3. **Analyze dimensions** — Evaluate across 8 personality dimensions
4. **Generate profile** — Output structured profile in extensible JSON format
5. **Summarize insights** — Provide human-readable summary
## Supported Platforms
| Platform | Export Type | Key Files |
|----------|-------------|-----------|
| Twitter/X | ZIP archive | `tweets.js`, `like.js`, `profile.js` |
| LinkedIn | ZIP archive | `Profile.csv`, `Connections.csv`, `Comments.csv`, `Shares.csv` |
| Instagram | ZIP archive | `content/posts_1.json`, `comments.json`, `profile.json` |
For detailed format specifications, see [references/platform-formats.md](references/platform-formats.md).
## Analysis Dimensions
Analyze content across these 8 dimensions:
### 1. Communication Style
- **Tone**: formal ↔ casual, serious ↔ playful, direct ↔ diplomatic
- **Verbosity**: concise ↔ elaborate, uses bullet points vs paragraphs
- **Vocabulary**: technical level, industry jargon, colloquialisms
### 2. Interests & Expertise
- **Topics**: recurring themes, domains of focus
- **Depth**: surface mentions vs deep engagement
- **Evolution**: how interests have changed over time
### 3. Values & Beliefs
- **Priorities**: what matters most (inferred from emphasis)
- **Advocacy**: causes supported or promoted
- **Philosophy**: worldview indicators
### 4. Social Patterns
- **Engagement style**: initiator vs responder, commenter vs creator
- **Network orientation**: broad reach vs tight community
- **Interaction tone**: supportive, challenging, neutral
### 5. Emotional Expression
- **Range**: emotional vocabulary breadth
- **Valence**: positive/negative tendency
- **Triggers**: what elicits strong reactions
### 6. Cognitive Style
- **Reasoning**: analytical vs intuitive, data-driven vs narrative
- **Complexity**: nuanced vs straightforward positions
- **Openness**: receptivity to new ideas
### 7. Professional Identity
- **Domain**: industry, role, expertise areas
- **Aspirations**: career direction signals
- **Network**: professional relationship patterns
### 8. Temporal Patterns
- **Activity rhythms**: when they post, reply, engage
- **Content cycles**: seasonal or event-driven patterns
- **Growth trajectory**: how expression has evolved
## Profile Schema
Output profiles in this extensible JSON structure:
```json
{
"version": "1.0",
"generated_at": "ISO-8601 timestamp",
"data_sources": [
{
"platform": "twitter|linkedin|instagram",
"date_range": {"start": "YYYY-MM-DD", "end": "YYYY-MM-DD"},
"item_count": 1234
}
],
"profile": {
"summary": "2-3 paragraph narrative summary",
"dimensions": {
"communication_style": {
"confidence": 0.0-1.0,
"traits": {
"formality": {"value": -1.0 to 1.0, "evidence": ["quote1", "quote2"]},
"verbosity": {"value": -1.0 to 1.0, "evidence": []},
"directness": {"value": -1.0 to 1.0, "evidence": []}
},
"patterns": ["pattern1", "pattern2"],
"recommendations_for_ai": "How an AI should communicate with this person"
}
},
"notable_quotes": [
{"text": "quote", "context": "why notable", "dimension": "which dimension"}
],
"keywords": ["term1", "term2"],
"topics_ranked": [
{"topic": "name", "frequency": 0.0-1.0, "sentiment": -1.0 to 1.0}
]
},
"extensions": {}
}
```
The `extensions` field allows adding custom dimensions without breaking compatibility.
## Process
### Step 1: Data Ingestion
When user provides files:
1. Identify platform from file structure
2. Locate key content files (see platform table above)
3. Parse using appropriate format handler
4. Normalize to common internal structure:
```json
{
"items": [
{
"id": "unique_id",
"type": "post|comment|share|like",
"timestamp": "ISO-8601",
"content": "text content",
"metadata": {
"platform": "twitter",
"engagement": {"likes": 0, "replies": 0, "shares": 0},
"context": "reply_to_id or null"
}
}
]
}
```
### Step 2: Content Analysis
For each dimension:
1. **Extract signals** — Find relevant content snippets
2. **Score traits** — Rate on dimension-specific scales
3. **Gather evidence** — Collect representative quotes
4. **Calculate confidence** — Based on data volume and consistency
Minimum thresholds for confident analysis:
- 50+ posts for basic profile
- 200+ posts for detailed profile
- 500+ posts for high-confidence profile
If below thresholds, note reduced confidence in output.
### Step 3: Profile Generation
1. Populate all dimension objects in schema
2. Write narrative summary synthesizing key findings
3. Extract notable quotes (5-10 most characteristic)
4. Rank topics by frequency and engagement
5. Generate AI personalization recommendations
### Step 4: Output Delivery
Provide two outputs:
1. **JSON profile** — Complete structured data (save as `personality_profile.json`)
2. **Markdown summary** — Human-readable insights document
## AI Personalization Recommendations
For each dimension, include specific guidance for AI systems:
**Example recommendations:**
```
communication_style.recommendations_for_ai:
"Use a conversational but informed tone. Avoid excessive formality.
Include occasional humor. Lead with conclusions, then supporting detail.
Match their tendency for medium-length responses (2-3 paragraphs)."
interests.recommendations_for_ai:
"Can reference machine learning, distributed systems, and startup culture
without explanation. Assume familiarity with Python ecosystem. May enjoy
tangential connections to philosophy of technology."
```
## Handling Multiple Platforms
When analyzing data from multiple platforms:
1. Process each platform separately first
2. Cross-reference for consistency
3. Note platform-specific behaviors (e.g., more formal on LinkedIn)
4. Weight professional platforms for work identity
5. Weight personal platforms for authentic voice
6. Merge into unified profile with platform annotations
## Privacy Considerations
Before processing:
1. Confirm user owns the data
2. Note that analysis stays local (no external API calls for content)
3. Offer to redact specific people/topics if requested
4. Output can be edited before use
## Extending the Profile
The profile schema supports extensions:
```json
{
"extensions": {
"custom_dimension": {
"confidence": 0.8,
"traits": {},
"patterns": [],
"recommendations_for_ai": ""
},
"domain_specific": {
"developer_profile": {
"languages": ["python", "rust"],
"paradigm_preference": "functional-leaning"
}
}
}
}
```
Users can request custom dimensions by describing what they want analyzed.
No comments yet. Be the first to comment!