phase 2 · listen
Buying moments
Go deeper
Who is ready to buy, how you spot them, and how one person moves from a random post on the internet to someone you message. Five words, how a link becomes moments, the tree, then the full map.
trigger · = · state · = · moment
Yes, these are the same thing.
Three names for one idea. This page uses moment: a kind of situation that makes someone ready to buy. Sales teams call these trigger events or buying triggers; a single sighting is an intent signal.
And yes, there are categories.
Moments split into cold (strangers, seen in public) and warm (people already touching your product, seen in your own data). Each side has families.
Detectors and signals are separate.
A detector is the rule you set up to spot a moment. A signal is one real person it caught. One rule, many catches.
part 1 · like you're five
You run a lemonade stand.
Five words, in the order things happen. The first two you decide once, by thinking. The next two happen every day, on their own. The last one is you acting on it.
1
Moment
you decide once
"People who just finished running are thirsty."
For real: "founders who launched and got zero signups." A kind of situation. No names yet.
2
Detector
you set up once
"Stand near the race finish line and look for people panting."
For real: "check Uneed every morning for launches with under 10 upvotes." Where to look + what to look for.
3
Signal
happens every day
"A runner in a red shirt just crossed the line at 10:42, panting."
For real: "Jane's listing, Oct 14, 4 upvotes." One sighting of one real person.
4
Lead
happens every day
"That runner. Go talk to her."
For real: Jane, once her signals are fresh and she fits who you sell to.
5
Playbook
you act
"Walk over with a cup. Don't shout prices from across the park."
For real: reply to her post with one useful fix. The planned way you reach people in that moment.
part 2 · from a link to moments
How a URL turns into the moments worth watching.
Four steps, each one reading the output of the last. The first three happen once per product (and again when you learn something). The fourth is what then runs every day.
1
url → brief
Build the brief
Reads: website analysis (landing page, pricing, docs, changelog), market research (competitive analysis, audience research), first-party data such as Stripe if connected, and a founder interview
Asks: What stage is the product in? What is it and what does it cost? Who does it say it's for? What social proof exists? Who else does the job, and where do buyers gather?
Makes: The brief, including product stage and the competitive landscape. Every line is tagged by how good its evidence is: a paying customer's words beat the founder's guess, which beats the model's guess.
input
vibedraft.app
brief
- stage: live, a handful of paying customers
- what: a distribution agent that finds people who need your product and drafts the messages
- for: indie hackers and small startups with a live product
- price: $19.99/mo, 7-day trial. Self-serve, so one person decides
- proof: a handful of early payers; the founder runs it on his own accounts
2
brief → icp
Find who buys
Reads: the brief, then the strongest evidence its product stage allows: current customers' shared traits if it has payers; active signups if it has signups but no payers; competitors' customers (reviews, case studies) if nobody has used it yet; plus audience research from where these buyers gather
Asks: What do the people who'd pay have in common that you can check on a stranger from the outside?
Makes: The ICP as a filter: a 'fits if' list, a 'not if' list, and three tests it must pass.
Built from early payers' traits plus the founder's own fit list. Strong evidence, small sample.
fits if
- built alone or with a team you can count on one hand
- has a public price
- launched in the last 90 days, or about to
- between $0 and a few hundred in MRR
- nobody owns distribution
not if
- sells to a buying committee
- needs thousands of cold emails
- wants strangers DMed automatically
- no product yet
three tests
✓ list: launch sites list them — ✓ count: new launches per week are countable · ✓ vouch: indie hackers talk to each other
3
icp → moments
Pick the moments
Reads: the ICP, the 13 cold moments, and the buyer's own words (their complaints, their jargon, where they post)
Asks: For each trigger event: does it happen to people who fit the ICP? What does it look like for them? Where does it leave a public trace? Can we read that place?
Makes: Each moment marked on, possible later, or off with a reason. Gates and ranking pick 2 to 4 to start, narrowest first.
4
moments → detectors
Write the detectors
Reads: the moments that are on, plus the buyer's words
Asks: For each moment: which places to watch, what words or fields to match, and how strong a match has to be?
Makes: Detectors that run every day and catch signals. That's the tree in part 3.
result — One or more detectors per moment that's on. See them in the tree ↓
step 3, up close
The same 13 moments, judged for this buyer
Every product starts from the same list. The ICP decides which ones are visible and worth chasing.
start here — on · possible later · off, can't be seen
Tried it and it failed — start here · narrowest, clearest, dated
Asking for a recommendation — strong, public, frequent
Doing it by hand — clear words: sheets, manual DMs
Set up, but no results — TrustMRR shows it directly
Comparing options — mostly comparing big schedulers
Unhappy with their current tool — contested: you'd fight incumbents
Competitor shake-up — bursts; run one when it happens
Trying again — rare but warm
Venting about the problem — common but vague
Crossed a threshold — less acute at $0 MRR
New in the role — "went full-time" posts
Taking stock — month-one posts, day 28 to 35
Hiring for the job you do — solo founders rarely post jobs
Then four pass/fail gates
reachable through a channel you have — the pain is acute · you can deliver it now · nobody already owns them
Then rank what's left
do they know each other — how many a month (under 20 means hand-selling) · how fast they see value · what it leads to next
part 3 · it's a tree
One product, many moments. One moment, many detectors.
Read it top to bottom. Down to the detectors it's a clean tree: each detector belongs to exactly one moment. At the bottom it stops being a tree, because one person can get caught by several detectors under several moments. Those people are your strongest leads.
PRODUCT · + who buys · MOMENTS · you pick · DETECTORS · you set up · SIGNALS · caught daily · LEADS · people
- VibeDraft — solo founders, live product, $0 to a few hundred MRR
- Tried it and it — failed
- Launch sites — Uneed, PeerPush: under 10 upvotes, last 7 days
- Acme Notes on Uneed — Oct 14 · 4 upvotes
- X search — "launched" + "crickets" or "0 signups"
- @jane_builds — "launched last week, crickets"
- Set up, but no — results
- TrustMRR — payments on, customers above 0, MRR $0
- Acme Notes — 12 customers · $0 MRR
- Asking for a — recommendation
- Reddit — r/SaaS, r/indiehackers: asking for tools
- X search — "recommend" + marketing, product link in bio
- @example_maker — "what do you use to find first customers?"
- Doing it by hand
- Reddit + X phrases — "google sheet" or "spreadsheet" + leads, DMs
- @example_maker — "tracking 200 leads in a google sheet"
- Hiring for the job — you do off: solo founders rarely post jobs
- Jane · Acme Notes — 2 moments · 3 signals · start here
- Marco — 1 moment · 1 signal
- Priya — 2 moments · 2 signals · start here
Why several detectors per moment
The same moment shows up in different places (Reddit, X, a launch site) and in different shapes (a phrase, a number, a dated event). More detectors catch more of the people in it, and two catches on one person make you surer.
Where the tree turns into a merge
Signals about the same person combine into one lead. A lead caught under two moments is usually a better first message than one caught once.
Not every signal is a person
An anonymous review still tells you what buyers hate. It feeds a comparison page or a post instead of a lead. Greyed moments are switched off because they can't be seen for this buyer.
Names, handles and numbers in the tree are invented examples.
TOP-DOWN · YOU THINK, ONCE BOTTOM-UP · THE WORLD, EVERY DAY Brief what you sell, to whom ICP who could ever buy Moments which ones apply to them Detectors where to look + what to match Posts, listings, reviews job ads, your app's events thousands a day Signals one person, one sighting Leads fresh + fits your ICP Playbook → paid you reach them dozens a handful weekly: what paid tells you which detectors and moments to keep the further right, the fewer people and the closer to paying
part 5 · the full map
Every buying moment, grouped.
The original seven from your doc are tagged with their number. New ones are tagged new. Pick a product to see what each moment looks like for its buyers.
Cold — Strangers, seen in public. Found by detectors that watch the web.
Shopping — Looking for a fix right now. · close to buying
Asking for a recommendation
aka recommendation request
new
They publicly ask what to use.
- spot it
- Reddit, X, forums: "what do you use for", "best tool for", "any recommendations"
VibeDraft — "any tool that writes X posts that don't sound like AI? tried 3, all slop"
Accountants — "What do you use to track which clients have paid? Excel isn't cutting it." (r/Bookkeeping)
Shopify stores — "Best abandoned-cart app that isn't $300 a month?" (r/shopify)
community answers
Comparing options
aka active evaluation
new
They've narrowed it to two or three and are weighing them.
- spot it
- "X vs Y", "alternatives to X", comparison threads, review-site comparisons
VibeDraft — "Typefully or Hypefury if I post every day?"
Accountants — "TaxDome or Karbon for a 3-person firm?"
Shopify stores — "Klaviyo vs Omnisend for a store doing $10k a month?"
comparison pages, community answers
Switching — Have a fix, want out of it. · close to buying
Unhappy with their current tool
aka competitor dissatisfaction
from the 7 · #2
They pay for something and it's letting them down.
- spot it
- complaints, low-star reviews, "cancelling", "switching from"
VibeDraft — "cancelling my scheduler. $29 a month to post things nobody sees"
Accountants — 2-star review: "powerful, but my clients can't figure out the portal"
Shopify stores — "my email tool doubled my bill when my list hit 15k"
comparison pages, founder-led outbound
Competitor shake-up
aka competitor event
new
A price rise, shutdown, acquisition or outage pushes many users to look at once.
- spot it
- competitor pricing pages, changelogs, news, a spike in angry threads
VibeDraft — a popular scheduler raises prices or loses API access
Accountants — a practice-management tool announces a big price increase
Shopify stores — a review app is acquired and ends its free plan
offer post, comparison pages
Burned — Tried something and it didn't work. · close to buying
Tried it and it failed
from the 7 · #1
They did the obvious thing and got nothing.
- spot it
- dated attempts with bad results: launch listings, "tried X, didn't work"
VibeDraft — Uneed listing, 4 upvotes, then a tweet: "launched, crickets"
Accountants — "set up automatic reminders in QuickBooks. clients ignore them anyway"
Shopify stores — "spent $2k on Meta ads last month, 3 sales"
founder-led outbound
Trying again
aka relaunch
from the 7 · #7
Back for another go after the first one flopped.
- spot it
- the same product or domain showing up twice; "relaunching", "v2"
VibeDraft — the same domain on Product Hunt in March and again in October
Accountants — "third practice-management tool in two years"
Shopify stores — "relaunching my store under a new brand after a slow first year"
launch week, founder-led outbound
Struggling — Feel the pain, not shopping yet. · close to buying
Venting about the problem
new
Frustrated, but haven't named a tool or a fix.
- spot it
- pain phrases in the buyer's own words
VibeDraft — "building is the easy part. getting anyone to care is impossible"
Accountants — "chasing clients for payment is the worst part of this job"
Shopify stores — "half my week goes to 'where is my order' emails"
community answers
Doing it by hand
aka manual workaround
from the 7 · #5
A spreadsheet, a script, or a ritual they resent.
- spot it
- "spreadsheet", "I built a script", template requests
VibeDraft — "I track leads in a Google Sheet and DM everyone myself"
Accountants — "anyone have an Excel template for tracking client invoices?"
Shopify stores — "I copy every order into a spreadsheet to know when to restock"
community answers, offer post
Set up, but no results
from the 7 · #3
All the setup is done and nothing is coming out the other end.
- spot it
- public records where setup exists and the result is zero
VibeDraft — TrustMRR: payments connected, customers above zero, MRR $0
Accountants — Usually invisible from outside for this buyer, so the detector stays off.
Shopify stores — store live 6 months, 0 reviews, ads still running
founder-led outbound, offer post
Changing — Something in their world just shifted. · close to buying
Crossed a threshold
aka growth milestone, funding event
from the 7 · #6
Grew past a limit, raised money, or hit a cap.
- spot it
- announcements, plan-limit complaints, funding news
VibeDraft — "just passed 100 users, can't keep up with replying to everyone"
Accountants — "just signed our 50th client"
Shopify stores — "crossed $1M in sales, time to get serious about ops"
founder-led outbound
Hiring for the job you do
aka hiring signal
new
About to solve it with a person instead of software.
- spot it
- job boards, "we're hiring" posts
VibeDraft — "hiring a part-time social media manager for my SaaS"
Accountants — job post: "billing coordinator, small CPA firm"
Shopify stores — "looking for a VA to answer customer emails"
founder-led outbound
New in the role
aka job change, new business
new
Just started the business or took over the job. New owners change tools.
- spot it
- "just quit to go full-time", "just opened my firm", job changes
VibeDraft — "quit my job last month to go full-time on my SaaS"
Accountants — "just left Big 4 to open my own practice"
Shopify stores — "just took over marketing at a DTC brand"
weekly long-form, founder-led outbound
Taking stock
from the 7 · #4
They posted their own numbers and want to know what they mean.
- spot it
- "month one", "year in review", open-startup pages
VibeDraft — "month 1: 212 visitors, 9 signups, $0"
Accountants — Usually invisible from outside for this buyer, so the detector stays off.
Shopify stores — "my store's first year, in numbers"
founder-led outbound
◷
Seasonal window timing, not a moment
It doesn't tell you who; it tells you when every moment above runs hotter or colder.
VibeDraft — January planning posts, end-of-month MRR posts, the week after a big launch day
Accountants — right after tax deadlines (May and the fall); never during busy season
Shopify stores — September to October before Black Friday, and January returns season
Warm — People already touching your product. Found in your own data, so no web-watching needed.
noticing → trying → paying → left
Noticing you — Paying attention, haven't signed up. · close to buying
Engaged with your content
aka content engagement
new
Replied, bookmarked, followed, or joined your newsletter.
- spot it
- your own analytics and newsletter list
VibeDraft — replied to your post about finding first users
Accountants — commented on your LinkedIn post about late payments
Shopify stores — joined your newsletter about email flows
offer post; reply only if they spoke first
Hand-raise
aka inbound request, opt-in
new
They asked for your offer and handed over their details: a link, an email, answers to a few questions.
- spot it
- replies to your offer post, lead-magnet form submissions, waitlist survey answers
VibeDraft — replied to your "drop your link, I'll find 3 people ready for it" post with their product URL
Accountants — downloaded your overdue-invoice email templates with their firm's email
Shopify stores — entered their store URL into your free cart-recovery audit
deliver the offer, then one follow-up
Checked your pricing
aka pricing-page visit
new
Visited the pricing page more than once.
- spot it
- your site analytics
VibeDraft — visited vibedraft.app/pricing twice this week
Accountants — opened your pricing page from a Reddit thread
Shopify stores — viewed pricing, then your Shopify app listing
owned content, retargeting; email only if they gave it
Trying you — Signed up, not paying yet. · close to buying
Signed up, didn't start
aka unactivated signup
new
Made an account, never did the first thing that matters.
- spot it
- your app: no activation event in 24 hours
VibeDraft — connected X, never generated a draft
Accountants — created an account, never imported clients
Shopify stores — installed the app, never switched on a flow
activation nudge
Trial ending, not converted
aka trial expiration
new
A few days left and no sign they'll pay.
- spot it
- your app plus Stripe trial dates
VibeDraft — day 5 of 7, two drafts made, none scheduled
Accountants — day 10 of 14, one invoice sent
Shopify stores — day 6 of 7, flow on, no recovered carts yet
stalled-trial rescue
Went quiet
aka dormant user
new
Signed up, used it a bit, then stopped.
- spot it
- your app: no logins for 30 days
VibeDraft — last login 5 weeks ago
Accountants — no invoices sent in a month
Shopify stores — app installed, flows paused
bring back quiet signups
Paying you — Customers, in a moment that matters. · close to buying
Payment failed
aka involuntary churn, dunning
new
The card bounced.
- spot it
- Stripe webhook
VibeDraft — card expired on renewal
Accountants — card declined on the monthly charge
Shopify stores — Shopify billing failed
failed payment
Using it less
aka usage decline, churn risk
new
Still paying, but usage is dropping. Usually comes before a cancel.
- spot it
- your app: usage down sharply over a few weeks
VibeDraft — scheduled 20 posts a week, now 2
Accountants — sending half the reminders they used to
Shopify stores — flows on, but no new campaigns in a month
a personal check-in, by hand
Outgrowing their plan
aka expansion signal
new
Hitting limits, or has a second use for it.
- spot it
- plan limits hit; a second product or location visible
VibeDraft — launched a second product
Accountants — added a second office
Shopify stores — opened a second store
second product
Just had a win
aka customer success milestone
new
Got a result worth talking about.
- spot it
- your app: a milestone; a happy reply
VibeDraft — first paying customer came from a VibeDraft reply
Accountants — cut overdue invoices in half
Shopify stores — recovered $3k in carts this month
share a new customer; ask for a story
Left you — Cancelled. · close to buying
Cancelled
aka voluntary churn
new
Gone, usually with a reason.
- spot it
- Stripe cancel plus the reason they gave
VibeDraft — "didn't sound like me"
Accountants — "my clients didn't like the portal"
Shopify stores — "too expensive at my size"
win-back, only once the reason is fixed
what changed
From seven to a full map.
Changes from the original seven
- All seven kept, sorted into families and renamed in plain words.
- Six cold moments added: asking for a recommendation, comparing options, venting, competitor shake-up, hiring for the job, new in the role.
- Seasonal window moved out. It tells you when, not who, so it sits beside the moments as timing.
- A warm side added with eleven moments from your own data. These feed the lifecycle playbooks.
- Families are ranked by how close to buying. Shopping is hottest; changing is coolest but often earliest.
How to add a moment later
1 — Acute. The pain makes them act soon, not someday.
2 — Detectable. You can see it in public or in your own data.
3 — Distinct. It needs a different opening line or playbook than the moments you have.
4 — Frequent. It shows up often enough to be worth a detector.