01 — Section by section
Your brief, answered in your own numbering
Every numbered section of the brief gets a row. The brief runs 1–14 but has no §11, so thirteen sections in total. Diagram boxes with no matching section are listed separately below.
| § | What you asked for | Verdict | Where it stands |
|---|---|---|---|
| 1 | Goal + core principle — not "find keywords", answer six questions | as specified | All six questions are answered per opportunity: emerging topic, surface, winning format, owning team, what to make first, amplify or not |
| 2 | Workflow A + Workflow B | deviated | A is built and running daily. B does not exist — opportunities reach a board with an owner and an SLA, but no task is created in any system |
| 3 | Five trigger types | as specified | Search Demand · Conversation · Format Gap · PR/Narrative · Customer Signal — all five classified, and an opportunity can carry more than one |
| 4 | Who does what — eight owning teams | deviated | Every board row names a primary team and supporting teams. What's missing is routing — nothing reaches those teams automatically. See the Ideas tab |
| 5 | n8n architecture — schedule → pull → normalize → dedup → cluster → classify → score → store → notify | deviated | Exactly this shape, with two source swaps and a storage swap (§10). Six sources in your diagram; two are live |
| 6 | Scoring model — seven weighted factors totalling 100 | deviated | Deliberate correction — see the callout below. Your factors survive as inputs; the arithmetic changed so scores are reproducible |
| 7 | Workflow B execution package — tasks, owners, due dates, alerts | not built | The brief that feeds it exists and is good. The packaging and task creation do not |
| 8 | Decision logic by trigger type — different outputs per trigger | deviated | Trigger is classified and the owner named; the per-trigger output (SEO brief vs social brief vs reporter angle) is not yet differentiated. One brief format for all five |
| 9 | Content Intelligence step — second pass over top-10 results, AI Overview, YouTube, Reddit → what formats and angles dominate, what's missing | not built | The single biggest gap. It is also the step you called "the brief your teams actually need", and I agree |
| 10 | Enterprise-safe stack | deviated | n8n ✓ · Supabase (managed Postgres) instead of Airtable/MySQL/BigQuery · Teams instead of Slack · Monday.com not yet wired. Your brief left reporting as "?" — it still is |
| 12 | Opportunity board fields | as specified | Near field-for-field: ID, topic, trigger, source, score, competitor presence, NiCE presence, formats, primary + supporting teams, status, SLA, business theme, notes |
| 13 | Governance rules | as specified | Nothing enters execution without trigger type, score, one named primary owner, recommended format and business relevance. PR gated on real narrative value; paid gated on organic traction |
| 14 | Phased rollout — don't automate everything on day one | deviated | Phase 1 built with news + search demand rather than news + Reddit + SEO. Phase 2 partially. Phase 3 not started |
Your model weights seven factors to 100 and hands the whole judgement to the LLM. We built it that way first, and it drifted: the same article scored 72 one day and 62 the next. Week-over-week "movement" was model noise, which makes trend detection worthless.
So scoring is now deterministic 0–70 in code — topical relevance, brand and competitor presence, engagement, recency — with the AI allowed only a bounded −15…+30 nudge for what code genuinely can't judge (newsworthiness, format-gap severity), and it must state its reason on the board row. Same input, same score, every time.
Your seven factors all survive as inputs. What changed is who does the arithmetic. It also buys something your version couldn't: because scores are reproducible and every published piece now gets an outcome verdict, the weights can eventually be measured rather than argued.
Diagram boxes with no matching section
From the flow diagram attached to your brief.
| Box | Verdict | Note |
|---|---|---|
| Pull Search + Keyword Signals | as specified | SEMrush live since 24 Jul; Search Console access granted 30 Jul |
| Pull News + PR Signals | as specified | Daily, the first source built |
| Pull Reddit + Community | staged | Built and validated; Reddit closed the free API, two workaround routes verified |
| Pull YouTube Signals | not built | Never started |
| Pull Competitor Signals | deviated | Competitors detected inside news and search rather than pulled as their own source |
| Pull Customer / VOC Signals | not built | No agreed source system — needs a decision with sales leadership |
| Store for Monitoring (below threshold) | as specified | Sub-40 signals are stored, not discarded — they feed the trend maths |
| Run Content Intelligence Analysis | not built | Same as §9 — the biggest single gap |
| Trigger-type task router (five branches) | not built | Same as §7/§8 — classification happens, routing doesn't |
| Notify Slack / Teams | deviated | Built for Teams, formatted as an Adaptive Card, currently pointed at a test endpoint |
| Weekly Review Dashboard | not built | The Sheet plus these documents stand in for it today |
Why the source order came out different from your Phase 1
You proposed starting with SEO/SERP movement, Reddit, and Google News. We started with Google News alone, because it was the only one of the three that needed no approval, no key and no vendor conversation — which meant the spine could be proven end-to-end in days rather than weeks.
That turned out to matter more than the source choice. Once the spine existed, SEMrush went from nothing to live in a single working day, and it reused every downstream component the news source had already proven. Reddit is built and waiting on an access route; search demand arrived ahead of schedule.
The cost of that order: we have had less community-conversation signal than your phasing intended, and the one thing Reddit would have caught early — how buyers actually talk — we ended up discovering through a search-tool workaround instead.
02 — Evidence
What the system has actually surfaced
A coverage matrix proves effort, not value. These are findings the pipeline produced that nobody had before — the case that the thing works.
Two million impressions on genuinely on-topic searches produced 1,934 clicks in 28 days. Our non-brand click-through is 5.04% at Google position 1 and 0.77% at position 2 — a normal curve is roughly 30% and 15%.
We rank. Nobody clicks. No amount of new content fixes that, and it was invisible until Search Console access landed on 30 July. The system's first real contribution is arguably telling us to stop doing more of what we were about to do more of.
Superseded 2026-08-04. Measured against 500 days rather than the initial sample, the figures are 2.4% at position 1 and 0.51% at position 2, and the “we rank, nobody click” framing turned out to be misleading: 88% of our non-brand visibility sits below the top three, so we mostly are not ranking where the volume is. Careers pages earn 4.73% at positions 5–10 while glossary pages earn 0.18% at the same positions — same domain, 26× apart. See 007-search-findings.
| Finding | The number | What it implies |
|---|---|---|
| We rank #2 for "seamless customer service" and get nothing | 22,029 impressions 0 clicks | Either an AI Overview absorbs the answer, or the title is unclickable. One manual look settles it — and that answer redirects the roadmap |
| The glossary outranks the pages that sell | 2+ URLs per term | Our glossary entry competes with our solutions page for "call center software"; two glossary entries compete with each other for "contact center automation". A consolidation job, not a writing job |
| The market renamed what we sell | "ai call center" +554% "performance management" −79% | Same product, different words. Our titles and hubs are still largely written in the falling language |
| A rank-tracking campaign nobody reads | 3,999 keywords 848 with AI Overviews | Already configured and paid for inside our SEMrush licence, updating daily, entirely unused |
| We were about to listen in the wrong room | r/sysadmin not r/CustomerService | Buying-intent discussion sits in IT and software-buyer communities. Our planned subreddit list was wrong |
| Our own biggest story was invisible to the pipeline | 146,824 impressions 0 signals | The watch-list holds competitors, not our own acquired brands — so Cognigy news never entered. One line of config |
Where we've measured it, NiCE is cited 24 times on Perplexity but only 3 times each on Claude, Gemini and ChatGPT. Three of the four engines a buyer might ask barely know us.
Separately, 848 of our tracked keywords now trigger an AI Overview — meaning Google answers the question without sending a click. That is measured, unowned, and arguably the most strategically important number on this page.
How solid are these numbers?
Search Console figures were read directly from Google on 30 July and cover the 28 days to 27 July. SEMrush figures were verified live against the API on 29 July.
One caveat that matters: Google hides low-volume queries. Summed by query we see 29,878 of the property's 52,526 clicks — 43% are invisible at that grain. Summed by page, all of them are recoverable. So any total must be reported by page; query data is for discovery and intent only. Getting that backwards produces confidently wrong numbers, and it nearly did here.
03 — Not in the brief
Five things built that you didn't ask for
Each of these came out of building the thing rather than planning it. The first one is the most important, and it is absent from both your brief and your diagram.
The outcome loop
Your brief ends at "notify + store". This goes further: every published piece is re-checked after 21 days — did it reach the results page, did our share of AI answers rise more than a competitor's, did anything start citing us.
A flat verdict doesn't get filed. It returns to the board as a Refresh opportunity with the evidence attached.
First-party search data
Your §5 lists "SEO tool API". We have that — but as of 30 July we also read Google Search Console directly: what Google actually showed, and whether anyone clicked.
AI-answer citation tracking
Your goals list "AI Overviews / LLM citations" but the architecture has no mechanism for it. We measure share of voice and citations across four engines — Perplexity, Claude, Gemini, ChatGPT — and the outcome loop uses the movement as one of its three verdict checks.
Deterministic scoring
Covered in the Coverage tab under §6. Listed again here because it is the one place the built system is methodologically better than the brief rather than merely different.
The entity registry
Brand matching is where systems like this quietly rot. "NICE" is also the UK health institute; "nice systems" is plain English. A 75-case test suite guards every alias change, and it has caught real collisions.
04 — Ideas proposed, not built
Where this could go next
Nothing on this tab exists. It is here because the most interesting idea is not new work — it is the logical completion of your §4.
Your §4 defines eight owners with explicit responsibilities — SEO, Social, Content, Video, Product Marketing, PR, Paid, Ops. Today the pipeline names the owner on a board row and stops. The proposal is to give each of those roles a review lens with a written rubric, and run every draft brief past the relevant ones before it reaches a human.
That isn't an AI gimmick bolted onto the system. It is your org chart, executed.
The review panel
Four lenses, each with a rubric it is judged against. The rubric is the asset — not the persona. Where a colleague wrote the rubric, credit them as its author rather than naming the reviewer after them; an automated reviewer that speaks in a real person's name will eventually reject something that person would have approved, and that is a problem with a colleague, not with software.
| Lens | What it checks | Kills a draft when… |
|---|---|---|
| Search fit rubric author: SEO lead | Does the recommended format match what the results page actually rewards? Is the term winnable at our authority? Does this cannibalise a page we already have? | The brief proposes a standard blog for a term where video and comparison pages own the top ten |
| Analytics check rubric author: analytics owner | Every number in the brief traced to a source; no metric quoted at a grain it doesn't support; claimed upside recomputed independently | A figure can't be reproduced from the data it cites |
| Contrarian angle rubric author: editorial | Is this the obvious take? What would a competitor publish on the same signal? What's the position nobody else will hold? | The angle is indistinguishable from three competitor posts already ranking |
| Final gate rubric author: marketing lead | Brand accuracy, positioning, proof points, legal exposure. Returns approve · revise-with-reasons · reject — never a bare yes/no | A claim about the product can't be substantiated |
Log which lens killed which draft. Without that record, a review panel is ceremony that adds latency and cost. With it, after a few dozen briefs you can answer: which lens earns its keep, which one never fires, and whether panel-approved briefs actually outperform on the 21-day outcome check.
That last join is the point. We already label every published piece moved or flat — so the panel can be evaluated by the same standard as the content it gates.
Does an adversarial second lens actually catch anything? Evidence from this month.
The Search Console analysis in the Evidence tab was reviewed by an independent checking pass before it was written up. It caught three errors that would otherwise have shipped:
One. The click-through baseline was contaminated by a single brand query — "nice" alone accounted for roughly two-thirds of the impressions in its position bucket. The resulting opportunity estimate was inflated roughly fourfold: a headline of "+3,230 clicks" was really +667.
Two. Google reports its "jump to section" links as separate rows, and summing them triple-counted a page's impressions — inflating the cannibalization finding about 3×.
Three. A conclusion about brand versus non-brand traffic was drawn from data covering 57% of clicks and presented as though it covered all of them.
All three were plausible, none were obvious, and all three were invisible to the person who produced the analysis. That is the argument for the panel, and it's the honest reason this idea is on the page at all.
Two smaller ideas
Draft it three ways
Rather than one brief per opportunity, generate three with deliberately different stances — proof-led, contrarian, practitioner-first — and have the panel score them. Directly serves your §9 question, "what can NiCE credibly add?"
Cost: roughly 3× the drafting spend per opportunity. Worth testing on high-score rows only.
Let the scores learn
After around ten published pieces have been through a 21-day check, compare what the score predicted against what happened, and refit the weights. Your §6 weights are principled guesses; so are ours. The difference is that ours are reproducible, which is the precondition for ever measuring them.
Blocked on one thing only: a first real publication going through the loop.
05 — What's in the way
Everything works. Nothing is running.
The verdicts across this document are deployed-and-proven states. They are not this-morning states, and the difference is the first row below.
The engine has not executed since 24 July. Every workflow is deployed and active, but it lives on a local machine rather than a server, so the schedules only fire while that machine is on. Nothing is broken; nothing is arriving either.
July was spent proving each piece works. It has not yet spent a week running unattended, and that is a hosting decision rather than an engineering problem.
| Blocker | What it costs us | What's needed | Owner |
|---|---|---|---|
| 1 Digest destination undecided | Briefs get written and nobody is nudged. It also gates blocker 2 — the migration is only worth doing once the destination is settled | One word back: Teams, Telegram, or email | You |
| 2 No permanent home | Runs on a laptop, so it stops when the laptop does | Move to the company n8n instance once blocker 1 lands | You + IT |
| 3 Search Console feed unbuilt | The Evidence tab is a one-off snapshot, and 16 months of our own history expires a day at a time | Build the daily ingest, run the backfill. Access is already granted | AP |
| 4 Rank tracking unread | 3,999 keywords and 848 AI-Overview flags sit unused in a subscription we already pay for | Connect the existing campaign. No new spend, no new vendor | AP |
| 5 No first publication | The outcome loop can't prove effect, and the scores can't be calibrated, until one real piece goes through it | One published piece registered with the pipeline | Content |
| 6 No VOC source | Your §5 and the diagram both call for customer signal. We answer content questions without knowing why we lose deals | Agree a source with sales leadership | You + Sales |
Blocker 1 is a single word, it has been open since 9 July, and it releases blocker 2 — which is what turns every finding in this document from a report into something that arrives every morning without anyone asking.
What I'd build next, in order
- Search Console daily feed + the 498-day backfill. Time-critical — history is expiring. Access is done, so this is pure build.
- Connect the rank-tracking campaign. No new budget or vendor; immediately answers "where are we losing ground this week" and "which keywords is AI taking from us".
- The Content Intelligence step (§9). Your biggest gap and, in your words, the brief teams actually need.
- Workflow B (§7) — task creation into Monday.com. Turns a board into a work queue, and makes §4's owners real.
Items 1 and 2 need nothing from you. Items 3 and 4 are worth sequencing after the engine has a permanent home, or they'll be built for something that isn't running.