Community Signal
Two small internal tools that each replaced a weekly manual task.
Community Signal is a pair of internal tools for the same client as the AI support employee: a Python miner that finds forum posts where people describe a problem the client's products solve, and a Next.js dashboard that summarises the marketing team's monday.com board.
- Status
- Internal
- Written by
- Suraj Malla
- Updated
- Stack
- Python · SQLite · Claude / Next.js · monday.com GraphQL · Gemini
Facts
- Client
- The same vendor as the AI support employee
- Miner
- Python, SQLite, the forum's Bettermode API, Claude
- Analyser
- Next.js, monday.com GraphQL, Gemini, Recharts
- Run as
- CLI: scrape, analyze, export, stats, or run for all three
- Output
- A scored CSV of posts worth replying to, and a board dashboard
The problem
Two questions came up every week. Where are people publicly describing a problem one of our products already solves? What is the marketing team actually working on right now?
Both were answerable by hand. Both were answered late.
How it works
forum API ──▶ keyword index phrase in title 2 points
│ phrase in body 1 point
│ below 2: no reply drafted
▼
SQLite deduplicated by post id,
│ so a rerun costs nothing
▼
Claude over unanalysed rows only
▼
CSV score ≥ 6- A scraper over the forum's Bettermode API, five pages of 50 posts per target space per run.
- A hand-written keyword index mapping the exact phrases people type to the product that solves it and the page that explains how.
- Scoring, SQLite storage with dedupe by post ID, a Claude analysis pass over unanalysed rows, and a CSV export above a threshold.
- Separately, a dashboard that pulls the marketing board over GraphQL, filters to active assignees, ages the Done column to 15 days, flags overdue items and asks Gemini for a summary.
Decisions that mattered
2
A keyword index, not semantic search
The index is a list of the phrases people actually type when they have the problem. Each maps to the product and the specific page that answers it. A match is already a reply with a link.
Scoring is blunt on purpose: 2 points for a phrase in the title, 1 in the body. Nothing is drafted below 2, and only posts scoring 6 or more are exported. The tool's job is to be quiet.
Cheap to run twice
Posts are deduplicated by ID on write, and the analysis pass reads only rows it hasn't seen. Rerunning the whole pipeline costs almost nothing, which is what makes it something you run when you wonder, rather than a job you schedule and then stop trusting.
What isn’t shown
Same client as the AI support employee, not named. Neither tool is complex. Each replaced about an hour of someone's week.