Paid: fast and scalable, paid in cash, with a stop rule
I have cash and want customers fast: what do I do? See who already pays for your terms, forecast the clicks, test your message for $100, then run 500 clicks with a stop rule.
We would rather pay in cash than months. Buy our first customers with ads, and stop whatever does not pay.
Show me my first three moves.
curl -X POST https://api.sb/leaseline.app/demand-budgets \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"amount":3005,"tier":"$1k","target":"projected cost per paid under first-year margin","stopRule":"500 clicks spent and projected cost per paid above first-year margin","until":"2026-12-06"}'
curl -X POST https://api.sb/leaseline.app/domains/benchmark \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"hostname":"leaseline.app","competitors":["rentroll.example","doorloop.example"]}'
curl -X POST https://api.sb/leaseline.app/mandates/authorize \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"agent":"workers/worker_4","verb":"Campaign.update","for":"people/dana","topics":["paid-test"],"limit":{"spend":3005},"expiresAt":"2026-12-06"}'
curl -X POST "https://api.sb/leaseline.app/play-mixes/compile?mode=try" \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"startup":"leaseline.app"}'import { $ } from 'startup-builder'
const budget = await $.DemandBudget.create({ amount: 3005, tier: '$1k', target: 'projected cost per paid under first-year margin', stopRule: '500 clicks spent and projected cost per paid above first-year margin', until: '2026-12-06' }) // what you would rather pay with: cash, 500 clicks at $6.01
const rivals = await $.Domain.benchmark({ hostname: 'leaseline.app', competitors: ['rentroll.example', 'doorloop.example'] }) // who already pays for your terms, about $0.02 a rival
await $.Mandate.authorize({ agent: 'workers/ worker_4', verb: 'Campaign.update', for: 'people/ dana', topics: ['paid-test'], limit: { spend: 3005 }, expiresAt: '2026-12-06' }) // the agent sets spend to zero when the stop rule fires
return await $.PlayMix.compile({ startup: 'leaseline.app' }, { mode: 'try' }) // message test running, the 500-click test gated on the ad kit
npx startup-builder do DemandBudget.create --json '{"amount":3005,"tier":"$1k","target":"projected cost per paid under first-year margin","stopRule":"500 clicks spent and projected cost per paid above first-year margin","until":"2026-12-06"}'
npx startup-builder do Domain.benchmark --json '{"hostname":"leaseline.app","competitors":["rentroll.example","doorloop.example"]}'
npx startup-builder do Mandate.authorize --json '{"agent":"workers/worker_4","verb":"Campaign.update","for":"people/dana","topics":["paid-test"],"limit":{"spend":3005},"expiresAt":"2026-12-06"}'
npx startup-builder do PlayMix.compile --json '{"startup":"leaseline.app"}' --try{
"name": "do",
"arguments": {
"code": "const budget = await $.DemandBudget.create({ amount: 3005, tier: '$1k', target: 'projected cost per paid under first-year margin', stopRule: '500 clicks spent and projected cost per paid above first-year margin', until: '2026-12-06' }) // what you would rather pay with: cash, 500 clicks at $6.01\nconst rivals = await $.Domain.benchmark({ hostname: 'leaseline.app', competitors: ['rentroll.example', 'doorloop.example'] }) // who already pays for your terms, about $0.02 a rival\nawait $.Mandate.authorize({ agent: 'workers/worker_4', verb: 'Campaign.update', for: 'people/dana', topics: ['paid-test'], limit: { spend: 3005 }, expiresAt: '2026-12-06' }) // the agent sets spend to zero when the stop rule fires\nreturn await $.PlayMix.compile({ startup: 'leaseline.app' }, { mode: 'try' }) // message test running, the 500-click test gated on the ad kit",
"mode": "try"
}
}application/json{
"$type": "PlayMix",
"from": "hypotheses/ hypothesis_8",
"approach": "A $100 message test and 500 clicks on exact terms bring the first 10; retargeting and promoted winners keep them coming.",
"firstMoves": [
{
"move": "Connect your ad account",
"who": "you",
"minutes": 5,
"cost": "$0"
},
{
"move": "Approve the ad kit",
"who": "you",
…
sample- Your first-year margin times your visit-to-paid rate beats the cost of a click on your terms, and you have cash for one test.
- Fits when
- Cost per signup, from week 1; Projected cost per paid customer, against first-year margin; Days to the first outside order; Payback on each Play
- Number to watch
Week by week
Start here: Connect your ad account. A $100 message test and 500 clicks on exact terms bring the first 10; retargeting and promoted winners keep them coming.
| When | Step | The job | Who | Your time · cost | Kind |
|---|---|---|---|---|---|
| Monday, week 1 | Connect your ad account | Run on your account | You | 5 min · free | kickstart |
| See who already pays for your terms | Their paid terms and ads | Agent | none · about $0.02 a competitor | kickstart | |
| Forecast 500 clicks on your terms | Ad cost forecast | Agent | none · $0.09 | kickstart | |
| Connect your site analytics | Site analytics | You | 5 min · free | kickstart | |
| Approve the ad kit | Ad kit | ★ You approve | 15 min · $0.50 to $0.80 | kickstart | |
| Test your message for $100 | Run on your account | ★ You approve | 5 min · $100 | kickstart | |
| Approve the 500-click test and its stop rule | Stop rule | ★ You approve | 5 min · about $3,000 at $6.01 a click (the sample term) | kickstart | |
| Week 2 | Run 500 clicks on exact, high-intent terms | Run on your account | Agent | none · 500 clicks at the cost per click of your terms | kickstart |
| Read spend and results every day | Spend and results | Agent | none · free | kickstart | |
| Week 4 | Read the 500-click result: stop or keep | Stop rule | You | 10 min · free | kickstart |
| Turn the winning copy into pages | Draft | ★ You approve | 3 min a page · a few cents a page | engine | |
| Week 6 | Retarget your own visitors once past the floor | Run on your account | ★ You approve | 5 min · inside your budget | engine |
| Week 12 | Put spend behind the posts that already won | Run on your account | ★ You approve | 5 min · one tier at a time | engine |
| Switch | Projected cost per paid customer stays above first-year margin after 500 clicks: spend goes to zero, the winning copy becomes pages, and you add Passive or Hands-on. | Every strategy | The readout | — | switch |
★ marks the approvals. Everything else runs under the Mandates you grant once, and each Mandate you grant takes an approval off your week.
Ads are the fastest way to learn which message sells, because every click is a buyer reading your words today. They are also the one way to get customers that spends cash while you sleep, so the agent watches the spend for you. Each click is read against one line: what a paying customer is worth to you in the first year, times the share of visitors who pay. A term whose clicks cost more than that line is a term you earn through Passive instead of buying.
The test buys a reading, not a business. When the reading passes, the budget grows a tier at a time. When it fails, the agent sets spend to zero without waiting for you, and the cash still bought the message that won: that copy becomes the first pages that search can rank.
Plays it runs
| Play | Role | What it does |
|---|---|---|
| Paid search | Kickstart: the first 10 | Bids on searches that show buying intent, and runs only while a first sale earns more than it costs to win. |
| Paid social | Kickstart: the first 10 | Runs 10 to 15 distinct ad concepts at a time, each paused until approved, and spends more only after a holdout shows added sales. |
| Smoke test | Kickstart: the first 10 | Smoke test |
| Editorial SEO | Engine: what keeps them coming | Editorial SEO writes the guides and honest comparisons your buyers search for, from your own records, then refreshes or prunes each Page that slips. |
| Retargeting | Engine: what keeps them coming | Shows Ads only to your own past visitors and signups, stops when they convert, and holds a share back to price every dollar. |
| Promote winners | Engine: what keeps them coming | Pays only for posts that already won free reach, and raises spend a tier only when regions with no Ads show it adds Leads. |
Routes your agents add
| Route | The Play | Your agents add it when |
|---|---|---|
| House ads in a Studio | House ads | the Startup sits in a Studio beside related brands, which show its ads without cash |
Reference
| Tool | Runs today |
|---|---|
POST /{namespace}/demand-budgets | Coming |
POST /{namespace}/domains/benchmark | Coming |
POST /{namespace}/mandates/authorize | Coming |
POST /{namespace}/play-mixes/compile | Coming |
POST /{namespace}/campaigns | Coming |
PATCH /{namespace}/campaigns/{id} | Coming |
Compiled, not written: edit the records it reads (strategies/paid), then regenerate. Every step runs from a sentence or a line of code. In your words: the CRM words you know, and where each lives here.