@opendirectory.dev/skills 0.1.38 → 0.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,108 @@
1
+ [
2
+ {
3
+ "id": "eval_001",
4
+ "name": "Developer tools ICP (devops) -- full pipeline",
5
+ "input": {
6
+ "product": "Observability platform that replaces Datadog for teams under 200 engineers",
7
+ "icp_role": "DevOps engineers at mid-size companies",
8
+ "icp_pain": "Datadog bill growing faster than team size",
9
+ "category": "devops observability monitoring",
10
+ "competitors": ["Datadog", "New Relic", "Grafana"]
11
+ },
12
+ "expected": {
13
+ "min_channels": 8,
14
+ "required_channel_types": ["reddit", "newsletter", "conference"],
15
+ "top_channel_must_be_type": "reddit",
16
+ "top_channel_must_contain": "devops",
17
+ "reddit_channels_min": 3,
18
+ "icp_signals_min": 10,
19
+ "competitor_layer_ran": true,
20
+ "entry_tactic_must_not_contain": "post about your product",
21
+ "banned_words": ["powerful", "robust", "seamless", "innovative", "game-changing", "streamline", "leverage", "transform", "revolutionize"],
22
+ "no_em_dashes": true
23
+ },
24
+ "notes": "Full pipeline. r/devops should be #1 with high icp_signal_count. Datadog/Grafana competitor mentions should boost channels where those tools are discussed. Newsletter like 'DevOps Weekly' should appear. KubeCon or similar conference expected."
25
+ },
26
+ {
27
+ "id": "eval_002",
28
+ "name": "B2B sales tool ICP -- competitor layer fires",
29
+ "input": {
30
+ "product": "AI-powered outbound sales tool for B2B SaaS companies",
31
+ "icp_role": "sales leaders at B2B SaaS startups",
32
+ "icp_pain": "outbound sequences get ignored, response rates under 1%",
33
+ "category": "B2B sales outbound CRM",
34
+ "competitors": ["Clay", "Apollo", "HubSpot", "Outreach"]
35
+ },
36
+ "expected": {
37
+ "min_channels": 6,
38
+ "required_channel_types": ["reddit", "linkedin_group"],
39
+ "competitor_layer_ran": true,
40
+ "competitor_channels_present": true,
41
+ "channels_differ_from_eval_001": true,
42
+ "reddit_channels_must_not_contain": "devops",
43
+ "entry_tactic_must_not_contain": "post about your product",
44
+ "no_em_dashes": true
45
+ },
46
+ "notes": "Competitor layer should fire strongly on Clay/Apollo/HubSpot. LinkedIn groups should appear (sales leaders use LinkedIn more than Reddit). Channel list should differ substantially from eval_001 -- different ICP produces different channels."
47
+ },
48
+ {
49
+ "id": "eval_003",
50
+ "name": "Consumer app ICP -- different channel mix",
51
+ "input": {
52
+ "product": "Personal finance app for people tracking subscriptions",
53
+ "icp_role": "people frustrated by unknown monthly charges",
54
+ "icp_pain": "losing money on subscriptions I forgot about",
55
+ "category": "personal finance consumer app subscriptions",
56
+ "competitors": ["Rocket Money", "Trim", "PocketGuard"]
57
+ },
58
+ "expected": {
59
+ "min_channels": 5,
60
+ "required_channel_types": ["reddit", "youtube"],
61
+ "must_not_include_type": "linkedin_group",
62
+ "channels_differ_from_eval_001": true,
63
+ "channels_differ_from_eval_002": true,
64
+ "no_em_dashes": true
65
+ },
66
+ "notes": "Consumer ICP should surface r/personalfinance, YouTube channels, possibly Discord. LinkedIn groups are wrong for this ICP -- flag if they appear. The channel mix should look nothing like devops or sales tool results."
67
+ },
68
+ {
69
+ "id": "eval_004",
70
+ "name": "Very niche ICP -- thin data handled honestly",
71
+ "input": {
72
+ "product": "Compliance automation for small community banks",
73
+ "icp_role": "compliance officers at community banks under $500M assets",
74
+ "icp_pain": "BSA/AML reporting takes 3 days per quarter",
75
+ "category": "community bank compliance BSA AML regulatory",
76
+ "competitors": []
77
+ },
78
+ "expected": {
79
+ "thin_data_acknowledged": true,
80
+ "min_channels": 2,
81
+ "no_fabricated_member_counts": true,
82
+ "competitor_layer_ran": false,
83
+ "report_must_say": "member count not found",
84
+ "no_em_dashes": true
85
+ },
86
+ "notes": "This ICP is niche enough that Reddit signal count will be low. Script should still try DuckDuckGo for conference/newsletter/association channels. Output must not fabricate community sizes. If member count unavailable, must say 'member count not found' not an estimated number."
87
+ },
88
+ {
89
+ "id": "eval_005",
90
+ "name": "No competitors provided -- competitor layer skipped cleanly",
91
+ "input": {
92
+ "product": "Email deliverability monitoring for SaaS companies",
93
+ "icp_role": "growth engineers at B2B SaaS",
94
+ "icp_pain": "transactional emails landing in spam without warning",
95
+ "category": "email deliverability SMTP SaaS",
96
+ "competitors": []
97
+ },
98
+ "expected": {
99
+ "competitor_layer_ran": false,
100
+ "output_notes_competitor_layer_skipped": true,
101
+ "min_channels": 4,
102
+ "required_channel_types": ["reddit"],
103
+ "no_em_dashes": true,
104
+ "output_recommends_adding_competitors": true
105
+ },
106
+ "notes": "Competitor layer should be cleanly skipped with no errors. Output should note that competitor layer was not run and suggest adding competitors (MXroute, Mailgun, Postmark, etc.) for richer results. Signal-trace should still produce valid Reddit channels."
107
+ }
108
+ ]
@@ -0,0 +1,147 @@
1
+ # Channel Types Reference
2
+
3
+ Seven channel types discovered by this skill. Each type has a different discovery method, metadata available, and scoring characteristics.
4
+
5
+ ---
6
+
7
+ ## 1. Reddit
8
+
9
+ **Discovery method:** Signal-trace (primary) -- search Reddit for ICP pain posts, extract which subreddits those posts came from. Subreddits with the most ICP posts = highest-confidence channels.
10
+
11
+ **Metadata available:**
12
+ - `subscribers` -- total member count from `r/{sub}/about.json`
13
+ - `active_user_count` -- users online right now (proxy for posts/day activity)
14
+ - `public_description` -- subreddit purpose from about.json
15
+ - `icp_signal_count` -- posts matching ICP queries found in this subreddit (counted by script)
16
+ - `competitor_mentions` -- how many ICP posts also mention a competitor product
17
+
18
+ **Scoring notes:**
19
+ - Highest-confidence channel type because signals are traced from actual ICP posts
20
+ - active_user_count / 100 used as activity_score (capped at 30)
21
+ - Open entry -- no penalty
22
+
23
+ **Evidence standard:** Every Reddit channel must have at least 1 evidence_post from the raw data. If icp_signal_count = 0, the channel was found via competitor layer, not signal_trace -- note this distinction.
24
+
25
+ ---
26
+
27
+ ## 2. Slack
28
+
29
+ **Discovery method:** DuckDuckGo search -- `"{category} slack community"` and `"{icp_role} slack workspace"`
30
+
31
+ **Metadata available:**
32
+ - Member count from search snippets (e.g. "Join 12,000+ DevOps professionals")
33
+ - URL from search result (often a landing page or Slack direct link)
34
+
35
+ **Scoring notes:**
36
+ - No icp_signal_count from script (0 unless competitor layer fires)
37
+ - Member count drives size component of score
38
+ - activity_score defaults to 5 (DDG doesn't expose post frequency)
39
+ - Most Slack communities are open-invite (via website form) -- no penalty
40
+
41
+ **Evidence standard:** Channel name and URL must come from DDG results. Member count from snippet or 0 -- never estimated. Note if invite-required (entry_type = "invite-only", -10 penalty).
42
+
43
+ ---
44
+
45
+ ## 3. Discord
46
+
47
+ **Discovery method:** DuckDuckGo search -- `"{icp_role} discord server"` and `"{category} discord community"`
48
+
49
+ **Metadata available:**
50
+ - Member count from DDG snippets
51
+ - Invite link or website from search result
52
+
53
+ **Scoring notes:**
54
+ - Same scoring structure as Slack
55
+ - Many Discord servers are invite-only -- check the URL for discord.gg invite links
56
+ - Gaming/consumer ICPs: Discord scores higher than Slack
57
+
58
+ **Evidence standard:** Same as Slack. If invite link expires, note as "invite may expire -- check current link."
59
+
60
+ ---
61
+
62
+ ## 4. Newsletter
63
+
64
+ **Discovery method:** DuckDuckGo search -- `"{category} newsletter weekly"` and HN "Ask HN: what newsletters do you read about {category}"
65
+
66
+ **Metadata available:**
67
+ - Subscriber count from DDG snippets (less reliable than Reddit API)
68
+ - Frequency (weekly/monthly) from snippet
69
+ - Sponsorship availability often mentioned in description
70
+
71
+ **Scoring notes:**
72
+ - Newsletters score well for reach but entry is typically paid sponsorship or content contribution
73
+ - entry_type = "paid" (-20 penalty) if snippet mentions "sponsor" or "advertising"
74
+ - Subscriber count varies widely -- treat as directional
75
+
76
+ **Evidence standard:** Newsletter name must appear in DDG results. Subscriber count from snippet or "subscriber count not found."
77
+
78
+ ---
79
+
80
+ ## 5. Podcast
81
+
82
+ **Discovery method:** DuckDuckGo search -- `"{icp_role} podcast"` and `"best {category} podcast"`
83
+
84
+ **Metadata available:**
85
+ - Episode count from snippet
86
+ - Frequency (weekly/biweekly) from snippet
87
+ - Guest appearances as entry point
88
+
89
+ **Scoring notes:**
90
+ - Podcasts score lower than Reddit because reach per episode is smaller and entry requires production effort
91
+ - Guest appearances are the primary entry tactic -- not "listening"
92
+ - activity_score defaults to 5
93
+
94
+ **Evidence standard:** Podcast name and URL from DDG results. Episode count from snippet or omitted.
95
+
96
+ ---
97
+
98
+ ## 6. Conference
99
+
100
+ **Discovery method:** DuckDuckGo search -- `"{category} conference summit 2025"` and `"{icp_role} conference annual"`
101
+
102
+ **Metadata available:**
103
+ - Attendee count from snippet
104
+ - Date and location from snippet
105
+ - Ticket price category (free/paid) from snippet
106
+
107
+ **Scoring notes:**
108
+ - Conferences have the highest ICP density per touchpoint but low accessibility
109
+ - entry_type = "paid" (-20 penalty) for paid conferences
110
+ - Sponsorship is a separate entry path (expensive) -- not the primary tactic
111
+ - Hallway conversations and evening events > sponsored sessions for early-stage founders
112
+
113
+ **Evidence standard:** Conference name from DDG results. Attendee count from snippet or "attendee count not found." Check for 2025/2026 dates -- exclude past conferences.
114
+
115
+ ---
116
+
117
+ ## 7. YouTube Channel
118
+
119
+ **Discovery method:** DuckDuckGo search -- `"best {category} youtube channel"` and `"{icp_role} tutorial youtube"`
120
+
121
+ **Metadata available:**
122
+ - Subscriber count from DDG snippets
123
+ - Channel name and URL
124
+
125
+ **Scoring notes:**
126
+ - YouTube channels are consumption channels, not community channels
127
+ - Entry tactic = guest appearance or collaboration, not commenting
128
+ - High subscriber counts inflate scores -- cap with size component (log scale)
129
+
130
+ **Evidence standard:** Channel name and subscriber count from DDG results.
131
+
132
+ ---
133
+
134
+ ## 8. Forum (catch-all)
135
+
136
+ **Discovery method:** Competitor layer DuckDuckGo search -- `"{competitor} community forum users"`
137
+
138
+ **Metadata available:**
139
+ - URL from DDG results
140
+ - Description from snippet
141
+
142
+ **Scoring notes:**
143
+ - Competitor forums = high intent ICP (actively evaluating alternatives)
144
+ - icp_signal_count = 0, but competitor_mentions bumped to 3 as proxy
145
+ - Includes HN (scored separately with actual signal count)
146
+
147
+ **Evidence standard:** URL and name from DDG results or direct knowledge (HN is always valid).
@@ -0,0 +1,179 @@
1
+ # Entry Tactic Templates by Channel Type
2
+
3
+ These are starting templates. The AI must customize each tactic for the specific community, using evidence posts and the subreddit description to identify actual thread types, posting norms, and community rules.
4
+
5
+ ---
6
+
7
+ ## Reddit
8
+
9
+ **Template structure:** Thread type + content format + community norm + what to avoid.
10
+
11
+ **Thread types to look for:**
12
+ - Weekly/monthly megathreads: "What are you working on?", "Tools & Projects", "Self-Promotion Saturday", "Feedback Friday", "Show HN" equivalent threads
13
+ - Recurring "Help" or "Question" flairs
14
+ - Monthly community surveys or AMAs
15
+
16
+ **Content formats that get upvotes:**
17
+ - Technical post-mortems: "We did X, it failed, here is why, here is what we changed"
18
+ - Comparison breakdowns: "We evaluated 5 tools for {pain} -- here is our matrix"
19
+ - Problem-framing posts: "Anyone else dealing with {pain}? We found three approaches..."
20
+ - Open questions with context: "We are building {thing}. Ran into {problem}. What would you do?"
21
+
22
+ **Universal anti-patterns for Reddit:**
23
+ - Posting product links in non-promotional threads (auto-removed in most subreddits)
24
+ - Asking "what tools do you use?" without a specific problem context (flagged as market research farming)
25
+ - First post is a product announcement (zero karma = instant distrust)
26
+ - Responding to competitor complaints with "you should try our product"
27
+
28
+ **Example (r/devops):** "Find the weekly 'What are you working on?' thread (pinned every Monday by automoderator). Reply with a 3-sentence technical challenge: what you were trying to do, what broke, and what you tried. No product mention. Build 3-4 posts of karma before posting standalone content."
29
+
30
+ ---
31
+
32
+ ## Slack
33
+
34
+ **Template structure:** Specific channel within the workspace + conversation format + timing.
35
+
36
+ **Entry sequence:**
37
+ 1. Join via website form or invite link
38
+ 2. Introduce yourself in #introductions with: role, company, one technical problem you are currently solving
39
+ 3. Spend 1-2 weeks answering questions in relevant channels before posting about your product
40
+ 4. Post in #show-and-tell or #tools channels after establishing presence
41
+
42
+ **Content formats that get engagement:**
43
+ - Asking a specific technical question (signals you are a practitioner, not a vendor)
44
+ - Sharing a non-promotional resource (article, script, guide)
45
+ - Answering someone else's question in detail
46
+
47
+ **Anti-patterns:**
48
+ - DM-ing members directly to pitch (almost always a ban)
49
+ - Cross-posting the same message in multiple channels
50
+ - Posting product links without being asked
51
+
52
+ ---
53
+
54
+ ## Discord
55
+
56
+ **Template structure:** Server channel + role assignment + gradual contribution.
57
+
58
+ **Entry sequence:**
59
+ 1. Join via invite link
60
+ 2. Complete any onboarding (many servers require role selection or intro post)
61
+ 3. Post in #introductions: role + what you build + one specific problem
62
+ 4. Contribute in technical channels for 1-2 weeks before mentioning your product
63
+
64
+ **Content formats:**
65
+ - Voice channels / stage events: joining community calls builds trust faster than text
66
+ - Sharing tools, scripts, or resources in #resources or #tools channels
67
+ - Participating in community challenges or hackathons
68
+
69
+ **Anti-patterns:**
70
+ - Posting in #general with a promotional message on day 1
71
+ - Spamming invite links in other servers
72
+ - Pinging @everyone or using excessive notifications
73
+
74
+ ---
75
+
76
+ ## Newsletter
77
+
78
+ **Template structure:** Contribution type + relationship path + timeline.
79
+
80
+ **Entry approaches (ranked by accessibility):**
81
+ 1. **Sponsor:** Most newsletters have a sponsor slot. Relevant for products with budget.
82
+ 2. **Guest article:** Pitch a technical deep-dive or case study. Must be non-promotional and provide genuine value.
83
+ 3. **Mention-worthy news:** Share something newsworthy (open-source release, research finding, benchmark) that the editor would want to share organically.
84
+
85
+ **Content formats that get accepted:**
86
+ - Data-backed insights ("We analyzed 500 incidents -- here is what caused the most downtime")
87
+ - Practical guides with code/config examples
88
+ - Contrarian takes with evidence
89
+
90
+ **Anti-patterns:**
91
+ - Pitching a sponsored post that reads like a product description
92
+ - Sending a cold pitch with no context about why your content fits the audience
93
+ - Sending the same pitch to 10 newsletters at once (editors talk to each other)
94
+
95
+ ---
96
+
97
+ ## Podcast
98
+
99
+ **Template structure:** Guest pitch angle + pre-qualification + follow-up.
100
+
101
+ **Entry approach:**
102
+ 1. Listen to 3-5 episodes to identify the host's specific framing and guest style
103
+ 2. Pitch as a practitioner, not a founder: "I am a DevOps engineer who spent 2 years solving X. I have specific opinions about Y that your audience would disagree with."
104
+ 3. Lead with controversy or counter-intuition, not company credentials
105
+
106
+ **Pitch elements that work:**
107
+ - A specific claim the audience will want to debate
108
+ - A technical story with a surprising outcome
109
+ - A data-backed finding that contradicts conventional wisdom
110
+
111
+ **Anti-patterns:**
112
+ - "I am the founder of X and would love to share our story" (generic, rejected)
113
+ - Pitching via mass email tools (gets filtered as spam)
114
+ - Offering to pay to be a guest (podcast integrity signal to hosts)
115
+
116
+ ---
117
+
118
+ ## Conference
119
+
120
+ **Template structure:** Specific engagement context + entry level + timeline.
121
+
122
+ **Entry approaches (ranked by cost/effort):**
123
+ 1. **Attend + hallway conversations:** Cheapest. Identify 3-5 specific sessions where your ICP will concentrate. Prepare a 30-second context-setting intro. Bring nothing promotional.
124
+ 2. **Submit a talk:** Submit 6+ months before the conference. Frame as a practitioner talk, not a product demo. "How we cut alert fatigue by 70% (and what didn't work)" beats "Introducing X."
125
+ 3. **Sponsor a workshop or unconference slot:** Moderate cost. Gives you a captive audience for 45 minutes without a hard pitch.
126
+ 4. **Conference sponsorship:** Expensive. Only viable if the conference matches your ICP exactly.
127
+
128
+ **Hallway conversation format:**
129
+ - Ask what they are currently working on (not their job title)
130
+ - Listen for the specific problem before mentioning your product
131
+ - Exchange contact with context: "I am working on something related to what you just described -- can I follow up?"
132
+
133
+ **Anti-patterns:**
134
+ - Setting up a booth and waiting for people to come to you
135
+ - Handing out branded swag with no conversation
136
+ - Pitching during the speaker's Q&A
137
+
138
+ ---
139
+
140
+ ## YouTube
141
+
142
+ **Template structure:** Collaboration angle + format match + audience overlap.
143
+
144
+ **Entry approaches:**
145
+ 1. **Guest appearance / collaboration:** Reach out to mid-size channels (10K-100K subscribers). Offer to demo your product in the context of a problem the channel covers.
146
+ 2. **Comment contribution:** Leave specific, detailed technical comments on relevant videos. Builds name recognition if comment is genuinely useful.
147
+ 3. **Response video:** Create a video that directly responds to or extends content from a popular channel in your space.
148
+
149
+ **Content formats:**
150
+ - Tutorials showing how to solve a specific problem (not "intro to our product")
151
+ - Behind-the-scenes engineering decisions ("why we chose X over Y")
152
+ - Live coding / live debugging sessions
153
+
154
+ **Anti-patterns:**
155
+ - Posting promotional comments with product links (removed by YouTube spam filters)
156
+ - Asking channels to "check out our product" in collaboration outreach
157
+ - Creating a channel with only product demos and expecting organic growth
158
+
159
+ ---
160
+
161
+ ## Hacker News
162
+
163
+ **Template structure:** Post type + framing + timing.
164
+
165
+ **Entry approaches:**
166
+ 1. **Show HN:** "Show HN: [product name] -- [what it does in one clause]" Posts that include a working demo, clear problem statement, and invite criticism score highest.
167
+ 2. **Ask HN:** "Ask HN: How do you handle [specific technical problem]?" -- Join the conversation, answer questions, mention your product only if directly relevant and asked.
168
+ 3. **Comment on relevant stories:** Find stories about competitor products or your problem space. Leave detailed, opinionated technical comments.
169
+
170
+ **Timing:**
171
+ - Post Show HN between 7am-10am US Eastern on weekdays
172
+ - Avoid Friday afternoons and weekends
173
+ - Flag posts by 8am to catch morning traffic
174
+
175
+ **Anti-patterns:**
176
+ - "I am the founder of X -- check out our product" (downvoted as marketing)
177
+ - Posting without a working demo or detailed technical explanation
178
+ - Flagging/reporting competitor posts to reduce their visibility
179
+ - Posting the same content twice
@@ -0,0 +1,141 @@
1
+ # Channel Scoring Guide
2
+
3
+ ## Formula
4
+
5
+ ```python
6
+ channel_score = (
7
+ icp_signal_count * 10 # ICP posts traced to this channel
8
+ + min(math.log10(max(member_count, 1)) * 15, 50) # community size (log scale, max 50)
9
+ + min(activity_score, 30) # posts/week proxy (max 30)
10
+ + competitor_mention_count * 5 # competitor discussed here = ICP present
11
+ ) - entry_difficulty_penalty # -20 paid, -10 invite-only, 0 open
12
+ ```
13
+
14
+ ## Component Breakdown
15
+
16
+ ### icp_signal_count (weight: 10 per signal)
17
+
18
+ The number of Reddit/HN posts matching ICP queries that were found in this channel. This is the primary driver.
19
+
20
+ - 10 signals = +100 points (pushes a channel to top-priority on its own)
21
+ - 5 signals = +50 points
22
+ - 1 signal = +10 points
23
+ - 0 signals = 0 (channel found via DDG, not signal-trace)
24
+
25
+ **Why highest weight:** A developer clicking "post" in r/devops about the exact pain your product solves is the strongest possible channel signal. It means your ICP is not just a member -- they are actively discussing the problem there.
26
+
27
+ ### member_count (log scale, max 50 points)
28
+
29
+ Log10 of member count * 15, capped at 50 to prevent massive channels from dominating.
30
+
31
+ | Members | Score contribution |
32
+ |---|---|
33
+ | 1,000 | 45 |
34
+ | 10,000 | 45 |
35
+ | 50,000 | 50 (capped) |
36
+ | 100,000 | 50 (capped) |
37
+ | 500,000 | 50 (capped) |
38
+
39
+ **Why log scale:** The difference between 1K and 10K members matters. The difference between 200K and 500K members does not -- both are "large enough." Log scale reflects this.
40
+
41
+ **Why capped:** A 5M-member general subreddit like r/programming would score 65+ on size alone even with 0 ICP signals. The cap prevents this.
42
+
43
+ ### activity_score (max 30 points)
44
+
45
+ Reddit: `active_user_count / 100` (users currently online = proxy for posts/week frequency), capped at 30.
46
+
47
+ DuckDuckGo channels: defaults to 5 (DDG doesn't expose activity metrics).
48
+
49
+ HN: hardcoded to 20 (HN is always active for tech/startup ICPs).
50
+
51
+ | Active users | Activity score |
52
+ |---|---|
53
+ | 100 | 1 |
54
+ | 500 | 5 |
55
+ | 1,000 | 10 |
56
+ | 2,000 | 20 |
57
+ | 3,000+ | 30 (capped) |
58
+
59
+ ### competitor_mention_count (weight: 5 per mention)
60
+
61
+ Number of ICP posts in this channel that also mention a competitor product.
62
+
63
+ **Why this matters:** A post that says "I'm trying to decide between Datadog and New Relic" in r/devops tells you three things: (1) the ICP is in this channel, (2) they are actively evaluating tools, (3) they are reachable at that exact moment of evaluation.
64
+
65
+ - 5 competitor mentions = +25 points
66
+ - 10 competitor mentions = +50 points
67
+
68
+ ### entry_difficulty_penalty
69
+
70
+ | Entry type | Penalty | When to apply |
71
+ |---|---|---|
72
+ | Open | 0 | Free to join, no approval needed |
73
+ | Invite-only | -10 | Requires invite link or member approval |
74
+ | Paid | -20 | Requires paid membership or sponsorship to reach audience |
75
+
76
+ **Why penalty, not exclusion:** A paid conference with 500 exact-ICP attendees is still worth knowing about. The penalty reduces its score relative to free channels -- it doesn't hide it.
77
+
78
+ ---
79
+
80
+ ## Tier Thresholds
81
+
82
+ | Tier | Score range | Interpretation |
83
+ |---|---|---|
84
+ | top-priority | >= 100 | Strong ICP signal + sufficient size + accessible. Start here. |
85
+ | high | 60-99 | Good signal or good size. Second tier for outreach. |
86
+ | medium | 30-59 | Moderate signal. Worth watching but not the first channel to invest in. |
87
+ | low | < 30 | Thin signal or small community. Useful for niche products, not general GTM. |
88
+ | excluded | < 5 | Filtered out entirely. DDG noise, irrelevant results. |
89
+
90
+ ---
91
+
92
+ ## Worked Examples
93
+
94
+ ### r/devops with 34 ICP signals
95
+
96
+ ```
97
+ icp_signal_count: 34 * 10 = 340
98
+ member_count: 234,000 -> min(log10(234000) * 15, 50) = 50
99
+ activity_score: 12,000 active_users / 100 = 120 -> capped at 30
100
+ competitor_mentions: 12 * 5 = 60
101
+ entry_penalty: 0 (open)
102
+
103
+ Total: 340 + 50 + 30 + 60 - 0 = 480 -> top-priority
104
+ ```
105
+
106
+ ### DevOps Weekly Newsletter with 0 ICP signals
107
+
108
+ ```
109
+ icp_signal_count: 0 * 10 = 0
110
+ member_count: 25,000 -> min(log10(25000) * 15, 50) = 44.7 -> ~45
111
+ activity_score: 5 (default for DDG channels)
112
+ competitor_mentions: 0 * 5 = 0
113
+ entry_penalty: -20 (paid sponsorship)
114
+
115
+ Total: 0 + 45 + 5 + 0 - 20 = 30 -> medium
116
+ ```
117
+
118
+ ### r/startups with 2 ICP signals
119
+
120
+ ```
121
+ icp_signal_count: 2 * 10 = 20
122
+ member_count: 800,000 -> capped at 50
123
+ activity_score: 8,000 / 100 = 80 -> capped at 30
124
+ competitor_mentions: 0 * 5 = 0
125
+ entry_penalty: 0
126
+
127
+ Total: 20 + 50 + 30 + 0 = 100 -> top-priority (barely)
128
+ ```
129
+
130
+ This edge case shows why icp_signal_count is primary: r/startups hits top-priority only because it's enormous + active. In practice, its generic ICP would show in the evidence posts (founders vs. your specific ICP). The AI should note this in who_is_here.
131
+
132
+ ---
133
+
134
+ ## Score Interpretation for AI
135
+
136
+ When generating the playbook, use the score and tier as a prioritization signal -- not an absolute quality ranking:
137
+
138
+ - **top-priority:** Recommend the founder invest time here first. Build presence before pitching. Entry tactic should be specific and low-friction.
139
+ - **high:** Recommend as second-tier. Good for content distribution or monitoring. Entry tactic can be higher-effort (e.g., guest appearance, newsletter pitch).
140
+ - **medium:** Recommend for awareness only. Entry tactic should be lower-effort (e.g., occasional commenting, monitoring for competitor discussions).
141
+ - **low:** Report in output for completeness. No entry tactic needed unless it's a competitor forum (high intent despite low score).