Built on Claude for performance marketing teams

Your creative testing playbook, run every morning by an agent.

Picaso SV reads your ad data daily, tracks every creative batch through its test lifecycle, applies your team's rules and drafts the actions your ops team sends. Media buyers approve instead of digging through dashboards.

Product AProduct BProduct CAll 7
Daily run 08:30 ICT · data through yesterday
Spend, 30 days$18,420at plan
Purchases812+14% vs prior 30
CPA$22.7target $25.0
Creative hit rate23%7 of 31 batches scaled
Daily spend, last 30 days
SpendStop-loss sentScale approved
Today's actions4 drafted
Stop-lossNAV v12.1, ads 4 and 6D3 spend $94, 0 purchases
ScaleNAV v12.2, ad 2CPA $18 under target 3 days running
Testing D1NTV v8.0, ads 1 to 5hold, D3 review on Friday
New strategyNAV v12.2, ad 2request drafted, waiting for approval
BatchTypeDaySpendPurchasesCPAStatusOrigin
v12.2VideoD3$41219$21.7ScaleRequest #214, Sep 29
v12.1VideoD4$2863$95.3Stop-lossRequest #214, Sep 29
v8.0TextD1$581$58.0TestingRequest #221, Oct 6
v5.3ImageD7$73031$23.5New strategyRequest #209, Sep 22

Sample data. Layout matches the production dashboard.

Meta AdsSlackClaude Agent SDKAny reporting export

Everything a media buyer does before 10am, done by 8:30.

One pipeline, run on schedule. The agent drafts, a person approves, nothing spends on its own.

Stop-loss on time

A creative that died on Tuesday should not spend until Thursday. The agent checks every batch each morning and drafts the stop the day it qualifies.

Manual review
~26 h With agent
<1 h 0h10h20h30h Time from a batch failing its D3 rule to the stop being sent. Typical, not guaranteed.

Every batch, tracked by test day

Ads are grouped into creative batches and followed from launch through D0 to D3. Older versions roll off when a newer one arrives.

D0D1D2D3
NAV v12.2
okokokscale
NAV v12.1
okoklowstop
NTV v8.0
oktoday
NTN v3.0
today

Your playbook, written once

Rules live in a file the team owns, not in someone's head. Thresholds, exceptions and review days are explicit and versioned.

stopD3 spend ≥ 2 × target CPA and purchases = 0
scaleCPA under target for 3 consecutive days
holdD0 to D2: no action unless spend > 3 × target
newscaled ad with 7+ days data earns a new strategy

Actions in your team's words

The draft uses the exact format your ops channel already reads, so it is pasted, not rewritten.

Picaso SV to #ops-actions · 08:31
Product A, Oct 8
STOP  NAV v12.1 ad 4, ad 6
      reason: D3 $94 spend, 0 purchases
SCALE NAV v12.2 ad 2, budget +30%
      reason: CPA $18 vs target $25, 3 days
Approve and sendEditSkip

Full lineage, request to result

The agent scans release notes in Slack and links each batch back to the request that created it. No more "which brief was this?"

Request#214 in #creative-requests, Sep 29"5 video variants, hook: before and after"
BatchNAV v12.2, 5 ads live Sep 30matched from release note
Result1 scaled, 2 stopped, 2 heldD3 review Oct 3

Agent drafts, human approves

Nothing goes to the ops channel without a click. Every decision is logged with the rule that triggered it.

Stop-lossNAV v12.1, ads 4 and 6approved 08:34
ScaleNAV v12.2, ad 2approved 08:35
Testing D1NTV v8.0, ads 1 to 5no action
New strategyNAV v12.2, ad 2sent 08:40
Audit log kept per product, per day.

What a month of testing looks like

The job is not to find one winner. It is to run more batches, kill losers faster and keep the few that work. The chart is what the agent reports every Monday.

Creative batches per week
TestedScaled

Sample month for one product. Hit rate 20 to 25% is typical for Meta creative testing.

7productstracked daily for one e-commerce group, in production since August 2026
1run per product per dayplus a noon scan of Slack for new creative releases
0actions sent unapprovedthe agent drafts, a media buyer approves, ops executes
"I ran paid social by hand for years. The rules were always the same, only the time to apply them was missing. So I wrote them down and built the agent that applies them every morning."
TL
Tú Minh Lê
Founder, Picaso SV. Performance marketer, Ha Noi.

Questions we get

Which ad platforms does it support?

Meta Ads today, since that is where our own spend is. The pipeline reads a daily export from your reporting tool, so other platforms with a daily export can follow.

Does the agent change budgets or stop ads by itself?

No. It drafts the action and the reason. A media buyer approves it, and your ops team executes it the way they do today. Nothing spends without a human click.

Where does Claude come in?

The product was built with Claude Code and runs on the Claude Agent SDK. Claude classifies new batches, matches them to Slack requests, applies the playbook with its exceptions and writes the action in your team's wording.

How long does setup take?

One working day for a team that already has a daily export and a Slack channel for creative requests. Most of it is writing down the rules you already use.

Put your playbook on the morning schedule.

We are taking on a few e-commerce advertisers in Vietnam and Southeast Asia for pilots. Write to us with your monthly spend and the number of creatives you test per week.