Prompt Library · Build Guide

Build your own content dashboard

Six copy-paste prompts that recreate the exact system FrameGen uses to run its Instagram: competitor intelligence, carousel generator, content planner, hook bank, and post scheduler. Paste them into Claude Code (or any AI coding agent) one at a time.

Bonus download Prefer the print version? Download the Content Dashboard Prompts PDF. Prefer a live version? See the FrameGen dashboard.

Before you start

Each prompt is self-contained and written for an AI coding agent — Claude Code, Cursor, or similar. You do not need to know how to code. You need to know your brand.

The order matters

Run prompt 00 first — it builds the shell every other view plugs into. After that, add views in any order. One prompt per session works best: let the agent finish, click through the result in your browser, then move to the next.

Personalize before you paste

What you will need

The honest part: the dashboard will not make your content good. It removes the friction — the research, the formatting, the scheduling — so your judgment has room to work. That part stays yours.

Prompt 00 · The foundation

A single-page app: fixed sidebar, five views, one warm editorial design system. Everything else builds on this.

Build a single-page content dashboard web app for my business Instagram
account.

STACK
- Python Flask backend, PostgreSQL for storage (connection string from
  DATABASE_URL in a .env file), vanilla JavaScript frontend — no framework,
  one HTML template, one app.js, one style.css.
- Organize the backend as Flask blueprints (one file per feature) and a db/
  package with one module per table. Create tables automatically on startup
  with CREATE TABLE IF NOT EXISTS.

LAYOUT
- Fixed left sidebar: my logo, a list of competitors I track, and a "run
  analysis" button.
- Main area with a horizontal nav of 5 views: Intelligence, Carousel
  Generator, Planner, Hook Bank, Scheduler. Only one view is visible at a
  time. Use a single resetNav() helper that hides ALL views and deactivates
  ALL nav buttons before showing the selected one — never toggle views
  individually (that causes two views showing at once).
- Each view loads its data from JSON endpoints under /api/ and renders
  client-side.

DESIGN SYSTEM
- Warm off-white background [#fbfbf9], near-black ink text [#111111], one
  red accent [#d24034] used sparingly. Never pure white or pure black.
- Card-based layout: white cards, 1.5px solid borders in a warm gray,
  10-14px rounded corners, generous padding.
- Typography: bold grotesque display font for headings, a clean sans for
  body, a monospace font for numbers and stats. Editorial, magazine-like,
  no gradients, no shadows heavier than a whisper.
- My business: [DESCRIBE YOUR BUSINESS IN ONE SENTENCE].

Start the dev server on port 5555 and confirm the empty shell renders with
all five views switchable.

Why vanilla JS: no build step means the agent iterates faster and you can read every file. For a tool only you use, a framework is overhead.

Prompt 01 · Competitor Intelligence

The view that earns the dashboard its keep. It watches your competitors, extracts what works, and turns it into a weekly brief you can act on.

Add a Competitor Intelligence view to my dashboard.

DATA
- I track these competitors: [@HANDLE1, @HANDLE2, @HANDLE3, @HANDLE4].
- Ingest their recent Instagram posts (caption, play count, like count, post
  URL, thumbnail) via [Apify / an unofficial API / manual JSON import — pick
  what I have access to]. Store each ingestion as a "run" so history is
  preserved; the dashboard always shows the latest run.

ANALYSIS (Claude API, model claude-opus-4-7)
For each competitor, generate and store:
- a 3-4 sentence strategy summary
- content patterns (bullet list of what they repeatedly do)
- every hook from their captions, classified by type: Question, Stat, Story,
  Bold Claim, How-To, Controversy

Then generate one WEEKLY BRIEF across all competitors:
- a TL;DR paragraph, 5 key findings, trending hooks, opportunity gaps
  (what nobody in my niche is doing that fits MY positioning), and trending
  tools they mention
- 3-4 carousel ideas for next week, each mapped to one of my content pillars:
  [LIST YOUR 3-4 CONTENT PILLARS]

Claude must read my BRAND.md and write everything in my voice.

VIEW
- Overview: stat tiles (posts analyzed, hooks collected, last run), the
  weekly brief in a large card, opportunity gaps, carousel idea cards tagged
  by pillar, trending tools, two charts (posting activity per competitor,
  hook-type distribution) using Chart.js.
- A "Recent hooks" table: thumbnail, hook text, competitor, type badge —
  paginated, 10 per page with prev/next.
- Clicking a competitor in the sidebar opens their report: summary, chips
  for posting frequency and top format, content patterns, top posts (show
  ONLY the hook per post — clicking a post opens a modal with the full
  caption), and their best hooks.
- Proxy competitor thumbnails through my backend so they render despite
  CORS, and cache them.

Prompt 02 · Carousel Generator

You write one hook. The system plans the narrative, generates the imagery, and renders finished slides in your brand style — then lets you fix anything by hand.

Add a Carousel Generator view to my dashboard.

INPUT
- A textarea for my hook — it goes on slide 1 word for word, never rewritten.
- A Style select (my visual styles: [e.g. "Product", "Fashion"]) and a
  slide-template multi-select dropdown: I pick which section templates to
  include and in what order; Cover and CTA slides are always locked in.
  If I pick nothing, Claude decides (5-8 slides).

PIPELINE (run server-side as a background job with progress polling)
1. Claude (claude-opus-4-7) reads my BRAND.md and plans the carousel:
   one brand_concept (a single product/story carried across all slides),
   per-slide headline + sub-line + an emphasis array (words to render in an
   italic serif accent color), and an image prompt per slide.
2. Image prompts must request TEXT-FREE photographs only — no screens,
   signs, paper, or packaging with words. All text is overlaid later. Every
   prompt names 3-5 palette hexes from my brand style.
3. Generate the images with [YOUR IMAGE API — e.g. Higgsfield, Flux,
   gpt-image-1].
4. A Python compositor (Pillow) renders 1080x1350 slides: lays out the
   images per template, then draws the headline/sub-line on top using my
   brand fonts, with emphasis words in [ACCENT HEX] italic serif.
5. The last slide is always a CTA: [YOUR CTA, e.g. "Comment PROMPTS"].

REVIEW
- Show the plan first (slides, concept, image prompts) for approval before
  spending image credits.
- Render finished slides in a horizontal strip. Each slide opens in a browser
  editor where I can click any text to edit it inline, drag decorations,
  recolor elements, and re-export the PNG at full size.
- A download button zips all slides, ready to upload.
The rule that saves the whole feature: never let the image model write words. It will mangle them. Generate clean photographs and draw the text in code — that is what makes slides look designed instead of generated.

Prompt 03 · Content Planner

A month at a glance. Every idea has a date and a pillar, so "what do I post today" stops being a question.

Add a Content Planner view to my dashboard.

- A monthly calendar grid (Monday-first), with prev/next month navigation and
  a "today" highlight.
- Each day cell holds zero or more idea chips. An idea has: date, text, a
  type from my content pillars [LIST YOUR PILLARS, e.g. pain-led,
  educational, project-showcase, tool-tip], and optional notes.
- Color-code the chips by type — muted editorial tints, not neon.
- Click an empty day to add an idea (inline form: text, type select, notes).
  Click an existing chip to edit or delete it. Ideas can be dragged to
  another day.
- Store ideas in a planner_ideas table with full CRUD endpoints under
  /api/planner/.
- Add a "send to scheduler" action on each idea that pre-fills the Scheduler
  compose form with the idea text.
- Below the calendar, show a small legend of my pillars and a count of
  planned vs empty days this month.

Why pillars and not just notes: the pillar tag is what shows you, at a glance, that you have planned twelve product posts and zero educational ones — the imbalance you cannot see in a notes app.

Prompt 04 · Hook Bank

Every scroll-stopping first line you meet, saved with enough context to reuse it. Your future captions start here instead of from a blank page.

Add a Hook Bank view to my dashboard.

- A hook entry has: the hook text, a reusable template version of it (e.g.
  "I tested [X] so you don't have to"), a type (Question, Stat, Story, Bold
  Claim, How-To, Controversy), a niche tag, view count of the post I found
  it in, the creator handle, and the post URL.
- "Save a hook" form at the top — collapsed by default behind a toggle
  header with a chevron, so the list stays the hero of the page.
- The list: one card per hook showing the text, type badge (color-coded per
  type), niche, formatted view count, creator, and a link to the source
  post. Newest first.
- Filters: a search box (matches text, template, and creator) plus facet
  chips for type and niche, built from whatever values exist in the data.
  Filters combine.
- Full CRUD under /api/hook-bank/ with a hook_bank table.
- Expose a "pick from bank" modal that other views can open (the Scheduler
  compose form will use it): searchable list, click to select, returns the
  hook text to the caller.

The template field is the point. A saved hook is trivia. A saved template is an asset. "This founder rebuilt her funnel in 4 days" becomes "This [WHO] [did the hard thing] in [timeframe]" — and now it works for your niche, not theirs.

Prompt 05 · Post Scheduler

Compose once, queue it, and let the dashboard remember what went out and when. The queue is your publishing memory.

Add a Post Scheduler view to my dashboard.

COMPOSE
- A "Compose post" card — collapsed by default behind a toggle header.
- Fields: caption textarea with live character count, a "pick from Hook
  Bank" button that opens the bank's picker modal and inserts the chosen
  hook as the first line, optional fields for angle and CTA, media upload
  (image or video, previewed inline), and a datetime picker.
- Two actions: "Schedule" and "Publish now".

PUBLISHING
- Publish through [YOUR POSTING API — e.g. Meta Graph API, or a service like
  Zernio/Buffer]. Store every post locally in a scheduled_posts table
  regardless: caption, media path, scheduled_for, account, status, external
  post id.
- Status flow: scheduled -> posted (flip it lazily whenever the queue is
  fetched and scheduled_for is in the past) / published (via publish now) /
  failed.

QUEUE
- "Upcoming queue" list: one card per post — thumbnail, first line of the
  caption, scheduled date, and a status badge (green scheduled, indigo
  posted, red failed).
- Clicking a card opens a detail modal with everything: full caption (line
  breaks preserved), status, scheduled and posted times, account, hook,
  angle, CTA, and the media preview. Delete button with a confirm step,
  stopPropagation so it doesn't open the modal.
- Sort: soonest first, posted items sink below upcoming ones.

After the build — make it yours

Iterate with screenshots

The fastest way to fix UI you don't like: screenshot it, give it to the agent, and say what feels wrong ("the labels don't align with the buttons", "too much text on these cards"). Concrete beats abstract every time.

Feed it your voice, not ours

Every prompt above leans on a BRAND.md file. Spend an hour on it. Who you serve, your 3–4 content pillars, your tone rules, the words you never use. It is the difference between AI output you post and AI output you rewrite.

Seed it, then trust it

Ask the agent to write a small seed script with realistic demo data first — you will find ten UX problems in a filled dashboard that an empty one hides. Tag the demo rows so one command deletes them later.

What we learned building ours

Three ways to get there

TierWhat you getHow
FreeThe six prompts above, the build order, and the lessons from building ours.You're holding it.
$20 — code + skillThe complete codebase plus a Claude skill that sets it up on your machine and rebrands it.DM "CODE" to @frame.gen.studio
$300 — done for youFully configured around your account: brand tokens, fonts, content pillars, competitors, and voice-tuned prompts.DM "SETUP" to @frame.gen.studio
See the full dashboard Read the product page for the FrameGen Content Dashboard — the running version this guide teaches you to rebuild.
Y

Yana Shurpik

Founder of FrameGen Studio — AI video and content systems for ecommerce brands, with a human in the loop, on purpose.

Want it set up for you?

Skip the six-prompt build — get the running dashboard configured to your brand and competitors.

See the dashboard DM on Instagram