Inspiration

Content teams move fast, but the workflow is fragmented: “find what’s trending” lives in one place, writing in another, visuals in another, and performance feedback rarely loops back into how the next post gets made. We wanted a single, Linear-style workspace where creation is a tight loop: detect → draft → design → publish → learn.

What it does

PostPen is a self-improving content agent that turns real-time signals into publish-ready post kits: • Ingests trends from live sources and clusters them into topics • Picks the best topic and a writing strategy (hook/tone/length) automatically • Generates post copy + a FLORA-ready creative brief • Lets you produce visuals in FLORA and attach exports back to the draft • Publishes to an owned feed (and optionally other channels) • Tracks performance and uses the results to improve future choices

How we built it

Linear-like UI • A fast, keyboard-first Next.js app with split-pane lists + detail views, command palette, filters, and status-driven workflow (Inbox → Drafts → Queue → Published).

Realtime signal → topic graph • A scheduled ingestion job pulls fresh items, normalizes them into signals, and clusters them into topics using lightweight keyword similarity (with room to swap in embeddings later).

Agents that act • Airia runs two agents: 1. Planner: selects the topic and the “arm” (hook template + tone + length) based on current policy + recent rewards. 2. Writer: generates the post kit (copy, CTA, tags) plus a structured FLORA prompt/brief for visuals.

Proof of improvement • Braintrust evaluates every draft version (clarity, relevance, non-spammy tone, style-guide adherence) and logs experiment results. • Lightdash sits on top of Supabase and visualizes the funnel (signals → drafts → published), arm performance, and score trends.

Learning loop • After publishing, PostPen computes a reward score from impressions/clicks (and optional reactions). • A lightweight bandit update shifts probability toward the best-performing writing strategies. • The current policy is stored and displayed in-app, so you can see the system evolving.

Challenges • Making “self-improvement” tangible in a short hackathon: we focused on measurable feedback (Braintrust scores + reward metrics) and visible policy changes. • Keeping generation + creative tooling coherent: FLORA isn’t API-first, so we designed a seamless “FLORA brief → export → attach” flow that still feels integrated. • Reducing demo risk: we publish to an owned feed first (reliable metrics), then optionally expand to social channels.

Built With

  • airia-agents-api
  • braintrust-evals
  • built-with-next.js/typescript-+-tailwind-(shadcn/ui)
  • flora
  • lightdash-analytics
  • supabase
Share this project:

Updates

Submission history