Audience persona studio for brand and product marketers

By General Input

Pick a brand, competitor, category or hashtag and get persona cards from real social conversation, saved each quarter so you can track how your audience shifts.

Integrations

  • Infegy
  • Notion
  • General Input Database

Type

App

Categories

  • Marketing
  • Product

Build me a persona studio that our brand strategists open whenever they are writing a messaging brief. It is an internal app anchored on Infegy social listening, with Notion for filing finished briefs and the General Input Database for saved history. The point of the app is that persona sets are versioned: a strategist can open last quarter's version of the same segment and see how the audience drifted, rather than regenerating a one-off report every time.

The home screen is a segment library. A segment is one of four kinds: our own brand, a competitor, the whole category, or a campaign hashtag. Each saved segment stores a display name, its kind, and the Infegy Starscape query JSON behind it in the General Input Database, so strategists reuse segments instead of rewriting queries. Let them create, edit and delete segments in the app, and show the kind as a visible label on each one since the comparison view leans on it.

Preflight before anything expensive runs. When a strategist picks a segment and a date range, a handler calls the Infegy Validate Query and Get Estimated Result Count operation and displays the estimated record count right next to the Generate button. If the estimate falls under a configurable threshold (default 500 posts), show a clear warning that the segment has too little conversation behind it to produce trustworthy personas, and require an explicit confirmation before generating. Nobody should burn quota on a segment with almost no conversation, and a validation error on the query should surface as a readable message rather than a silent failure.

Generating a persona set. When the strategist confirms, a handler calls Infegy Generate AI Personas across the authors of posts matching the segment query, Get Topics Analysis for the clustered themes behind the conversation, and Download Post Records for real example posts along with their emotions and sources. Render one card per persona in a responsive grid, ordered by share of conversation descending. Each card shows the persona name and description, its share of the conversation as a percentage, its dominant emotions, the top themes from topic analysis, and three to five real example posts with author handle, platform and a link to the original.

Persist every generated set with its date. Use the General Input Database with tables along the lines of segments, persona_sets (segment id, generated date, date range covered, estimated record count), personas (persona set id, name, description, share of conversation, emotions, themes) and example_posts (persona id, body, author, source, url, posted date). Store the JSON-shaped fields as serialized text and chunk any bulk inserts so a statement never binds more than 100 values. Each segment gets a version dropdown listing past sets by date; selecting an older version renders that historical snapshot straight from the database without calling Infegy again. Nothing is ever overwritten.

Side by side comparison. A compare view puts two selections in two columns: two different segments, so our buyers sit against a competitor's audience, or two dates of the same segment, so this quarter sits against last. When a persona name or a theme appears on both sides, highlight the difference in share of conversation so drift is visible at a glance rather than something the strategist has to eyeball.

Every persona set has a "Write the messaging brief" button that kicks off a background agent embedded in the app. The agent takes the generated personas, the topic clusters, and an Infegy Generate AI Summary of the segment conversation, and writes a full messaging brief covering: who this audience actually is, the language they use in their own words, what they complain about, the objections they are likely to raise against our messaging, where they talk (which platforms and communities), and three messaging angles, each one backed by a real quoted post pulled from the downloaded records. The agent then files the brief as a Notion page using Create a Page in the team's brief library database, and writes the resulting Notion page id and URL back onto the persona set row so the app renders a link to the brief on the card. Show the agent's progress and any failure state on the card while it runs.

A Briefs tab lists everything the team has filed, read with Notion Query a Database against the brief library, so a strategist can browse past briefs and jump to the persona set each one came from without leaving the app.

Two rules to bake in. Every quote displayed anywhere in the app or in a generated brief must be a real post returned by Infegy, shown with its source and never paraphrased or invented. And handle thin or empty results gracefully at each stage, since a hashtag segment can easily return nothing outside a campaign window. The users are brand strategists, consumer insights and product marketing, so keep the reading experience dense but legible, and make the app open straight into the segment library rather than an empty state.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesLiveKit live operations console for room moderationChat quality review board for LiveChat support leadsCompetitor LinkedIn ad watchlist with a permanent archiveLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInChase the paperwork every new client and vendor still owesLinkedIn creator sourcing and vetting workbench for B2B