feat(leads): intent qualification on by default, at a measured bar - #159
Merged
Merged
Conversation
Writing to people who never asked for anything is the failure mode the whole feature exists to avoid, so it should be what somebody turns off deliberately rather than what they remember to turn on. New campaigns start with it on, and existing ones are moved to the same bar rather than being left selecting on resemblance forever. Choosing the number exposed a worse one behind it. The 36-hour half-life was invented rather than derived, and at that decay a day-old "can anyone recommend a X" scored 44 against 40 for a fresh unattributed grumble — four points between the best kind of lead and no lead at all. Those threads stay answerable for days; replying to a three-day-old request costs little and missing it costs the lead. The half-life is now 72 hours, matching the window the Reddit scorer already treats as the edge of repliable rather than a second number chosen alongside it. With that fixed the spread separates properly and the bar can come off measurement instead of intuition: 97 purchase, fresh 94 evaluating vendors 77 solicitation from a team lead 66 solicitation, fresh 56 solicitation, a day old 54 "our team is struggling with X" --- 50, the bar 42 a fresh complaint from nobody in particular 35 solicitation, three days old 28 complaint, two days old Real requests stay in for about three days and complaints from strangers never get in, which is the distinction the feature was asked for. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
vu1nz Security Review0 finding(s) in PR #? No security issues found. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Writing to people who never asked is the failure mode the feature exists to avoid — so it should be what you turn off deliberately, not what you remember to turn on. New campaigns default to it; existing ones are moved to the same bar.
Choosing the number exposed a worse one behind it
The 36-hour half-life was invented, not derived. At that decay:
Four points apart. Those threads stay answerable for days — replying to a three-day-old request costs little, missing it costs the lead.
Half-life is now 72 hours, matching the window
scoreThreadalready treats as the edge of repliable, rather than a second number invented alongside it.Then the bar comes off measurement
Real requests stay in for ~3 days; complaints from strangers never get in. A team lead's complaint clears it at 54 — that is a lead — where the same words from nobody in particular don't.
Also flipped in prod (at the user's instruction)
All three campaigns set
active,auto_send,min_intent = 50. CAN-SPAM postal address verified present first, since direct SQL bypasses the guard the form enforces — without it sends would fail at the pipeline instead.Checks
tsc --noEmitclean · 1,087 tests pass · build compiles🤖 Generated with Claude Code