Bggg Data X logo

Bggg Data X

Community
binggandata
bggg-data-x

Collect auditable public X/Twitter posts by controlling the user's already logged-in Chrome, searching X's rendered web interface, scrolling visible results, and extracting original post text and metadata from DOM into normalized JSONL. Use for VOC research, social listening, multilingual keyword discovery, competitor monitoring, or historical search when X requires the user's browser session and cookies, credentials, internal GraphQL, paid APIs, or search-engine snippets must not be exported or used. X data layer of the bggg VOC suite (shared project folder; orchestrated by industry-orchestrator, reported by bggg-voc-report).

Overview

Publisherbinggandata
Repositorybggg-skills
Skill namebggg-data-x
Stars
605
Forks
95
Bundled files
5
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 5 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by binggandata on GitHub. Read the source before you install it.

Installation

Install the Bggg Data X AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/binggandata/bggg-skills/tree/main/bggg-data-x
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/binggandata/bggg-skills.git /tmp/bggg-skills
mkdir -p .claude/skills
cp -r /tmp/bggg-skills/bggg-data-x .claude/skills/bggg-data-x
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Bggg Data X in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Bggg Data X on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Bggg Data X is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

BGGG X Data

Collect public X posts from the visible, rendered search timeline in the user's logged-in Chrome. Preserve one source package per query, then normalize locally.

VOC Project Layout(bggg 系列共用)

bggg VOC 系列 skill(bggg-data-amazon / bggg-data-reddit / bggg-data-x / bggg-voc-report / industry-orchestrator)共用一个项目文件夹,让多平台数据规整到同一处、下游分析零改路径。开工先确定项目根目录 <project>(用户指定,或新建 voc-<产品或主题slug>/),并从 <project> 根目录执行本 skill 的全部命令(下文相对路径都基于它):

text
<project>/
  PROJECT.md            # 研究简报 + 决策日志(编排 skill 维护;单独使用可省)
  config/               # 采集目标:amazon_targets.tsv / reddit_queries.tsv / x_queries.tsv / keywords.txt
  work/<platform>/…     # 各平台原始证据、attempt 日志、request plan、manifest
  data/raw/             # 各平台规范化 JSONL(统一行契约,分析共用层)
  data/clean|coded/     # 下游清洗与编码(industry-orchestrator 维护)
  output/               # 报告与交付物(bggg-voc-report 写 output/report/)

本 skill 的落点:config/x_queries.tsv → work/x/(request plan、逐查询 source package)→ data/raw/x_multi_<date>.jsonl。

Workflow

  1. Prepare a tab-separated query file:
text
query	lang	round	max_rows	sort
sample-ingredient lang:en	EN	1	250	latest
ボリュフィリン	JP	1	200	latest

Build a deterministic plan:

bash
python3 scripts/build_query_plan.py \
  --queries config/x_queries.tsv \
  --output work/x/request_plan.json
  1. Use the Chrome plugin and follow its control skill. Select the user's Chrome explicitly, read its complete browser documentation, and reuse the browser binding. Never inspect or export cookies, local storage, profiles, passwords, or session stores.

  2. Open the first planned search URL. Confirm from visible page state that X is signed in and the search timeline is available. If sign-in blocks the page, ask the user to sign in in Chrome; do not switch browser or bypass authentication.

  3. For each query, collect only rendered cards from the visible DOM. Follow references/chrome_collection.md for the exact selectors, extraction function, scroll loop, checkpointing, and failure handling.

  4. Save one unmodified query package immediately after each query:

text
work/x/source_json/001_EN.json
work/x/source_json/002_JP.json

Do not postpone all writes until the end of the run.

  1. Normalize and validate:
bash
python3 scripts/normalize_x_dom.py \
  --inputs work/x/source_json/*.json \
  --output data/raw/x_multi_2026-07-26.jsonl \
  --summary work/x/normalize_summary.json \
  --keywords keywords.txt
  1. Report query hits, unique Tweet IDs, rows by language, missing-text/date/URL counts, duplicate observations, failure reasons, earliest/latest date, and collection limitations.

Required DOM Contract

Use these selectors only against rendered page content:

text
post card          article[data-testid="tweet"]
post text          [data-testid="tweetText"]
author block       [data-testid="User-Name"]
canonical link     time[datetime] inside a[href*="/status/"]
timestamp          time[datetime]
engagement         [role="group"][aria-label]

Validate the contract on the first query before scaling. If any required selector returns zero while the visible timeline contains posts, stop and inspect the current DOM rather than emitting empty success files.

Quality and Safety Rules

  • Read visible DOM only. Do not intercept, call, or parse X's GraphQL/REST responses.
  • Do not read, export, or persist browser cookies, tokens, local storage, credentials, or profile data.
  • Preserve exact text_raw, Tweet ID, canonical URL, timestamp, author handle, engagement label, query, language hint, and collection time.
  • Treat X search as a visible sample, not a complete census. Record latest versus top, query syntax, date bounds, caps, and stopping reason.
  • Deduplicate by Tweet ID after preserving every query observation. Keep all matched queries and language hints in the normalized row.
  • Separate consumers, promoters, sponsored UGC, media, and brands before calculating VOC prevalence.
  • Prefer multiple narrow queries over one giant OR query. Split large historical searches by month or quarter.
  • Use one tab and sequential queries by default. Avoid parallel browser tabs on the same account.
  • Stop on challenge pages, suspicious-login prompts, rate limits, or repeated blank timelines. Record the failure and leave account recovery to the user.
  • Never post, like, follow, reply, bookmark, or change account settings.
  • Finalize every tab opened by the task.

Scale Guidance

  • Default per-query cap: 250 posts.
  • Scroll about 1,500 px, then wait 850–1,500 ms.
  • Stop after 6 consecutive scrolls without a new Tweet ID.
  • Also use a hard scroll cap, such as 180 iterations, to prevent runaway loops.
  • For prevalence estimates, disclose X's search visibility limit and the query/date slicing scheme.

Degradation

If the logged-in Chrome session is unavailable or X blocks search, preserve the query plan and failure log. Do not substitute Tavily or search-engine snippets for original post text. Such tools may discover candidate URLs, but every quote must be revalidated against the original X page before entering the corpus.

Resources

  • scripts/build_query_plan.py: validate queries and build encoded X search URLs.
  • scripts/normalize_x_dom.py: merge per-query packages, parse engagement, deduplicate, and emit normalized JSONL.
  • references/chrome_collection.md: Chrome extraction loop and checkpoint contract.
  • references/schema.md: source-package and normalized-row schemas.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Bggg Data X AI skill do?

Collect auditable public X/Twitter posts by controlling the user's already logged-in Chrome, searching X's rendered web interface, scrolling visible results, and extracting original post text and metadata from DOM into normalized JSONL. Use for VOC research, social listening, multilingual keyword discovery, competitor monitoring, or historical search when X requires the user's browser session and cookies, credentials, internal GraphQL, paid APIs, or search-engine snippets must not be exported or used. X data layer of the bggg VOC suite (shared project folder; orchestrated by industry-orches...

Why use Bggg Data X on TypingMind?

Because you install it once and use it with any model. Bggg Data X is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Bggg Data X in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/binggandata/bggg-skills/tree/main/bggg-data-x. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Bggg Data X?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Bggg Data X?

As many as you like. As long as a model supports skills, you can use Bggg Data X with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Bggg Data X AI skill free?

Yes. It is published on GitHub by binggandata under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇