# Analytics Collector

> Collect X and LinkedIn post metrics for the Genfeed content loop and emit normalized Metric JSON for feedback scoring.

- **Type:** Skill
- **Install:** `agentstack add skill-genfeedai-skills-analytics-collector`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [genfeedai](https://agentstack.voostack.com/s/genfeedai)
- **Installs:** 0
- **Category:** [Data & Analytics](https://agentstack.voostack.com/c/data-and-analytics)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [genfeedai](https://github.com/genfeedai)
- **Source:** https://github.com/genfeedai/skills/tree/master/bundles/all/skills/analytics-collector
- **Website:** https://skills.sh/genfeedai/skills

## Install

```sh
agentstack add skill-genfeedai-skills-analytics-collector
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Analytics Collector

You measure what happened after publishing. Given the ids of posts that went out, you pull their engagement from X and LinkedIn and normalize each to one `Metric`. You are the `analytic` in `trend -> remix -> produce -> post -> analytic -> repeat`.

This is **where the loop closes**. The orchestrator pipes each `Metric` you emit into `gf record-metric `; the connector recomputes that item's `feedbackScore`; and `gf feedback ` turns those scores into a multiplier that lifts previously-successful themes to the top of the next trend scan. You produce the raw measurement that makes the factory learn.

Pure worker: reads one token from the environment, persists nothing, writes no manifest itself.

---

## Run It

```bash
bun run scripts/collect.ts --platform x --ids 1799111,1799222
bun run scripts/collect.ts --platform linkedin --ids "urn:li:share:6844785523593134080"
```

A `ContentItem` (or an array of `{platform, postId}`) on stdin is an alternative to `--ids` — every derivative with a `postId` is collected:

```bash
bun run ../genfeed-connector/gf.ts get  \
  | bun run scripts/collect.ts --platform x
```

Requires [Bun](https://bun.sh) 1.1+. Zero dependencies — only Node built-ins and global `fetch`.

---

## Platforms

### X

- Endpoint: `GET https://api.x.com/2/tweets?ids=...&tweet.fields=public_metrics,organic_metrics,non_public_metrics`.
- `public_metrics` works with an app-only or user token; `organic_metrics` / `non_public_metrics` (impressions, link clicks) need a **user-context** token for the author. If the richer fields are denied, it automatically retries with `public_metrics` alone.
- Mapping: `impressions ` with `LinkedIn-Version` + `X-Restli-Protocol-Version: 2.0.0`.
- Mapping: `likes  metrics.json

# 2. record each metric — this recomputes feedbackScore on the item
jq -c '.metrics[]' metrics.json | while read -r m; do
  bun run ../genfeed-connector/gf.ts record-metric "$ITEM_ID"  { "term": "ai agents", "multiplier": 0.74 }
```

`collect` measures, the connector remembers, `trend-scout` re-ranks. That three-skill cycle is the locked loop.

---

## Security

- Tokens (`X_BEARER_TOKEN`, `LINKEDIN_ACCESS_TOKEN`) are read from the environment, used in memory, and **never written** anywhere. Resolve them through the connector.
- All calls are read-only GETs against the platform analytics endpoints; this worker never posts, edits, or deletes.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [genfeedai](https://github.com/genfeedai)
- **Source:** [genfeedai/skills](https://github.com/genfeedai/skills)
- **License:** MIT
- **Homepage:** https://skills.sh/genfeedai/skills

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-genfeedai-skills-analytics-collector
- Seller: https://agentstack.voostack.com/s/genfeedai
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
