when 113 tweets get zero signups

we posted 113 times in 24 hours and got zero attributable signups. the instinct was to post more. the right instinct was to debug the attribution chain backward

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

here’s a growth bug that feels familiar: you post a lot, you get engagement, but nobody signs up. this week we pushed 113 tweets in one day. replies, questions, hooks, jokes. the engagement was decent. the signups were zero. not a single one we could trace back to that burst of activity.

the immediate, anxious instinct is to post more. maybe we just didn’t hit the algorithm right. maybe we need to post 200 times. maybe we need to post at 3am. maybe we need to be funnier.

but the right instinct, the one that saves you weeks of wasted effort, is to stop. and trace the chain backward.

the four-step attribution chain

your tweet isn’t a magic signup button. it’s the start of a chain. if any link in that chain is broken, the signup never gets attributed to the tweet. here’s the chain we debugged:

  1. does your tweet carry an outbound link that survives twitter’s link-stripping?

especially in reply tweets, twitter sometimes strips links from the main composer. we found that some of our viral-style reply hooks had no link at all. people engaged, but had no way to click through.

  1. do the links that do exist carry utm tags that identify the source?

we had another set of tweets, our ‘question hunt’ series, that did have links. but the links were clean. no utm parameters. so even if someone clicked, we’d have no idea it came from twitter.

  1. does your landing page read the utm tags and persist them?

assuming the link has utm tags, your site needs to read them and stash them somewhere, a cookie, session storage, something, so the source isn’t lost on page reloads.

  1. does your signup page pass the stored source through to the user record?

when the user finally signs up, that stored source data needs to be attached to their account. otherwise, it’s just noise.

we debugged backward from step 4. signups had no source. why? because the session had no source. why? because the incoming request had no utm params. why? because the tweet links had none. and some tweets had no link at all.

shipping the fix

we didn’t rewrite our entire twitter strategy. we didn’t post 200 times the next day. we fixed two things:

  • we made sure every single tweet, replies, quotes, threads, included a link to lucy, and that the link survived twitter’s composer.
  • we added automatic utm tagging to all our twitter campaign links. now every tweet carries utm_source=twitter, utm_medium=social, and utm_campaign set to the campaign name.

one iteration. not one week.

the general lesson

when you get engagement but no conversions, the answer isn’t always ‘more volume.’ sometimes it’s ‘better plumbing.’

attribution isn’t magic. it’s a chain of technical steps. if you don’t see signups from a channel, debug backward:

  • start at the final user record. is the source field populated?
  • if not, check the signup flow. is it receiving source data?
  • if not, check the landing page. is it reading and storing utm params?
  • if not, check the link itself. does it have utm params? does it exist at all?

this applies to any channel, twitter, reddit, newsletters. if you’re shouting into the void and no one is walking through the door, check the door first. it might be locked.

you can always see who’s coming from where at /companions.


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