Please verify your email - check your inbox.Resend
Create & rank
Generate ad concepts and pre-test them on a synthetic buyer panel - before spending anything.
What are we selling?
Brand details
Reference ads & options - competitor intel, formats, persona count
✦
Describe your business above, then generateYour concepts appear here, ranked by predicted purchase intent.
Rank my ads
Already wrote ads? The synthetic panel tells you which one to run - no generation needed.
Your ads - one per line, Headline | Primary text
⇅
Paste two or more ads and rank themEvery ad gets a purchase-intent score, hooks ×8, and each persona's why.
Landing pages
Your ad won the click - does the page win the sale? The same buyer panel reads each landing page and scores purchase intent, with fixes.
Landing page URLs - one per line, up to 5 (compare variants or competitors)
Each page is fetched (bot-protected sites handled), its copy extracted, and the panel reacts as buyers who just clicked your ad.
🌐
Paste one or more URLs and testEvery page gets a purchase-intent score, the panel's words, and the top conversion fixes.
Audience panel
Define who judges your ads - no ad-platform audience needed. Pick a ready-made audience, upload your platform data, or describe your own.
Once built, every scoring run uses this panel - Create & rank, Rank my ads, and the Results loop. Without one, a panel is auto-generated from your business description each run.
👥
No custom panel yetScoring auto-generates one from your business description. Describe your audience above to take control.
Results loop
Upload your Meta results export. Winners feed the next round, losers go on the kill list, and SSR calibrates against reality.
Use the same ad names you generated here so results match back - that's the calibration join.
↻
No results yetRun your winners on Meta, export the ad-level CSV, drop it here.
Forecast
Upload a dated metrics export (Meta / Google / TikTok day breakdown) and project each campaign forward.
Needs a date/day column and a numeric metric (ROAS, spend, CPA…). Add a campaign/ad column to forecast each series separately.
↗
Charts appear hereHistory, projection, and an uncertainty band per campaign.
Library
Every run you've scored - generations, boards, images and the panel's words. Click one to reopen it.
🗂
No runs yetGenerate, rank or evolve something first.
How BuyerPanel works
One loop: create ads, prove them on a synthetic buyer panel before spending, evolve the winners, ship to Meta, and learn from real results.
1
CREATE & RANK
From one sentence to a ranked board
Paste your website URL (the brief fills itself in) or describe what you sell. Optionally open Reference ads & options to
paste competitor ad text, pull live competitor ads from the Meta Ad Library, or drop up to 12 winning ad visuals - their hooks,
layouts and angles are read and folded into the brief. Generate & rank writes concepts and the panel scores every one:
purchase intent 1-5, score distribution, and each buyer's why.
2
EVOLUTION MODE
Winners mutate, losers die - automatically
Pick 2-4 generations and press ⚡ Evolve: generate → panel judges → the top ads mutate (sharper hook, added proof,
identity, urgency) while losers join the kill list → repeat. You get a board per generation, the improvement curve, and the
best-intent headline number. Dozens of ads tested, $0 spent.
3
RANK MY ADS
Already have ads? Test them first
Paste them one per line (Headline | Primary text), drop a CSV, or drop finished image ads
(PNG/JPG, multiple at once) - the panel judges the actual creative, not just the words.
4
LANDING PAGES
The ad won the click - does the page win the sale?
Paste up to 5 landing-page URLs (variants, or competitors). Each page is fetched, its copy extracted, and the same
buyer panel reacts as people who just clicked your ad: purchase intent per page, the panel's words, and the top
conversion fixes. Rank your page against a competitor's before spending on traffic.
5
AUDIENCE PANEL
You decide who judges
Pick one of 16 ready-made audiences (ages 16-80, US & EU), upload your Google demographics export, or describe your own
buyers. Hover a persona card to remove individuals; Clear returns to auto-generated panels. Once built, every scoring run
everywhere uses this panel.
6
PER-AD TOOLKIT
From concept to finished creative
On any ranked ad: Render image (Ideogram v3 / Seedream / gpt-image-1 · 1:1, 4:5, 9:16) → Panel-test image
(visual intent vs text intent) · Hooks ×8 (headline variants, SSR-ranked) · UGC script (panel-scored;
render it as a real avatar video with voice + lip-sync via HeyGen) · Export (zip: creative + copy + calibration
handle) · Send to Meta.
7
SEND TO META
Always paused - nothing spends without you
One click creates the campaign, ad set and ad in your own Ads Manager, all PAUSED - you review and press
go there. One-time setup (~10 min, no Meta review needed): Settings → "Connect Meta in ~10 minutes".
8
RESULTS LOOP & FORECAST
The loop learns from your real results
After your winners run, drop the ad-level results CSV in Results loop: winners become references, losers go on the
kill list, the next round generates automatically, and the calibration score (SSR vs your real ROAS) sharpens with
every upload - keep the ad names unchanged so results match back. Forecast projects any dated metrics export forward
with uncertainty bands. Library keeps every run reopenable.
✓
DEMO vs LIVE · KEYS · CREDITS
What unlocks what
With no keys, everything runs on honest placeholder data (badge says DEMO) so you can learn the flow.
Add keys in Settings to go LIVE: Anthropic = real ad generation + persona reactions ·
Voyage or OpenAI = real SSR scoring · fal.ai / OpenAI = real images ·
HeyGen = real avatar videos · Meta tokens = competitor intel + publishing.
Keys are stored per-account and masked. Actions meter credits (sidebar shows your balance).
Settings
Bring your own API keys. Each key unlocks a capability; everything runs in demo mode until then.
Ad generation & persona reactions - Anthropic
SSR scoring - Voyage or OpenAI embeddings
Image rendering - fal.ai and/or OpenAI
Keys are stored per-account and masked after saving. Leave a field as ******** to keep it unchanged.
Publish to Meta - send ads to your Ads Manager as paused drafts
Every ad card gets a Send to Meta action: campaign, ad set and ad appear paused in your own account - you review and press go there. Nothing ever spends without you.
Connect Meta in ~10 minutes (one-time)
1 · Go to developers.facebook.com → Create App → type Business. (If you run Meta ads, you already have the account this needs.)
2 · In the new app, add the Marketing API product.
3 · In Marketing API → Tools, generate an access token with ads_management + ads_read.
4 · Grab your ad account ID from Ads Manager (it's in the URL: act_1234…) and your Facebook Page ID (Page → About).
5 · Paste all three above and save.
Because it's your app managing your ad account, Meta requires no App Review - dev mode covers it. The default token lasts ~60 days (re-paste when it expires); a Business Manager system user token never expires.
Saved keys unlock live generation instantly - no restart needed.