Skip to content

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.

Your first three movesMode try
You, to your agent

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"
  }
}
Response200application/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.

WhenStepThe jobWhoYour time · costKind
Monday, week 1Connect your ad accountRun on your accountYou5 min · freekickstart
See who already pays for your termsTheir paid terms and adsAgentnone · about $0.02 a competitorkickstart
Forecast 500 clicks on your termsAd cost forecastAgentnone · $0.09kickstart
Connect your site analyticsSite analyticsYou5 min · freekickstart
Approve the ad kitAd kit★ You approve15 min · $0.50 to $0.80kickstart
Test your message for $100Run on your account★ You approve5 min · $100kickstart
Approve the 500-click test and its stop ruleStop rule★ You approve5 min · about $3,000 at $6.01 a click (the sample term)kickstart
Week 2Run 500 clicks on exact, high-intent termsRun on your accountAgentnone · 500 clicks at the cost per click of your termskickstart
Read spend and results every daySpend and resultsAgentnone · freekickstart
Week 4Read the 500-click result: stop or keepStop ruleYou10 min · freekickstart
Turn the winning copy into pagesDraft★ You approve3 min a page · a few cents a pageengine
Week 6Retarget your own visitors once past the floorRun on your account★ You approve5 min · inside your budgetengine
Week 12Put spend behind the posts that already wonRun on your account★ You approve5 min · one tier at a timeengine
SwitchProjected 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 strategyThe 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

PlayRoleWhat it does
Paid searchKickstart: the first 10Bids on searches that show buying intent, and runs only while a first sale earns more than it costs to win.
Paid socialKickstart: the first 10Runs 10 to 15 distinct ad concepts at a time, each paused until approved, and spends more only after a holdout shows added sales.
Smoke testKickstart: the first 10Smoke test
Editorial SEOEngine: what keeps them comingEditorial SEO writes the guides and honest comparisons your buyers search for, from your own records, then refreshes or prunes each Page that slips.
RetargetingEngine: what keeps them comingShows Ads only to your own past visitors and signups, stops when they convert, and holds a share back to price every dollar.
Promote winnersEngine: what keeps them comingPays 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

RouteThe PlayYour agents add it when
House ads in a StudioHouse adsthe Startup sits in a Studio beside related brands, which show its ads without cash

Reference

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.

Contents