What the agent does
The agent reads the connected Buffer account's channels, sent posts and available post metrics for the last 30 days. The Buffer entry in rush/shared/connectors/integrations.ts says the connector can "check your channels and post metrics" and names https://mcp.buffer.com/mcp. This assignment uses those reads, not the connector's publishing tools. The first step establishes which channels and metrics the authorized account actually exposes, plus the report cutoff and timezone. An inaccessible channel is listed as a coverage gap.
Engagement rate needs a written definition before posts can be ranked. The agent inspects the metrics returned for each channel, states the numerator and denominator it uses, and compares posts only where that definition is available. It does not combine reach-based rates with impression-based rates in one leaderboard. A missing denominator remains missing; zero impressions does not become a calculated rate. The report keeps raw counts beside the derived rate so someone can reproduce the ordering and see small-sample effects.
Within each channel, the agent selects the top and bottom five eligible posts and records their links, publication timestamps, formats and supporting metrics. If fewer posts have usable data, it reports the smaller set. Posting-time patterns use the declared timezone rather than mixing UTC with a manager's local clock. Format comparisons separate repeated copies and unusually recent posts from a supposed trend. The agent treats correlations as observations, not evidence that a particular hour or image caused engagement.
The output is social.md, with a methods section, channel tables, recurring patterns and three suggestions for the next month. The displayed request is a minimal task body; before sending a live Buffer job, explicitly add the connected MCP server's id through connections as the developer API quickstart describes. Mentioning Buffer in input does not select an account. If the connection lacks historical metrics, the agent reports that limitation instead of creating numbers or reaching for an unrelated social account.
Start it with one API call
POST https://api.prix.dev/o/{org}/sessions with this body:
{
"agent": "claude",
"input": "Use the explicitly selected Buffer connection to read sent posts and available metrics for the last 30 days. If its tools are unavailable, stop and explain the missing connection. Write social.md with the reporting window and timezone, the engagement-rate definition and raw counts per channel, the top and bottom five eligible posts per channel, publication-time and format patterns, and three suggestions for next month. Link every ranked post. State missing metrics and show fewer rows when fewer posts qualify. Do not invent denominators, compare incompatible channel rates, publish posts, change queues or schedule anything."
}- Get an API key. In the console, open Settings, then API keys, and create a key for your org. Send it in the Authorization header as a Bearer token.
- Send the request. POST the body in request.json to https://api.prix.dev/o/{org}/sessions, with your repository as the resources URL. The run starts in its own cloud sandbox.
- Read what came back. Follow the run on its live stream or wait for the run.completed webhook, then read the result and its trajectory.
What comes back
social.md starts with the scope: account, channels, reporting dates, extraction time and any unavailable data. Each channel gets its own ranking tables with post links, publication time, format, engagement counts, denominator and calculated rate. The recommendations point back to those rows and distinguish a repeatable observation from a hypothesis that needs another month of posts.
Before acting on the recommendations, check a high-ranked post and a low-ranked post against Buffer, then reproduce their rate calculation. Look for recent posts that have had less time to collect impressions, paid distribution that makes comparisons uneven and a small denominator that exaggerates a rate. The finished session returns the answer and report artifact; its transcript keeps the source tool calls and outputs available for inspection.
Run it on every monthly content review
Use your reporting scheduler to submit a session after the monthly review window closes. Put exact start and end dates in input when you need comparable reports, explicitly select the Buffer connection, and use an Idempotency-Key tied to that reporting window. A completion webhook lets your server fetch social.md when it is ready. Save the report for the review meeting; do not turn a performance summary into an automatic publishing decision.
The use case this job follows, with its automation and trigger: Produce a report or file, no repo.
Why run it on Rush?
Channel metrics rarely arrive as one tidy table with the same fields. An agent can inspect the actual responses, normalize the compatible parts in its own sandbox and write down the exceptions. Rush keeps that work separate from your laptop's spreadsheet tabs. The value is a report whose rate calculation can be checked, rather than a list of impressive-looking posts with no denominator.
The cloud run also keeps the extraction and the reasoning together. When someone asks why a post won, its source metrics and the calculation remain part of the recorded work. Independent reporting windows can be submitted without occupying a local terminal, while the caller still controls which Buffer account is selected and when a report is sent for human review.
Frequently asked questions
Can engagement rates be compared across social networks?
Only when the underlying metrics support the same definition, and even then the audience context matters. This task ranks posts within each channel and spells out the denominator. Unsupported cross-network comparisons stay out of the report.
Will the agent change our Buffer queue?
No, the request is read-only and explicitly forbids publishing, scheduling and queue changes. Suggestions are written in social.md for a person to consider. They do not become scheduled posts.
What if Buffer does not return a post's impressions?
The report marks the denominator unavailable and leaves that post out of rankings requiring it. It can still show the available raw metrics separately. Missing impressions must not be guessed from likes or follower counts.
How do I retrieve the report?
Read GET /o/{org}/sessions/{id} for the finished answer and artifact list. Each file artifact carries a download URL and expiry. Read the session again to refresh an expired report link.