The problem
He started CleverOwl because of his own children. He wanted a study tool “simple enough for a child to use independently.” He saw that Reddit has students looking for better ways to study and parents asking how to help their children. He says, “Those people are not cold leads.” At first he browsed a list of communities by hand. He opened posts, read the comments and decided whether to respond. “That worked for a little while. Then it became unmanageable.”
He is clear about what he did not want to build: “The goal was not to build an automated spam machine.”
The blueprint (as he describes it)
- Curate the communities by hand. He picked roughly 20 to 30 subreddits by browsing Reddit, searching Google and looking for places where students and parents were already discussing these problems. “The system is not trying to monitor all of Reddit.”
- Fetch and queue. The n8n workflow runs continuously throughout the day. When it finds a new post, it uses Reddit’s JSON endpoints to fetch the post and its comments. It then queues the work in Postgres so the rest of the system can process it reliably.
- Score on full context, not keywords. The scoring step looks at the title, body, subreddit and comments. He says keyword matching is not good enough here. A post about meditation to manage ADHD is related to studying but is not the problem CleverOwl solves. The prompt explains what a qualified lead looks like, with examples, and the model assigns a confidence score.
- Use an explicit scoring rubric. The prompt starts each post at 0.50 and adjusts it. Examples: +0.20 if an exam or test is coming up or they are behind, +0.10 if they ask for tools, apps or workflows, -0.30 if it is mainly language learning or mainly math, and -0.10 if comments already solved their problem. The final confidence is clamped to 0.00 to 1.00.
- Move scoring to a local model. He started with hosted LLMs through OpenRouter, but “it became expensive quickly” because of volume. He tried a few models and found Gemma 4 “very good for this kind of classification task.” LocalLM runs on a dedicated MacBook Pro with an M4 Max and 128GB RAM. The rest of the pipeline runs in a MicroK8s cluster.
- Add observability. He built Modash, an LLM proxy between n8n and LM Studio. It shows token usage, request volume, throughput, latency and model-level activity.
- Use Claude to build the automation. Claude helped create the n8n automation, wire up the database interactions, stand up LocalLM with Gemma in his Kubernetes cluster and generate the Pulumi code. Claude has API access to n8n. It reads the current workflow state, modifies it locally and publishes the update back through the n8n API. The workflow JSON is committed to GitHub alongside the Pulumi code. Claude builds the system. The local Gemma model does the scoring.
- Triage in Slack. Posts that clear the threshold trigger a Slack alert with the title, subreddit, author, score, comment count, Reddit link, why the model thinks it is a good lead, and a suggested response direction. Notifications go to his laptop and phone.
- Write the reply himself. The workflow lets him respond from Slack, but he usually opens the Reddit thread first because the comments may change the context. “I always write the actual response myself and make sure it is aligned with the discussion.”
Stated results
- About 1,500 Reddit posts processed per day on average.
- Roughly 20 posts per day clear the 75% threshold and go to Slack.
- Fewer than five per day usually score above 85%. He calls these “the ones I care about most.”
- “There is a steady, slow flow of people trying CleverOwl every week.” No sign-up or customer count is stated.
- He is “no longer manually scanning dozens of communities.”
- In one snapshot, Modash showed more than 30 million tokens across more than 24,000 LLM requests. He says these figures reflect a newer slice of activity and do not map perfectly to the daily post count.
- He says the system “has not radically changed the product roadmap.”
Caveats
- The post is on his own blog. CleverOwl is his product, so the post also promotes it. Modash is his own project, linked on GitHub.
- All funnel figures are self-reported. He does not state how many Reddit replies led to sign-ups.
- Claude builds and modifies the workflows. It does not score posts or write replies.
- He says some days are better than others and Reddit activity is uneven.
- He notes that “Local models are not magically free.” You still need to watch throughput, latency, resource usage and model quality.
- Handles: LinkedIn /in/bryan-migliorisi (verified 2026-11-07: linked from migliorisi.com sameAs and his LinkedIn share of this post). GitHub bryanmig (verified 2026-11-07: migliorisi.com and the Modash repo). X, Bluesky, Instagram, Threads, TikTok, Mastodon: none linked from primary surfaces.
FAQ
Does the system post replies to Reddit automatically?
No. He usually opens the Reddit thread before responding and always writes the actual response himself. He describes the goal as “automate discovery, not engagement.”
Why did he switch from hosted models to a local one?
Hosted LLMs through OpenRouter became expensive quickly because of the volume of posts and comments being scored. He moved to Gemma 4 running locally and says it gave him “much better economics.”
What does Claude do in this setup?
Claude helped build the n8n automation, the database wiring, the local model setup and the Pulumi code. Through the n8n API it reads, modifies and publishes the workflow. Scoring is done by the local Gemma model.
How many customers has it produced?
The source does not give a number. He reports “a steady, slow flow of people trying CleverOwl every week.”
Sources
- https://www.deserialized.com/building-a-human-in-the-loop-reddit-lead-engine-with-n8n-claude-local-llms-and-slack/ (primary: first-person build write-up on his blog Deserialized, dated May 3, 2026)
- https://github.com/bryanmig/modash (Modash, his LLM proxy, linked from the post)
Want agents like these working your distribution? Get It Built. Get new teardowns weekly: subscribe (double opt-in).
Get one teardown a week.
Same format, a new operator every issue. Double opt-in.