Skip to content

Library batch 2: plays 05-08, completing the Keyword Research library - #187

Open
jeremypenguin-max wants to merge 6 commits into
every-app:mainfrom
jeremypenguin-max:library-batch2-gsc-discovery
Open

Library batch 2: plays 05-08, completing the Keyword Research library#187
jeremypenguin-max wants to merge 6 commits into
every-app:mainfrom
jeremypenguin-max:library-batch2-gsc-discovery

Conversation

@jeremypenguin-max

Copy link
Copy Markdown
Contributor

Batch 2 of the Keyword Research Strategy Library, opening with play 05. Kept separate from #185 (the blog post) so each can be reviewed on its own.

Why this one first

The pillar already ships all eight cards, and four of them render with a "Next up" badge and no link. Play 05 is the one the pillar's own body copy already points at:

The plays in this library replace it with three honest sources: your customers' language (play 01), Google's own question surfaces (play 02), and your Search Console reality (play 05).

That sentence is live today and sends readers to a card they cannot click. This PR gives it a destination and removes the badge.

What the page covers

  • Striking-distance keywords (positions 11-30), grouped by ranking page rather than sorted by query, so the output is a work queue instead of a keyword list
  • The 16-month retention window, and what a 90-day export hides
  • Zero-click pages: heavy impressions, no clicks, and how to tell a title problem from a topic-drift problem
  • A closing MCP prompt that runs all three

It cross-links /blogs/dark-queries as the why to this page's how, plus /google-search-console-mcp, and adds reciprocal links from the long-tail and clustering spokes.

On the quotes

I verified these against the source recordings rather than my episode notes, and the check caught a misattribution I would otherwise have shipped. The "degapinator" framing and the triangulation idea are the host's, not the guest's. Grant Simmons is quoted only for what he actually said: the confidence-score line and the 16-month point. His skepticism is included too, since a page about closing a data gap is more honest with the practitioner who doubts it can be fully closed.

Checks

  • npm run types:check passes
  • npm run build succeeds; the route prerenders and the sitemap picks it up
  • prettier --check passes on all touched files, including the regenerated routeTree.gen.ts

Not in this PR

No screenshot yet. Batch-1 spokes each carry a real app screenshot, and this one should get gsc-striking-distance-openseo.png (the ranked-keywords view filtered to positions 11-30) before merge. Happy to add it in a follow-up commit here. Plays 06, 07 and 08 are specced and follow next.

Jeraath and others added 2 commits August 1, 2026 10:20
Adds the fifth spoke of the Keyword Research Strategy Library and links
its card on the pillar, which until now rendered as "Next up" with no
destination. The pillar's own copy already pointed readers at "your
Search Console reality (play 05)", so the page closes a promise the
library was making.

Covers striking-distance keywords, the 16-month retention window, and
zero-click pages, and cross-links the dark-queries post as the why to
this page's how. Adds reciprocal links from the long-tail and
clustering spokes.

Quotes verified against the source recordings rather than episode
notes: the "degapinator" framing is the host's, and Grant Simmons is
quoted for the confidence-score and 16-month points he actually made,
including his skepticism that the gap can be closed outright.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Adds the commercial pair of the Keyword Research Strategy Library and
links both cards on the pillar, leaving only play 07 as "Next up".

06 (opportunity sizing & forecasting) makes the argument for ranking
clusters by revenue per unit of difficulty rather than by volume, and
closes with a three-scenario forecast prompt.

08 (map positioning to real demand) covers validating a category name
against search before committing to it, with the inverse case of
matching vocabulary a demand wave is already creating.

Cross-links added both ways: seeding to positioning, clustering to
forecasting, forecasting to Search Console discovery.

Every quote verified against the source recording. Three of the four
candidates from my own notes turned out to be reconstructions rather
than verbatim, and were replaced with what the speakers actually said.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jeremypenguin-max jeremypenguin-max changed the title Library play 05: programmatic discovery with Search Console Library batch 2: plays 05, 06 and 08 Aug 1, 2026
@jeremypenguin-max

Copy link
Copy Markdown
Contributor Author

Pushed plays 06 and 08 onto this branch, so the PR now covers three of the four outstanding library spokes.

Play Page Targets
05 gsc-programmatic-discovery striking-distance keywords, the 16-month window, zero-click pages
06 opportunity-sizing-forecasting sizing a cluster, three-scenario forecasts, revenue per unit of difficulty
08 positioning-to-demand validating a category name against real search demand

Only play 07 (intent beyond Google) still renders as "Next up" on the pillar.

Cross-links added both ways: seeding to positioning, clustering to forecasting, forecasting to Search Console discovery, long-tail and clustering to play 05.

Checks: types:check passes, build succeeds with all three routes prerendering, sitemap now at 43 URLs, prettier --check clean including the regenerated routeTree.gen.ts.

On play 08 and its keyword data. I ran the research before writing, and the honest result is that this page has no strong cluster behind it. "brand positioning" (1,900/mo, KD 37) belongs to a marketing-strategy audience looking for positioning-statement templates, not to anyone validating search demand, and the surrounding low-difficulty terms are all template and example queries. Targeting them would pull the wrong reader and put the page in a fight with a large content ecosystem it has no business entering. So 08 is written as the library's closer: it earns its place through the argument and the internal links rather than through search volume. That is the same judgement the page itself recommends, which felt like the right way to resolve it, but say the word if you would rather it chase the volume.

Still outstanding: screenshots. Batch-1 spokes each carry a real app screenshot and these three do not yet.

Completes the Keyword Research Strategy Library. Play 07 covers the
surfaces that run on intent without publishing volume data: Pinterest
as a search engine, the LinkedIn profile as the ranked asset, and the
AI answer layer where rank and traffic have come apart.

With this the pillar's eight cards all carry an href, so the "Next up"
badge no longer renders anywhere and the library stops advertising
work it has not delivered.

Quotes verified against the source recordings: Julia Bocchese on
Pinterest search behaviour, Daniel Alfon on the profile outranking the
post, and Christopher Gimmer on losing clicks at position one to both
AI Overviews and an expanded paid block.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jeremypenguin-max jeremypenguin-max changed the title Library batch 2: plays 05, 06 and 08 Library batch 2: plays 05-08, completing the Keyword Research library Aug 1, 2026
@jeremypenguin-max

Copy link
Copy Markdown
Contributor Author

Play 07 is in, which completes the library. All eight cards on the pillar now carry an href, so the "Next up" badge no longer renders anywhere.

Play Page
05 gsc-programmatic-discovery
06 opportunity-sizing-forecasting
07 intent-beyond-google
08 positioning-to-demand

Play 07 covers Pinterest as a search surface, the LinkedIn profile as the ranked asset, and the AI answer layer where rank and traffic have separated. Christopher Gimmer's point that an expanded paid block puts a number-one organic result fifth on the page is the one I would highlight, since it argues for CTR curves drawn from the real SERP rather than a textbook one.

types:check passes, build succeeds with all four routes prerendering, sitemap now at 44 URLs, prettier --check clean.

One thing left: screenshots. Batch-1 spokes each carry a real app screenshot and these four do not. Requested views, all destined for web/public/library/keyword-research/:

  • gsc-striking-distance-openseo.png — ranked keywords filtered to positions 11-30
  • keyword-difficulty-volume-openseo.png — research results sorted by difficulty against volume
  • intent-by-surface-openseo.png — research results with the intent column visible
  • positioning-demand-validation-openseo.png — a research query returning little or no volume

The last one is the awkward request: it needs a search that comes back near-empty, which is the page's whole argument. A real invented category term would do it.

Note the play.href ? null : badge branch in index.tsx is now unreachable. I left it in place rather than deleting it, on the assumption the library grows.

Jeraath and others added 3 commits August 1, 2026 10:41
Play 06 gets the keyword research view sorted by opportunity score, where
a 10-search-a-month term outranks a 6,600-search term. That is the page's
argument rendered in the product rather than asserted in prose.

Play 07 gets the intent column, used as the native proxy for which queries
the answer layer can satisfy without producing a visit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Runs George Little's actual failed positioning, "fractional creative
director", through keyword research. The tool returns nine keywords in
total, the term itself at 140 searches a month, and everything around it
labelled informational or navigational. The one row with real volume is a
company name.

The image makes the page's argument with the same example as the quote:
nobody was searching for the thing he built a company on.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Shows one site's keywords sitting at positions 10 through 13, which is the
band the page argues is the cheapest traffic on most sites.

The URL column is cropped out deliberately. The original capture mapped
each keyword to a live case-study URL on a client property, and this is a
public repository serving a public marketing site.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jeremypenguin-max

Copy link
Copy Markdown
Contributor Author

All four screenshots are in, so this batch is complete. Every play now carries a real app view rather than a diagram, matching the batch-1 standard.

Play Image What it shows
05 gsc-striking-distance-openseo.png a keyword list filtered to positions 10-13
06 keyword-difficulty-volume-openseo.png results sorted by opportunity score, not volume
07 intent-by-surface-openseo.png the intent column across a mixed result set
08 positioning-demand-validation-openseo.png a category term with a nine-keyword universe

Two of them turned out better than specified.

Play 06. The capture came back sorted by opportunity score, which is a stronger image than the difficulty-against-volume view I had planned. A term doing ten searches a month scores highest in the list; a term doing 6,600 sits several rows below it. That is the page's argument visible in the product instead of asserted in prose, so the caption now points at it directly.

Play 08. This one runs fractional creative director, which is the exact positioning George Little's earlier company failed on and the subject of the quote directly above it. The tool returns nine keywords in total. The term itself does 140 searches a month, everything around it is informational or navigational, and the only row with meaningful volume is a company name. Nothing in the list belongs to somebody trying to hire the role. The image and the interview now make the same argument with the same example, which is the best outcome this page could have had.

One deliberate edit. The play 05 capture originally included the URL column, which mapped each keyword to a live case-study URL on a client property. This is a public repository serving a public site, so I cropped the column before committing. The keywords and positions carry the argument on their own and the client's URL structure is not published.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants