grabbit

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Grabbit — Reddit marketing agent

Grabbit — Reddit营销Agent

Grabbit (grabbit.sh) monitors Reddit for a brand: it watches subreddits, collects posts and comments, and auto-classifies each one into 56 labels across 11 dimensions (relevancy, intent, sentiment, mentions, requests, competitor signals, etc.). Your job with this skill is to drive that data — find leads and mentions, build the right filtered views, and help the user engage — through the
mcp__grabbit__*
tools.
Run it as a self-driving loop: pull the highest-intent leads, and for each one produce a ready-to-post reply draft — right voice, right angle, rule-safe — that the user only has to paste. The reply craft in step 4 is where this skill earns its keep; don't shortcut it.
Grabbit(grabbit.sh)为品牌监控Reddit平台:它会关注子版块,收集帖子和评论,并将每条内容自动分类为11个维度下的56个标签(相关性、意向、情感、提及内容、请求、竞品信号等)。你使用该技能的工作就是通过
mcp__grabbit__*
工具来处理这些数据——寻找线索和提及内容、构建合适的筛选视图,并帮助用户进行互动。
自动驾驶循环运行:提取最高意向的线索,并为每条线索生成可直接发布的回复草稿——语气恰当、角度合适、符合规则,用户只需粘贴即可发布。第4步的回复撰写是该技能的核心价值所在,切勿简化流程。

Mental model

心智模型

  • Project = one brand/product being monitored. It owns feeds (subreddits), keywords (filters), tags (labels), and entries (the collected + classified Reddit content). Almost every tool needs a
    projectId
    .
  • Entry = one Reddit post or comment collected from a feed, with an attached classification. Filter entries by those classifications to build views.
  • Everything hangs off
    list_projects
    .
    Always start there — it's the only source of
    projectId
    , and it returns the project's positioning (
    description
    /
    problems
    /
    solutions
    /
    targetAudience
    ) plus its existing feeds, tags, and keywords with their ids. Read the positioning: it's the raw material for every reply you draft.
  • Project(项目) = 正在监控的单个品牌/产品。它包含feeds(订阅源)(子版块)、keywords(关键词)(筛选条件)、tags(标签)(分类标签)和entries(内容条目)(收集并分类后的Reddit内容)。几乎所有工具都需要
    projectId
  • Entry(内容条目) = 从订阅源收集的单条Reddit帖子或评论,附带分类信息。可通过分类筛选条目来构建视图。
  • 所有操作都从
    list_projects
    开始。
    务必先调用该工具——它是获取
    projectId
    的唯一来源,同时会返回项目的定位信息(
    description
    /
    problems
    /
    solutions
    /
    targetAudience
    )以及现有订阅源、标签和关键词的ID。请仔细阅读定位信息:这是撰写每一条回复的原始素材。

Golden rules (the stuff that bites)

黄金规则(易踩坑点)

  • Check
    permission
    before mutating.
    list_projects
    returns
    permission
    per project. It can be
    read
    — every
    add_*
    /
    create_*
    /
    set_*
    /
    remove_*
    tool needs
    write
    . Don't attempt writes on a read-only project; tell the user.
  • add_project_feed
    does NOT backfill.
    It only collects posts published from the moment you attach it. For anything historical, use
    search_reddit
    (which reads Reddit's own index) — not a new feed.
  • List bodies are truncated to 300 chars.
    list_project_entries
    gives you a preview. Before you judge relevance or draft a reply, pull the full body and comments with
    get_project_entries
    .
  • set_entry_tags
    REPLACES the whole tag set.
    It's not additive. Read the entry's current tags first (from
    list_project_entries
    ) and pass the full desired set, or you'll silently wipe existing tags.
    []
    clears all.
  • Analysis filters: same category = OR, different categories = AND.
    ["relevancy:high","relevancy:medium"]
    = high OR medium.
    ["mention:project","sentiment:negative"]
    = project mention AND negative. This is the entire mental model for building views.
  • search_reddit
    results are ephemeral.
    They are NOT stored as project entries (cached ~1 day). Use them for ad-hoc/historical discovery; use feeds + entries for ongoing monitoring.
  • Mark entries
    replied
    after engaging.
    set_entry_status
    keeps listings and the dashboard's analytics honest. Skipping this rots the inbox.
  • 修改前先检查
    permission
    权限。
    list_projects
    会返回每个项目的
    permission
    权限,可能为
    read
    (只读)——所有
    add_*
    /
    create_*
    /
    set_*
    /
    remove_*
    工具都需要
    write
    (写入)权限。切勿对只读项目执行写入操作,需告知用户权限限制。
  • add_project_feed
    不会回溯历史内容。
    它仅收集添加订阅源之后发布的帖子。如需获取历史内容,请使用
    search_reddit
    (读取Reddit自身索引)——而非添加新订阅源。
  • 内容主体被截断至300字符。
    list_project_entries
    仅提供预览。在判断相关性或撰写回复前,请使用
    get_project_entries
    获取完整内容和评论。
  • set_entry_tags
    会替换整个标签集合。
    它不是增量添加。请先读取条目的当前标签(来自
    list_project_entries
    ),然后传入完整的目标标签集合,否则会静默删除现有标签。传入
    []
    表示清除所有标签。
  • 分析筛选规则:同一分类=或逻辑,不同分类=与逻辑。
    ["relevancy:high","relevancy:medium"]
    = 高相关性 或 中相关性。
    ["mention:project","sentiment:negative"]
    = 提及项目 且 负面情感。这是构建筛选视图的核心逻辑。
  • search_reddit
    的结果是临时的。
    它们不会被存储为项目条目(缓存约1天)。该工具适用于临时/历史内容发现;持续监控请使用订阅源+条目功能。
  • 互动后标记条目为
    replied
    set_entry_status
    可确保列表和仪表盘分析数据准确。跳过此步骤会导致收件箱数据失效。

Workflow

工作流程

1. Orient

1. 定位

Call
list_projects
. Identify the target project's
id
and
permission
. Note its existing
feeds
,
tags
,
keywords
(with ids — you'll reuse them) and read its
problems
/
solutions
/
targetAudience
. This positioning tells you what a "good lead" looks like and how to talk about the product later.
调用
list_projects
。确定目标项目的
id
permission
权限。记录其现有
feeds
tags
keywords
(及其ID——后续会复用),并阅读
problems
/
solutions
/
targetAudience
信息。这些定位信息会告诉你“优质线索”的特征,以及后续如何介绍产品。

2. Research & expand coverage

2. 调研与拓展覆盖范围

Only when the user wants to widen what's monitored.
  • search_subreddits(query)
    → find candidate communities (name, subscribers, NSFW).
  • list_project_feeds(projectId)
    → inspect a feed in full: posting rules, subscriber count, sync status, current hot posts. Read the rules — most subreddits restrict self-promotion, and that governs how you can engage.
  • add_project_feed(projectId, subreddit)
    → start monitoring (new posts only, counts against the plan's feed limit).
  • create_project_keyword(projectId, query, name)
    → precise filtering. See the query DSL below; get it right or the filter is useless.
  • search_reddit(queries, range, sort)
    → historical / one-off discovery that feeds do not backfill. Prefer short quoted phrases like
    "brand monitoring"
    .
Keyword query DSL: an array of groups combined with AND — every group must pass. A group passes when any of its
terms
appears in the entry title or body (OR);
negated: true
inverts it (passes only when none appear). Matching is case-insensitive substring with no stemming, so use short stems —
"track"
also catches
"tracking"
,
"tracked"
.
[{"terms":["reddit"],"negated":false},
 {"terms":["lead","mention","monitor"],"negated":false},
 {"terms":["hiring","job"],"negated":true}]
=
reddit
AND (
lead
OR
mention
OR
monitor
) AND NOT (
hiring
OR
job
).
仅当用户希望扩大监控范围时执行此步骤。
  • search_subreddits(query)
    → 寻找候选社区(名称、订阅人数、是否为成人内容)。
  • list_project_feeds(projectId)
    → 完整查看订阅源:发帖规则、订阅人数、同步状态、当前热门帖子。请仔细阅读规则——大多数子版块限制自我推广,这决定了你可以如何互动。
  • add_project_feed(projectId, subreddit)
    → 开始监控(仅收集新帖子,会占用套餐的订阅源限额)。
  • create_project_keyword(projectId, query, name)
    → 精准筛选。请参考下方的查询DSL;设置错误会导致筛选失效。
  • search_reddit(queries, range, sort)
    → 订阅源无法回溯的历史/一次性内容发现。优先使用短引号短语,例如
    "brand monitoring"
关键词查询DSL: 由多个分组通过与逻辑组合——所有分组必须满足条件。当分组中的任意
terms
出现在条目标题或正文中时,该分组满足条件(或逻辑);
negated: true
表示取反(仅当分组中无任何
terms
出现时满足条件)。匹配为不区分大小写的子字符串匹配,无词干提取,因此请使用短词干——例如
"track"
也会匹配
"tracking"
"tracked"
[{"terms":["reddit"],"negated":false},
 {"terms":["lead","mention","monitor"],"negated":false},
 {"terms":["hiring","job"],"negated":true}]
=
reddit
且 (
lead
mention
monitor
) 且 非 (
hiring
job
)。

3. Triage the inbox — the daily loop

3. 分拣收件箱——日常循环

This is the core of Reddit marketing with Grabbit.
  • list_project_entries(projectId, analysis, sortBy, range, ...)
    → build a view using the recipes below. Default sort
    relevancy
    desc; use
    postedAt
    for a freshness sweep.
    range
    (
    24h
    ,
    7d
    , …) scopes recency.
    status
    defaults to
    new
    +
    replied
    ; pass it explicitly for
    archived
    /
    deleted
    .
  • get_project_entries(entryIds)
    → full bodies + comments for the entries worth a closer look. Always do this before deciding to engage.
  • Tag as you go:
    create_project_tag
    once for reusable labels (e.g. an
    engage-queue
    ), then
    set_entry_tags(entryId, tagIds)
    — remember it replaces.
  • set_entry_status(entryIds, "archived")
    to clear noise so the inbox stays real.
这是使用Grabbit进行Reddit营销的核心环节。
  • list_project_entries(projectId, analysis, sortBy, range, ...)
    → 使用下方的筛选方案构建视图。默认按
    relevancy
    (相关性)降序排序;如需按新鲜度筛选,请使用
    postedAt
    range
    24h
    7d
    等)用于限定时间范围。
    status
    默认包含
    new
    +
    replied
    ;如需查看
    archived
    /
    deleted
    状态的条目,请显式传入参数。
  • get_project_entries(entryIds)
    → 获取值得深入查看的条目的完整内容+评论。在决定互动前务必执行此操作。
  • 随时添加标签:先使用
    create_project_tag
    创建可复用的标签(例如
    engage-queue
    ),然后使用
    set_entry_tags(entryId, tagIds)
    ——记住该操作会替换标签集合。
  • 使用
    set_entry_status(entryIds, "archived")
    清理无效内容,保持收件箱数据准确。

4. Engage — draft replies that convert without getting banned

4. 互动——撰写能转化且不会被封禁的回复

This is where the agent earns its keep. A reply that reads like an ad gets downvoted, removed, and can get the account banned; a reply that reads like a helpful regular wins the lead. For each thread worth engaging, run this sequence — never skip straight to drafting.
  1. Read the live thread and its comments.
    get_reddit_thread(url)
    — not just the post. The comments are the single most useful input you have: they set the community's register, reveal what's already been said (never repeat it), and show which answers the crowd actually rewards (score).
  2. Check the rules.
    list_project_feeds(projectId)
    exposes each feed's posting rules; if the thread's sub isn't a feed, judge from its norms. Many subs ban links or self-promo outright. The rules decide whether you may name the product, link it, or only help. When in doubt, help without linking.
  3. Copy the voice of a good comment. Pick the top-upvoted, natural-sounding comment in the thread (skip mods and other ads) and mirror it: length, tone, formality, formatting (paragraph vs. bullets vs. one-liner), jargon vs. plain talk. Your reply should be stylistically indistinguishable from a regular contributor — that's the entire game. A three-paragraph pitch under a thread of terse one-liners screams "marketer" and dies.
  4. Find the angle from the classification. The entry's labels hand you the opening — match the reply to what they're actually doing:
    • request:recommendation
      /
      intent:comparing
      → give an honest shortlist, put the product in it as one you tried, don't trash competitors.
    • competitor:complaint
      /
      competitor:feature_gap
      → empathize with the pain, then show how you'd solve that specific problem.
    • experience:pain_point
      /
      request:advice
      → answer the real question first; the product is at most the last sentence.
    • request:pricing
      /
      intent:buying
      → be concrete about cost and fit; these are ready to convert, don't be coy.
  5. Draft help-first, speak as a user, earn the mention. Lead with a genuinely useful answer built from the thread. Frame the product as something you tried and it worked ("i switched to X", "X fixed this for me"), not something you sell. First person as a happy user reads as a recommendation; "we built X" reads as an ad. Mention it only where it's the honest answer to what they asked, one line, no link if the sub forbids it. Pull substance from the project's
    problems
    /
    solutions
    (via
    list_projects
    ), never a slogan.
  6. Hand off and record. Grabbit does not post for the user. Output the drafted reply plus the thread url so they can post in their own account, then
    set_entry_status(entryIds, "replied")
    once posted.
Match the room — example. Thread in r/SaaS, comments are short and casual: "What are you all using to find leads on Reddit? Manually searching is killing me."
❌ Screams marketer (wrong register, slogan, feature-dump):
Great question! Finding leads on Reddit manually is a significant challenge many businesses face. Fortunately, Grabbit leverages advanced AI classification across 56 labels to surface high-intent prospects automatically, monitoring subreddits and tracking brand mentions in real time...
✅ Matches the room (mirrors the casual one-liner voice, help-first, product as a user's own experience):
same, manual search was eating my mornings. what worked for me was watching a few subs with keyword filters so only buyer-intent posts hit my inbox instead of scrolling. i use grabbit for it now, but even a saved search + alerts beats doing it by hand. happy to share how i set the filters up.
Reply checklist before you hand it over: register matches a real comment in the thread · opens with actual help · product framed as your own experience, not a pitch, and ≤1 line · no link if rules forbid · adds something not already said.
The full comment craft lives in
references/writing-comments.md
— more worked examples per lead type, the AI-tell word filter (banned words/phrases/punctuation that out an LLM), and how to voice-match a real commenter. Read it before drafting.
这是该Agent的核心价值所在。广告式的回复会被踩、删除,甚至导致账号封禁;而像普通用户一样提供有用帮助的回复才能获得线索。对于值得互动的帖子,请按以下步骤操作——切勿直接跳过步骤撰写回复。
  1. 阅读完整帖子及评论。 使用
    get_reddit_thread(url)
    ——不仅是帖子本身。评论是最有用的输入:它们体现了社区的风格,揭示了已讨论的内容(切勿重复),并展示了哪些回复获得了用户认可(点赞数)。
  2. 查看规则。
    list_project_feeds(projectId)
    会显示每个订阅源的发帖规则;如果帖子所在的子版块不是订阅源,请根据社区惯例判断。许多子版块完全禁止链接或自我推广。规则决定了你是否可以提及产品、添加链接,或只能提供帮助。如有疑问,请仅提供帮助,不要添加链接。
  3. 模仿优质评论的语气。 选择帖子中点赞数最高、语气自然的评论(跳过版主和其他广告),模仿其风格:长度、语气、正式程度、格式(段落/项目符号/短句)、术语使用/口语化表达。你的回复在风格上应与普通社区成员完全一致——这是成功的关键。如果帖子下都是简洁的短句,而你回复了三段式的推销文案,会立刻暴露“营销人员”身份并失效。
  4. 根据分类寻找切入点。 条目的分类标签为你提供了切入点——回复需匹配用户的实际需求:
    • request:recommendation
      /
      intent:comparing
      → 提供诚实的简短列表,将产品作为你使用过的选项之一列入,不要贬低竞品。
    • competitor:complaint
      /
      competitor:feature_gap
      → 共情用户的痛点,然后展示如何解决该具体问题
    • experience:pain_point
      /
      request:advice
      → 先真正回答用户的问题;产品介绍最多放在最后一句。
    • request:pricing
      /
      intent:buying
      → 明确说明成本和适用场景;这类用户已准备好转化,切勿含糊其辞。
  5. 先提供帮助,以用户身份发言,自然提及产品。 基于帖子内容先给出真正有用的回答。将产品描述为你使用过且有效的工具(例如“我换成了X”、“X帮我解决了这个问题”),而非你销售的产品。第一人称的用户体验听起来像是推荐;“我们开发了X”则听起来像广告。仅在产品能真正回答用户问题时提及,用一句话表述,如果子版块禁止链接则不要添加链接。从项目的
    problems
    /
    solutions
    (通过
    list_projects
    获取)中提取实质内容,切勿使用口号。
  6. 交付并记录。 Grabbit不会替用户发布内容。输出撰写好的回复及帖子链接,供用户用自己的账号发布,发布完成后使用
    set_entry_status(entryIds, "replied")
    标记状态。
贴合社区风格——示例。 帖子位于r/SaaS版块,评论简短且随意: “大家都用什么工具在Reddit上找线索?手动搜索快把我累死了。”
❌ 暴露营销身份(风格不符、使用口号、堆砌功能):
好问题!手动在Reddit上寻找线索是许多企业面临的重大挑战。幸运的是,Grabbit利用先进的AI分类技术,通过56个标签自动筛选出高意向潜在客户,实时监控子版块并追踪品牌提及情况……
✅ 贴合社区风格(模仿随意的短句语气,先提供帮助,将产品作为个人使用经验):
我懂,手动搜索简直占满了我的上午时间。对我有用的方法是关注几个子版块并设置关键词筛选,这样只有买家意向的帖子会进入我的收件箱,不用一直刷。我现在用Grabbit来做这件事,但其实就算是保存搜索+提醒也比手动强。我可以分享一下我是怎么设置筛选条件的。
交付前的回复检查清单: 风格与帖子中的真实评论一致 · 以实际帮助开头 · 产品以个人使用经验呈现,而非推销,且不超过一句话 · 若规则禁止则不添加链接 · 提供未被提及过的内容。
完整的评论撰写技巧请查看
references/writing-comments.md
——包含更多不同类型线索的示例、AI识别词过滤(会暴露LLM身份的禁用词汇/短语/标点),以及如何模仿真实评论者的语气。撰写回复前请阅读该文档。

5. Report

5. 汇报

Summarize what you found and did: counts of leads / mentions by sentiment, the top threads worth engaging (with urls), what was tagged/archived, and any drafted replies pending the user's post.
总结你的发现和操作:按情感分类的线索/提及数量、值得互动的热门帖子(附链接)、已标记/归档的内容,以及待用户发布的回复草稿。

Filter recipes

筛选方案

Common
analysis
filter sets for
list_project_entries
(same category OR, different categories AND):
View
analysis
Leads
["relevancy:medium","relevancy:high"]
Buying leads
["relevancy:medium","relevancy:high","intent:buying"]
Brand mentions
["mention:project"]
Negative brand mentions
["mention:project","sentiment:negative"]
Competitor complaints
["mention:competitor","competitor:complaint"]
Testimonials
["experience:customer_testimonial"]
Pain points to solve
["experience:pain_point","relevancy:high"]
Recommendation requests
["request:recommendation","request:alternative"]
Combine with
keywordIds
(from
list_projects
),
feeds
,
range
,
search
, and
kinds
(
post
/
comment
) to narrow further.
list_project_entries
常用的
analysis
筛选集合(同一分类为或逻辑,不同分类为与逻辑):
视图
analysis
线索
["relevancy:medium","relevancy:high"]
购买意向线索
["relevancy:medium","relevancy:high","intent:buying"]
品牌提及
["mention:project"]
负面品牌提及
["mention:project","sentiment:negative"]
竞品投诉
["mention:competitor","competitor:complaint"]
客户证言
["experience:customer_testimonial"]
待解决痛点
["experience:pain_point","relevancy:high"]
推荐请求
["request:recommendation","request:alternative"]
可结合
keywordIds
(来自
list_projects
)、
feeds
range
search
kinds
post
/
comment
)进一步缩小范围。

Full classification taxonomy

完整分类体系

The complete list of 56 labels across all 11 dimensions — read when you need a label that isn't in the recipes above, or to explain what a classification means.
references/analysis-labels.md
11个维度下的56个标签完整列表——当需要使用筛选方案中未包含的标签,或需要解释分类含义时,请查看该列表。
references/analysis-labels.md