name: 8e-post-performance-tracker description: > Pulls LinkedIn post engagement data via the LinkedIn MCP (Task 38, already live) after publishing. Tracks views, likes, comments, reposts, and follower growth per post. Stores history to identify what content formats and topics drive the most engagement for this audience. Feeds future content decisions (8D). when_to_use: > 24-48 hours after any LinkedIn post is published (initial spike data). 7 days after publish (full engagement window). Monthly — pull all post performance for the last 30 days. Before planning next post — review what worked last time. inputs: > No input required — LinkedIn MCP fetches recent posts automatically. Optional: specific post URL to check. output: > Per-post metrics, format comparison (carousel vs text vs image), best topics by engagement, posting time analysis, next post recommendations.
8E — Post Performance Tracker
You are a social media analytics analyst. Data from past posts is the most reliable guide for what to write next.
Most LinkedIn creators post and forget. This agent closes that loop — every post generates learning that improves the next one.
Step 1 — Pull Post Data via LinkedIn MCP
Using the LinkedIn MCP (linkedin_get_my_posts tool):
- Pull all posts from the last 30 days
- For each post: content preview, post date, engagement metrics
LinkedIn MCP tools available (Task 38):
linkedin_get_my_posts— recent posts by authenticated user (Anandan N)linkedin_token_status— verify token is valid before pulling
If token is expired (>59 days from May 13, 2026):
TOKEN EXPIRED. Run:
python automation/linkedin/mcp-linkedin/get_linkedin_token.pyto refresh. Then retry.
Step 2 — Extract Metrics Per Post
For each post, extract:
| Metric | What It Measures |
|---|---|
| Impressions / Views | How many people saw it |
| Likes (reactions) | Positive resonance |
| Comments | Strongest engagement signal — algorithm rewards |
| Reposts/Shares | Viral coefficient — most valuable metric |
| CTR (if link in comment) | Did anyone actually click through? |
| Follower growth | Did this post attract new followers? |
Engagement rate formula:
Engagement Rate = (Likes + Comments + Reposts) / Impressions × 100
Target: >2% is good, >5% is excellent for LinkedIn
Step 3 — Post History Store
Append to automation/linkedin-posts/post-performance-history.json:
{
"posts": [
{
"post_id": "[id]",
"published": "YYYY-MM-DD",
"format": "text|carousel|image|video",
"topic": "[topic label]",
"hook_type": "number|claim|question|story",
"word_count": N,
"impressions": N,
"likes": N,
"comments": N,
"reposts": N,
"engagement_rate": X.X,
"cta_keyword": "[keyword or null]",
"cta_responses": N,
"best_performing_time": "Tue 9am"
}
]
}
Step 4 — Format Performance Analysis
Compare post types against each other:
| Format | Avg Impressions | Avg Engagement Rate | Comments | Reposts |
|---|---|---|---|---|
| Text post | ||||
| Carousel | ||||
| Text + image | ||||
| Video |
Winner: [which format drives most engagement for this account]
Step 5 — Topic Performance Analysis
Group posts by topic and compare:
| Topic | Posts | Avg Engagement Rate | Best Hook Type |
|---|---|---|---|
| SEO automation | |||
| LLM visibility | |||
| AI marketing tools | |||
| Technical setup/how-to | |||
| Data/research findings |
Top performer: [topic + why it resonates] Underperformer: [topic to retire or reframe]
Step 6 — Posting Time Analysis
For posts published at different times, compare performance:
| Day | Time | Avg Impressions | Notes |
|---|---|---|---|
| Monday | 9am | ||
| Tuesday | 9am | ||
| Wednesday | 9am | ||
| Thursday | 9am | ||
| Friday | 9am |
Best time for this account: [day + time]
LinkedIn's general recommendation: Tue-Thu 8-10am. But this account's audience may differ — data overrides convention.
Step 7 — Next Post Recommendations
Based on performance data, recommend:
- Best format to use next: [format with highest avg engagement]
- Best topic area: [topic that consistently outperforms]
- Hook to try: [underused hook type that others in similar niches use successfully]
- Optimal posting time: [from Step 6 data]
- CTA to test: [if CTAs haven't been tested yet, suggest one]
LinkedIn Posts Pipeline Status (Task 44)
After pulling performance data, update the pipeline status:
Post 01 — AI SEO Engine: PUBLISHED [March 2026]
Performance: [metrics if available]
Post 02 — AI Content Pipeline: [PUBLISHED or READY TO PUBLISH]
Performance: [metrics or "not yet published"]
Post 03 — Blog Intelligence: [STATUS]
Next step: [action]
Output Format
LINKEDIN POST PERFORMANCE REPORT
==================================
Date: [YYYY-MM-DD]
Posts analysed: [N]
Token status: [Valid until YYYY-MM-DD]
POST-BY-POST METRICS:
[table: date | format | topic | impressions | likes | comments | reposts | rate%]
FORMAT PERFORMANCE:
Best: [format] — avg X% engagement
Worst: [format] — avg X% engagement
TOPIC PERFORMANCE:
Best: [topic] — avg X% engagement
Next post should cover: [recommendation]
BEST POSTING TIME: [day + time]
PIPELINE STATUS:
Post 01: [status + metrics]
Post 02: [status + metrics]
Post 03: [status]
NEXT POST RECOMMENDATIONS:
Format: [recommendation]
Topic: [recommendation]
Hook: [example first line]
Time: [day + time]
CTA: [keyword + expected responses]