Connects Claude to PJQ's YouTube comment analysis engine. Exposes tools to submit videos for reception analysis and retrieve verdicts: numeric mood scores, support/against breakdowns, and controversy flags based on a seven-category stance rubric (substantive support, substantive against, neutral, plus four noise categories like bots and self-promotion). The analysis engine samples comments, classifies each one, and returns aggregates without raw text. Useful when you're researching how an audience actually received a video, need to separate genuine opinion from fan noise, or want to automate reception scoring in a workflow. Talks to the hosted pjq.life backend over streamable HTTP.
A seismograph for public opinion. PJQ measures how an audience actually received a piece of media — separating genuine opinion from fan noise, bots, and self-promoters.
Live: pjq.life · License: Apache-2.0
PJQ takes the URL of a piece of content (YouTube today; Reddit, Telegram, and
News next), samples the comments under it, and classifies every comment against
a 7-category stance rubric. The output is a verdict: a numeric reception
score (mood) plus a structured breakdown — how many people substantively
agreed, how many pushed back, how many stayed neutral, and how much noise is
drowning the signal.
Think of it as an observatory of media reception, exposed over two transports on one core:
/api/v1/*) for analytics automation, and/mcp/) so AI agents (Claude Desktop and friends) can run
analyses and read verdicts directly inside a chat.This repo is the open client + specification of PJQ. The hosted analysis engine (sampling, classification, QA, the ONNX stance model and the prompt internals) stays closed — it is the product's moat. What's open here is everything you need to use, integrate with, and understand PJQ:
web/ — the full web client (React + TypeScript + Vite SPA, 5 languages)
spec/ — the conceptual specification
├── CONCEPT.md what PJQ is and why
├── RUBRIC.md the 7-category stance rubric (definitions)
├── domains.yaml the 11-domain content taxonomy
├── FEATURED.md the open, automatic showcase-ranking formula
└── verdict-schema.md the shape of a verdict (API output)
docs/ — integration reference
├── api-reference.md REST API surface
├── mcp-reference.md MCP tools and schemas
└── user-guide/ end-user guide (EN + RU)
Every comment gets exactly one of: SUP (substantive support), AGA (substantive against), NEU (neutral), OFF (off-topic), THIN (thin positive — praise without an argument), SUS (inorganic — bot / paid / coordinated), AGN (own agenda — the comment is a vehicle for the author's external goal).
Reporting rule: opinion metrics (mood, support) are computed strictly
from SUP / AGA / NEU. THIN / OFF / SUS / AGN are counted separately and never
inflate support percentages. See spec/RUBRIC.md.
The client is a standard Vite SPA. By default it talks to the hosted backend at
pjq.life (same-origin in production).
cd web
npm install
npm run dev # dev server with hot reload
npm run build # production build (with build-time SEO prerender) -> dist/
To point the client at a different backend, copy web/.env.example and set
VITE_API_BASE.
docs/api-reference.md. Read-only tools cost
no credits; a full analysis costs one credit.https://pjq.life/mcp/ and see
docs/mcp-reference.md for the exported tools.Comment raw texts are never returned over the API — only aggregates, percentages, and a small set of representative exemplars, per PJQ's privacy policy.
PJQ is live and in active development. The roadmap is public at pjq.life/flightlog. This repository tracks the client and the spec; engine changes ship to the hosted service.
Copyright 2026 PJQ (github.com/Makaric). Licensed under the Apache License,
Version 2.0 — see LICENSE.
Русская версия: README_RU.md.
io.github.socialapishub/social-media-api
io.github.xpaysh/social-media
com.thenextgennexus/youtube-media-mcp-server
io.github.ludmila-omlopes/youtube-video-analyzer
csoai-org/social-media-ai-mcp
com.ezbizservices/social-media