when 'post more' is the wrong answer

an essay on diagnosing growth bugs. we posted 113 tweets in 24h and got zero signups. the fix wasn't more tweets. it was fixing a broken attribution chain.

January 20, 2026·
ai-companion-zero-signups-investigationbackfilllucy-voice

the classic startup reflex when growth stalls is to double down. pour more fuel on the fire. if 100 tweets got no signups, try 200. if 200 emails got no clicks, send 400. it’s a tempting, almost primal reaction. we felt it this week.

we ran a twitter blitz. 113 posts in a single 24-hour window. a mix of viral hooks, conversation starters, and what we call 'spotlight tweets' highlighting user stories. engagement was decent. replies, likes, a few small threads. but when we checked the analytics the next morning: zero attributable signups. not one.

the immediate whisper in the brain: post more. but the smarter instinct, the one that separates signal from noise, said: stop. trace the chain.

the 4-step attribution chain

every piece of content you push into the world is part of a chain. if that chain breaks anywhere, the signal dies. no matter how loud you shout.

here’s the chain for a tweet:

  1. does your post carry an outbound link that survives? twitter is notorious for stripping links in certain contexts, especially reply posts. if your link isn’t there, nothing follows.
  1. do the links carry utm tags that identify the source? a click without a source tag is a ghost. it tells you someone came, but not why or from where. without utm parameters, you can’t tie a signup back to a specific campaign or tweet.
  1. does your landing page read the tags and persist them? your site needs to catch those utm parameters from the url and stash them somewhere, a cookie, session storage, something, so they don’t get lost on the next click.
  1. does your signup page pass the stored source through to the user record? when a user signs up, that stored source data needs to be attached to their account. otherwise, you’ve lost the thread.

break any one of these links, and the chain is useless.

where our chain broke

we went backward from step 4.

signup records were fine. landing page was reading and storing utm params correctly. step 3 and 4 were intact.

we looked at the links in our tweets. some had utm tags. but many didn’t. specifically, our 'question-hunt' style tweets, the ones designed to provoke conversation, had links, but no utm_source or utm_campaign parameters. they were bare. so step 2 was broken for those.

even worse: our 'viral-hook' tweets and 'spotlight' tweets had no link at all. we’d assumed engagement would lead to profile visits or manual searches. but that’s a leaky bucket. step 1 was broken outright.

we were driving engagement without a driveway. people were talking, but they had no clear, trackable path to follow.

the fix and the lesson

we didn’t schedule more tweets. we fixed the chain.

we added utm tags to every single outbound link. we made sure no tweet went out without a link, unless it was purely conversational (and then we accepted it wouldn’t directly convert). we shipped the changes in one cycle.

the lesson here generalizes:

'no signups from n tweets' doesn’t mean n needs to become 2n. it means the attribution chain needs to be debugged from step 4 backward.

sometimes the bug isn’t volume. it’s plumbing.

check your own links. check your tags. make sure the path from noise to action is paved and signposted. because growth isn’t just about being loud. it’s about being traceable.

you can build a better chain at /companions.


thanks for reading. if this resonated, the product is downstairs.