Creator partnership
Moves creators who already answer your buyers’ questions up one ladder of Agreements, each rung paid on revenue they bring after refunds, never on views.
- Step
- Earn referrals
- Channel
- Partnerships
- Kind
- Partners
- Summary
- startupbuilder.dev
Be our Partnerships lead: find creators whose comments are full of landlords asking about renewals, and offer them 20 % of what we collect for a year, plus free access. Pay for a post only once they’ve sent 2 paying Customers, and I approve every guarantee. Never pay for views. Show me what’s missing; don’t send.
# Not live yet (gaps #2)
curl -X POST "https://api.sb/leaseline.app/campaigns?mode=try" \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"play":"creator-partnership"}'import { $ } from 'startup-builder'
return await $.Campaign.create({ play: 'creator-partnership' }, { mode: 'try' }) // dry run on the day-0 Startup, 2026-08-24 · Not live yet, gaps #2
npx startup-builder do Campaign.create --json '{"play":"creator-partnership"}' --try # Not live yet (gaps #2){
"name": "do",
"arguments": {
"code": "return await $.Campaign.create({ play: 'creator-partnership' }, { mode: 'try' }) // dry run on the day-0 Startup, 2026-08-24 · Not live yet, gaps #2",
"mode": "try"
}
}application/json{
"type": "https: //startupbuilder.dev/ errors/ refused",
"title": "Refused",
"status": 422,
"detail": "creator-partnership can’t start yet: 1 check fails and 2 warn.",
"checks": [
{
"check": "use-when",
"status": "pass",
"observed": "64 creators in the niche; 29 above the ask-density floor",
"doc": "/plays/ creator-partnership#check-use-when",
"then": "Metric.query"
},
{
…
Hand this week’s top creator to the Partnerships agent and show me what it chose and why. Don’t send.
curl "https://api.sb/leaseline.app/events?where=name%20in%20(%22Post.published%22%2C%20%22Monitor.checked%22%2C%20%22Acquisition.recorded%22)&limit=1" \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
# Not live yet (gaps #7)
curl -X POST "https://api.sb/leaseline.app/triggers/fire?mode=try" \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"like":"event_1244"}'
# Not live yet (gaps #7)
curl "https://api.sb/leaseline.app/decisions?where=on%20%3D%20%22handle_23%22" \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
# Not live yet (gaps #7)
curl "https://api.sb/leaseline.app/actions?where=on%20%3D%20%22handle_23%22" \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"import { $ } from 'startup-builder'
const { events: [last] } = await $.Event.list({ where: 'name in ("Post.published", "Monitor.checked", "Acquisition.recorded")', limit: 1 }) // { play } compiled to this Play’s Trigger Events
const { subject } = await $.Trigger.fire({ like: last.$id }, { mode: 'try' }) // the same Event again, in try mode · Not live yet, gaps #7
const { decisions: [decision] } = await $.Decision.list({ where: `on = "${subject}"` }) // what it chose, and why · Not live yet, gaps #7
const { actions } = await $.Action.list({ where: `on = "${subject}"` }) // what it did, with its checks · Not live yet, gaps #7
return { decision, actions }
npx startup-builder do Event.list --json '{"where":"name in (\"Post.published\", \"Monitor.checked\", \"Acquisition.recorded\")","limit":1}'
npx startup-builder do Trigger.fire --json '{"like":"event_1244"}' --try # Not live yet (gaps #7)
npx startup-builder do Decision.list --json '{"where":"on = \"handle_23\""}' # Not live yet (gaps #7)
npx startup-builder do Action.list --json '{"where":"on = \"handle_23\""}' # Not live yet (gaps #7){
"name": "do",
"arguments": {
"code": "const { events: [last] } = await $.Event.list({ where: 'name in (\"Post.published\", \"Monitor.checked\", \"Acquisition.recorded\")', limit: 1 }) // { play } compiled to this Play’s Trigger Events\nconst { subject } = await $.Trigger.fire({ like: last.$id }, { mode: 'try' }) // the same Event again, in try mode · Not live yet, gaps #7\nconst { decisions: [decision] } = await $.Decision.list({ where: `on = \"${subject}\"` }) // what it chose, and why · Not live yet, gaps #7\nconst { actions } = await $.Action.list({ where: `on = \"${subject}\"` }) // what it did, with its checks · Not live yet, gaps #7\nreturn { decision, actions }",
"mode": "try"
}
}application/json{
"decision": {
"$id": "https: //api.sb/ leaseline.app/ decisions/ decision_651",
"$type": "Decision",
"choice": "pitch-referral",
"reason": "Rosa Lin’s property-management channel draws 7 renewal questions per 1, 000 comments, above the floor of 5, and passed the authenticity read",
"stakes": "low",
"options": [
"pitch-referral",
"thank-the-mention",
"offer-paid-post",
"hold-the-commission",
"renew-or-end",
"not-now"
…
sample · 4 Not live yetPreviewOn PATCH /{namespace}/campaigns/{id}Off PATCH /{namespace}/campaigns/{id}Take this one POST /{namespace}/tasks/{task}/claim
action_2 is the pitch from the Partnerships Mailbox, citing only Rosa’s own public posts, held for its delay window. One follow-up sends in 5 days only if she has not replied.
$640 collected from Customers creators sent against $0 before · before-after,
| Try another: the creator | Choice | Reason |
|---|---|---|
| Rosa Lin, a property-management channel: 7 renewal questions per 1,000 comments | pitch-referral | above the ask-density floor; no authenticity flag |
| Jess Moreno: 3 paying Customers from her link in 90 days | offer-paid-post | 2 or more paying Customers: the paid-post rung, which you approve |
| A creator’s reel with the link and the disclosure only in the caption’s fold | hold-the-commission | no disclosure in the content: Commission holds until a re-scan passes |
| A landlord creator showing Leaseline with no Agreement | thank-the-mention | an unprompted mention: you write the thank-you |
- 30 min week 1, then about 1 h a week
- Your time
- Day 9: the first creator signs
- First signal
Where it sits: Stranger → Lead → Trialing → Activated → At risk → Churned → Won back · Creator-attributed revenue → Referral share → New paying Customers → New Customers ↑ → ARR added each week → ARR
Worth’s formula: about +2.4 paying Customers a month per 10 signed creators (Other Startups’ results; no lift of your own yet) × 7 signed × $348 first order ARR ≈ +$585. Under First signal: At 6 new Customers in 8 weeks, the random post weeks read nothing within 90 days, so this page reads before-after and pools with Other Startups.
sample · api.sb/
Start it this week
npx startup-builder add play creator-partnership # 1 · writes plays/creator-partnership.mdx (Not live yet, gaps #5)
# 2 · dry run; below, its 422 on 2026-08-24
curl -X POST "https://api.sb/leaseline.app/campaigns?mode=try" \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"play":"creator-partnership"}'
# 3 · keep it, at You approve each one
curl -X POST https://api.sb/leaseline.app/campaigns \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"play":"creator-partnership"}'
# on
curl -X PATCH https://api.sb/leaseline.app/campaigns/creator-partnership \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"endsAt":null}'
# off: no pitch or brief sends; earned Commission still pays
curl -X PATCH https://api.sb/leaseline.app/campaigns/creator-partnership \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"endsAt":"now"}' | Check | Fix | Then |
|---|---|---|
use-when pass · Not live yet, gaps #8 | 64 creators in the niche; 29 above the ask-density floor | POST /{namespace}/metrics/query |
baseline warn · Not live yet, gaps #8 | It reads before-after, not proof, until volume allows the random post weeks. | POST /{namespace}/metrics/query |
billing-connected fail · Not live yet, gaps #8 | Connect Stripe so Commission reads collected revenue, net of refunds. | POST /{namespace}/integrations/connect |
domain-authenticated pass | leaseline.app: 3 of 3 records resolve | POST /{namespace}/domains/{domain}/authenticate |
role-unstaffed warn · Not live yet, gaps #8 | Leave them: guarantees, renewals and fraud holds come to you. | POST /{namespace}/roles/{role}/staff |
JSON
{
"type": "https://startupbuilder.dev/errors/refused",
"title": "Refused",
"status": 422,
"detail": "creator-partnership can’t start yet: 1 check fails and 2 warn.",
"checks": [
{
"check": "use-when",
"status": "pass",
"observed": "64 creators in the niche; 29 above the ask-density floor",
"doc": "/plays/creator-partnership#check-use-when",
"then": "Metric.query"
},
{
"check": "baseline",
"status": "warn",
"observed": "no creator revenue in 90 days",
"doc": "/plays/creator-partnership#check-baseline",
"fix": "It reads before-after, not proof, until volume allows the random post weeks.",
"then": "Metric.query"
},
{
"check": "billing-connected",
"status": "fail",
"doc": "/plays/creator-partnership#check-billing-connected",
"fix": "Connect Stripe so Commission reads collected revenue, net of refunds.",
"then": "Integration.connect"
},
{
"check": "domain-authenticated",
"status": "pass",
"observed": "leaseline.app: 3 of 3 records resolve",
"doc": "/plays/creator-partnership#check-domain-authenticated",
"then": "Domain.authenticate"
},
{
"check": "role-unstaffed",
"status": "warn",
"roles": [
"contracts-manager",
"risk-analyst"
],
"owned": 0,
"doc": "/plays/creator-partnership#check-role-unstaffed",
"fix": "Leave them: guarantees, renewals and fraud holds come to you.",
"then": "Role.staff"
}
]
}It says no, says why, and names the fix.
| Check | Fix (one call) | Your time | Wait |
|---|---|---|---|
use-when · baseline · pass: 29 creators above the floor · warn: no history (gaps #8) | POST /{namespace}/metrics/query on creator-attributed-revenue; it fills Before in Your number | 1 min | none |
billing-connected · fail | POST /{namespace}/integrations/connect with system payments (Stripe), payouts on | 10 min | Stripe’s payout check, about 1 day |
domain-authenticated · pass | POST /{namespace}/domains/{domain}/authenticate | 0 min | none |
role-unstaffed · warn (gaps #8): guarantees and holds come to you | POST /{namespace}/roles/{role}/staff, or leave it: you approve each guarantee | 0 min | none |
Your number · Before $0 · Now $640 collected from Customers creators sent · Target $1,
Referral terms cost nothing until a creator’s Customer pays: then 20 % of collected revenue for 12 months. A paid post costs $4 per 1,000 median views, $50 at the least. Pitches cost $0.04 each (Worker cost). That comes to about $130 a month at Leaseline’s 7 creators, with 1 paid post.
When it starts
| When | Trigger id | Starts on | Window | How it gets in |
|---|---|---|---|---|
| A creator passes vetting | creator-fit-found | event on Monitor.checked where niche fit, ask density at or above the floor, and no authenticity flag | 30d | the weekly sourcing run (POST /{namespace}/monitors/{monitor}/check) |
| A creator posts with your name, link or their code | creator-post-published | event on Post.published where the post names the Startup, its link or a creator’s code | 1d | POST /{namespace}/handles/{handle}/connect and the daily disclosure scan |
| A Customer arrives through a creator’s link or code | creator-acquisition | event on Acquisition.recorded where the Acquisition names a creator as its Partner | 90d | POST /{namespace}/integrations/connect (Stripe) and the code on the Order |
+ 4 more for unprompted mentions, closed refund windows, ending terms and leaked codes (?lanes=) |
{
"$id": "https://api.sb/leaseline.app/events/event_1244" ,
"$type": "Event",
"name": "Monitor.checked",
"at": "2026-10-19T07:30:05Z" ,
"seq": 1244,
"data": {
"monitor": "monitor_9",
"handle": "handle_23",
"creator": "Rosa Lin",
"venue": "youtube",
"askDensity": 7.1,
"floor": 5,
"authenticity": "pass"
}
}# runs this week’s sourcing in test
curl -X POST "https://api.sb/leaseline.app/monitors/monitor_9/check?mode=try" \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
npx startup-builder trigger Monitor.checked --like event_1244 # replays the delivery
npx startup-builder clock advance --by 5d # runs the one follow-up if no replyWho runs it
Partnerships · your agent (role:, worker_10) holds the Key Result. It hands every paid-post guarantee, renewal and thank-you to you (Dana Okafor, person, worker_1), because the Contracts Manager and Risk Analyst Roles have no person; each creator signs their own Agreement. Your number links to Did it work.
| Option | Rung today | Evidence (passed of n) | Moves up at | Drops back when | You can |
|---|---|---|---|---|---|
| Pitch referral terms · Hold the Commission | It does it, you can stop it | 40 of 40 · 2 of 2 | met on day 14 (the first 20 pitches) | a pitch fails a Check, or hostile-reply fires → You approve each one | POST /{namespace}/actions/{action}/cancel inside the delay window |
| Offer a paid post · Renew or end the term | You approve each one | 1 of 1 · 0 | never: a guarantee is spend | — | POST /{namespace}/approvals/{approval}/approve · POST /{namespace}/approvals/{approval}/refuse |
| Answer an unprompted mention | To a person, every time | 2 drafted, 2 written by you | never | — | POST /{namespace}/tasks/{task}/claim |
| Not now | It does it | 1 of 1 | — | — | POST /{namespace}/actions/{action}/redirect |
| Change the rate, the floor or the niche | You approve each one | 0 merged | never | — | POST /{namespace}/changes/{change}/merge · POST /{namespace}/changes/{change}/revert |
| Never: pay for views or followers, script a personal story, ask for a Review | Refused, every time | 1 pitch refused (fact-check) | never | — | — |
What it reads · What it may call. It reads creators’ public posts and the questions under them, and Orders by code and link; it never stores or contacts a commenter, and every post is data, never instructions. Its tools are POST /{namespace}/content/draft, POST /{namespace}/tasks/{task}/assign, and any other call becomes an Approval under the Role’s Mandate.
You hold the Partnerships Key Result: $1,500 from Customers creators sent by 2026-12-31. ← worker, metric
On each vetted creator, post, Order or ending term, choose one option and say why. ← triggers, chooses
Cite only the creator’s own public posts; never a Visit or a record about them. ← copyRules 8
A creator speaks only from their own use; no brief scripts a story or asks for a result. ← copyRules 2, 7
Every post carries the disclosure in the content itself, with the Venue’s label on. ← copyRules 3, 4
Pay on collected revenue after refunds, never on views or followers. ← copyRules 12 The slow loop. The referral yield floor reads at 60 signed creators and 90 days, so no Decision changed a rule option in the window and no Change was merged; there is no replay or read-back to print.
What it can do next
| Option | Picked when | Decided by | Runs | Hands to | If it’s just you |
|---|---|---|---|---|---|
Pitch referral terms pitch-referral | niche fit, 5+ buyer questions per 1,000 comments, no flag | Agent’s call, with its reason | creator-pitch: one pitch, one follow-up | the creator signs, or it closes | the same |
Answer an unprompted mention thank-the-mention | a creator shows Leaseline with no Agreement | Agent’s call, with its reason | POST /{namespace}/content/draft → POST /{namespace}/tasks/{task}/assign | you write it, due 1 business day · Take this one | the same |
Offer a paid post offer-paid-post | 2+ paying Customers in 90 days | Your rule (line 4) | POST /{namespace}/tasks/{task}/assign the guarantee → creator-onboard with the brief | you approve the guarantee · Take this one | the same |
Hold the Commission hold-the-commission | no disclosure in the content, or a fraud signal | Your rule (the Disclosure hold) | disclosure-fix: the exact fix, one reminder | the creator | the same |
Renew or end the term renew-or-end | 14 days before a term ends | Agent’s call, with its reason | POST /{namespace}/tasks/{task}/assign with the creator’s 90-day revenue | you renew or end it · Take this one | the same |
Not now not-now | a fifth post request this month across your Startups | Your rule (the Creator ceiling) | nothing; next month holds it | nobody | the same |
| When they write back | Fixture reply | What happens | Who answers | By when | Call |
|---|---|---|---|---|---|
| Interested | “Sounds good. Send the terms.” | the Agreement with its terms in numbers; it signs on their press | the creator | — | POST /{namespace}/agreements/{agreement}/sign (theirs) |
| Send me pricing | “What would my viewers pay?” | the Pricing Page’s list Prices for Pro and Team | Partnerships · your agent | 1 business day | POST /{namespace}/conversations/{conversation}/answer |
| Not now | “Booked up until spring.” | the follow-up cancels; nothing more sends | nobody | at once | POST /{namespace}/conversations/{conversation}/close |
| Wrong person | “My manager handles partnerships.” | asks them to forward it; it never writes to an address from their text | Partnerships · your agent | 1 business day | POST /{namespace}/conversations/{conversation}/answer |
| Out of office | an auto-reply until Oct 28 | the follow-up waits for the return date | nobody | the return date | POST /{namespace}/messages/{message}/schedule |
| Question it can’t answer | “Can my viewers get 30 % off?” | To a person: a discount is never the agent’s call | you | 1 business day | POST /{namespace}/conversations/{conversation}/escalate |
| Stop | “Not interested, please don’t email again.” | nothing else sends to them, from any of your Startups | nobody | at once | POST /{namespace}/contacts/{contact}/suppress |
When it hands to you
Guarantees, renewals and thank-yous come to you (Dana Okafor, person). One Brief per Role, as captured (brief is Not live yet, gaps #7).
[
{
"$id": "https://api.sb/leaseline.app/tasks/task_663" ,
"$type": "Task",
"assignee": "worker_1",
"due": "2026-10-06T17:00:00Z" ,
"on": "handle_9",
"brief": {
"who": "Jess Moreno, a landlord creator, 41,000 median views" ,
"chose": "offer-paid-post",
"why": "3 paying Customers from her link in 90 days",
"guarantee": "$164 (41,000 × $4 per 1,000), or her Commission when it is more" ,
"never": [
"pay for views alone",
"a scripted story",
"a Review ask"
]
}
}
]You answer with POST /{namespace}/approvals/{approval}/approve on the guarantee, POST /{namespace}/tasks/{task}/return with a reason, or POST /{namespace}/actions/{action}/redirect. Nothing is promised to the creator until you approve; an approval left past its due time expires. A Task nobody claims by its due time stays with you, the last Role, and person-promise fires.
On time: you, 3 of 3 claimed within 1 business day, median 4 h 15 min, n 3, ■□□□ Too early to tell beside Other Startups’ 88 % on time. Your queue: counted by kind: about 1 approval and 1 thank-you every 2 weeks.
The fixed line: POST /{namespace}/deals/{deal}/assign sets owner to the receiving person, the agent is never a Deal’s owner, and Meetings land on the owner’s calendar under the owner’s name.
When it won’t send
| Check (refuses one send) | Refuses | Fix | Then |
|---|---|---|---|
owned-by-a-person (rule j; Not live yet, gaps #8) | a pitch to a creator whose Conversation a person claimed | Leave it to the person who owns it: the draft waits in their queue. | POST /{namespace}/tasks/{task}/assign |
fact-check (hub, on POST /{namespace}/content/{content}/publish) | a pitch, brief or Page with a claim no record backs | Cut the claim, or name the record that backs it. | POST /{namespace}/content/draft |
disclosure-hold (the record’s Disclosure hold) | Commission on Orders from a post with no disclosure in its content, or no Venue label | The creator adds the disclosure; Commission pays after the re-scan. | POST /{namespace}/monitors/{monitor}/check |
category (the record’s Category stop) | a brief or post with framing the Venue would reject for the Offer’s category | Cut the framing; that Venue drops from the Offer’s placements. | POST /{namespace}/content/draft |
fraud-hold (the record’s Fraud hold) | Commission on a self-purchase, a shared card, a coupon-site referrer or a Brand-name Ad | You decide pay or void on the Approval. | POST /{namespace}/approvals/{approval}/approve |
creator-ceiling (the record’s Creator ceiling) | a fifth post request to one creator in a month, across your Startups | Wait for next month. | GET /{namespace}/decisions |
The captured refusal, then the Stop that fired as a Campaign.paused reason (Not live yet, gaps #2); the rewrite that sent is the Rosa Lin thread in Example.
| Check | Fix | Then |
|---|---|---|
fact-check fail · Not live yet, gaps #1 | Cut the claim, or name the record that backs it. | POST /{namespace}/content/draft |
creator-ceiling pass | — | GET /{namespace}/decisions |
JSON
{
"type": "https://startupbuilder.dev/errors/refused",
"title": "Refused",
"status": 422,
"detail": "The pitch to Rosa Lin did not send: it states a customer count no record backs.",
"checks": [
{
"check": "fact-check",
"status": "fail",
"doc": "/plays/creator-partnership#check-fact-check",
"fix": "Cut the claim, or name the record that backs it.",
"then": "Content.draft"
},
{
"check": "creator-ceiling",
"status": "pass"
}
]
}It says no, says why, and names the fix.
[
{
"reason": {
"limit": "disclosure",
"observed": "2 misses",
"bound": "1 in 90 days",
"window": "90d"
},
"doc": "/plays/creator-partnership#stop-disclosure" ,
"task": "task_671"
}
]Did it work
At 6 new Customers in 8 weeks, the post weeks drawn at random read nothing within 90 days, so the basis is before-after (rule o): nothing prints as Added. Each figure’s call is POST /{namespace}/metrics/query by node, and every node above the leaf is Not live yet (gaps #4).
$640 collected from Customers creators sent against $0 before · before-after,
- Chose
- pitch-referral
- Why
- Rosa Lin’s property-management channel draws 7 renewal questions per 1,000 comments, above the floor of 5, and passed the authenticity read
- From
- pitch-referral · thank-the-mention · offer-paid-post · hold-the-commission · renew-or-end · not-now
- Expects
- a signed referral Agreement within 14d
- Reopens when
- no reply from handle_23 within 5d; one follow-up then sends in the same thread
- By
- worker_10
JSON
{
"$id": "decisions/decision_651",
"$type": "Decision",
"choice": "pitch-referral",
"reason": "Rosa Lin’s property-management channel draws 7 renewal questions per 1,000 comments, above the floor of 5, and passed the authenticity read",
"stakes": "low",
"options": [
"pitch-referral",
"thank-the-mention",
"offer-paid-post",
"hold-the-commission",
"renew-or-end",
"not-now"
],
"by": "worker_10",
"on": "handle_23",
"expected": "a signed referral Agreement within 14d",
"reopensWhen": "no reply from handle_23 within 5d; one follow-up then sends in the same thread"
}| Node | Now (56 days) | Before (the 56 days before) | Added | Confidence | Basis |
|---|---|---|---|---|---|
creator-attributed-revenue | $640 collected, net of refunds, from 6 Customers creators sent | $0 (no creators) | — · Worth about +$590 a month | — | before-after, not proof · Other Startups’ results +2.4 paying Customers a month per 10 signed creators, ■■□□ Early sign, n 310 |
referral-share ↑ | 6 of 14 new paying Customers (43 %) | 2 of 11 (18 %) | — | — | before-after |
new-paying-customers · new-arr | $2,088, 6 Customers · Booked $2,088: credited, not all caused by this Play | $0 | — | — | before-after · Jess’s paid post still inside its 90 days |
net-new-arr · arr | carried from new-arr | carried | — | — | carried |
The leaf counts collected revenue, net of refunds and Disputes, from Orders whose first Acquisition names a creator, sealed weekly. The post-week read compares new Customers in weeks drawn at random for a paid post against the creator’s other weeks.
How it moves it: each creator gets a code, a link and free access, and their viewers’ questions already match what Leaseline answers; 3 of 7 signed creators sent a paying Customer.
Guardrails: before against after: refunds on creator Orders, 0 of 6 against a direct 1 in 14, and $200 per $100 paid, waiting for 10 paid posts.
{
"$id": "https://api.sb/leaseline.app/campaigns/creator-partnership" ,
"$type": "Campaign",
"play": "play:creator-partnership@1" ,
"path": [
"creator-attributed-revenue",
"referral-share",
"new-paying-customers",
"new-arr",
"net-new-arr",
"arr"
],
"experiment": {
"metric": "creator-attributed-revenue",
"unit": "usd",
"heldBack": 0,
"decision": null
},
"readout": {
"value": null,
"n": 6,
"maturing": 2,
"interval": null,
"readability": "inadmissible",
"basis": "before-after",
"pooled": true
},
"ledger": {
"spend": 292,
"workerCost": 2,
"hours": 1.4,
"pipelineArr": 696,
"wonArr": 2088,
"projectedArr": 585,
"paybackDays": 51
}
}Outside benchmark: 7.6 % of recruited partners make at least one referral and 1.28 % a sale, at an average Commission of 24.16 % (2,847 SaaS partner programs, a partner-program platform’s report, 2026-03-17).
Before it · After it. Before it: creator-probe finds which creators move Leads, and community-answers shows which questions they answer. After it: creator-ads runs a creator’s winning post as a paid Ad, and commission-partners pays every Partner on the same run.
Example
Leaseline ran it from 2026-08-24 to 2026-10-19 (56 days): 64 creators sourced, 29 above the ask-density floor, 40 pitches (29 plus 11 follow-ups), 7 signed referral terms, 3 sent paying Customers, and 1 paid post. Read every captured thread at ?threads=; three follow the tables.
| What happened, by option | Decisions | Done | Customers (Booked: credited, not all caused by this Play) |
|---|---|---|---|
| Pitch referral terms | 29 | 29 pitches, 11 follow-ups, 7 signed | 6 · $2,088 |
| Offer a paid post | 1 | Jess, $164 guarantee, approved | still inside its 90 days |
| Answer an unprompted mention · Hold the Commission · Not now | 2 · 2 · 1 | 2 written by you · 2 fixed · — | — |
| At 20 creators in the niche (the Use it when volume) | about 5 signed in 8 weeks | before-after, not proof | Other Startups’ results: +2.4 per 10 signed a month, ■■□□ Early sign, n 310 |
| Day | Event | What happened | Your time |
|---|---|---|---|
| 0 | event_118 Campaign.created | the three steps; the dry run fails billing-connected | 20 min |
| 1 | event_131 Integration.connected | Stripe payouts on | 10 min |
| 3 | event_160 Action.refused | fact-check refused a pitch stating a customer count; the rewrite sent | — |
| 9 | event_222 Agreement.signed | the first creator signs referral terms | — |
| 14 | event_290 Role.updated | promoted: pitches send after a delay window | — |
| 31 | event_460 Campaign.paused | disclosure: a second miss; that creator’s rungs paused until she fixed both | 5 min |
| 43 | event_590 Approval.approved | you approve Jess’s $164 paid post | 5 min |
| 1–56 | event_141 Task.assigned, first of 4 | you wrote 2 thank-yous and approved 1 guarantee; weekly reviews, from the POST /{namespace}/tasks/next log | 45 min · total 1.4 h measured, 2 h asked |
Partnerships · your agent → Jess Moreno, Sep 3, 10:05 · Your viewers keep asking how to get renewal notices out on time; your Aug 28 video drew 31 of those questions.¹ Leaseline does that job, and you can use it free.² If someone you send pays, you earn 20 % of what they pay for 12 months, after a 30-day refund window.³ *Signed with the Role’s disclosure line.*⁴
Jess, Sep 4, 09:12 · signed the referral terms; her first viewer paid on Sep 19.
- Over 2,000 landlords already trust Leaseline with their renewals.
+ Your viewers ask about renewal notices often: 7 of every 1,000 comments on your channel. Jess, 2026-10-05 15:30 · “Happy to do a dedicated video. What would that pay?” · Partnerships · your agent, 15:31 · *Thanks, Jess. Dana confirms the number by tomorrow evening.*⁵ The Brief went to you (
task_663), due Oct 6 17:00; you approved $164 at 11:20.
¹ Only the creator’s own public posts and the questions under them. ² Free access counts as payment; the disclosure line covers it. ³ The terms in numbers. ⁴ The fixed signature line, compiled from the Role’s disclosure Setting. ⁵ The routed line, compiled from the Role’s Settings.
Your settings
---
rate: 0.20 # of collected revenue, for 12 months
floor: 5 # buyer questions per 1,000 comments
paid-post: 2 # paying Customers before a paid post
---
Offer creators whose comments are full of landlords asking about renewals our referral terms and free access. Pay for a post only after 2 paying Customers; I approve every guarantee. $ npx startup-builder show plays/creator-partnership
rate 0.20 · floor 5 · paid-post 2 your file plays/creator-partnership.mdx:2-4,6 (Ask 2026-08-24)
family referral · worker role:partner-manager, owns never · chooses 6 (3 rule, 3 read) · sequences creator-pitch, creator-onboard, disclosure-fix · checks owned-by-a-person, fact-check, disclosure-hold, category, fraud-hold, creator-ceiling · stops 10 · placements gmail, outlook, yahoo-mail, tiktok, instagram, youtube, linkedin, x catalog play:creator-partnership@1 (Not live yet, gaps #5) Every key from the catalog
Compiled, not written: edit the Play record creator-partnership and its Leaseline run, 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.