playbook-pricing-page

Detects public pricing pages and extracts plan tiers, prices, and pricing models per domain.

678|243|Updated Mar 10, 2026
One-click install
npx skills add https://github.com/growthenginenowoslawski/coldoutboundskills --skill playbook-pricing-page
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: playbook-pricing-page
Source: https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-pricing-page
Command: npx skills add https://github.com/growthenginenowoslawski/coldoutboundskills --skill playbook-pricing-page

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Cold outbound campaigns need to know whether a prospect publishes self-serve pricing or is sales-led, because those two groups require different offers and copy. Manually checking hundreds of pricing pages is slow, and naive scrapers misread soft-404 redirects, truncated pages, and promotional prices.

Core Features & Use Cases

  • Pricing page detection: Walks seven candidate URL paths per domain with a soft-404 guard that validates the final resolved path, not just HTTP 200.
  • Structured extraction: Uses a locked LLM prompt to produce a JSON record with pricing_public, pricing_model, plans, lowest_paid_price, has_free_tier, and confidence, verified by a free verbatim string-search assertion.
  • List filtering and routing: Splits prospect lists into self-serve versus quote-only companies, with explicit rules that unknown results never remove a row.
  • Use Case: Given a 5,000-domain prospect list, run the playbook to tag each domain as self-serve or sales-led, route each half to the appropriate campaign, and optionally generate a pricing clause for copy.

Quick Start

Check each domain in my prospect list for a public pricing page and output a structured record of its plans, prices, and pricing model.

Frequently Asked Questions about playbook-pricing-page

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I check if a company has a public pricing page at scale?

Probe candidate paths like /pricing, /plans, and /price on each domain with a browser user agent, accepting a result only when the final resolved path still matches a pricing pattern. This catches soft-404 redirects that return HTTP 200 while landing on an error page.

How do I extract pricing tiers from a webpage with an LLM?

Fetch the page, strip it to visible text, select the most price-dense 14,000-character window, and pass it to a model with a JSON-mode extraction prompt. Verify every reported price and plan name appears verbatim in the fetched text using a string search.

Why does my scraper report quote-only companies as having public pricing?

The domain likely returns HTTP 200 on /pricing but redirects to a 404 page. Status 200 alone proves nothing; you must inspect the final resolved path after redirects and require it to still match a pricing URL pattern.

When should I use a rendering proxy for scraping pricing pages?

Only when the plain GET produces under 800 visible characters or fewer than two currency amounts. Rendering is metered and rescued zero pages in testing, so the richness gate is the sole condition that justifies paying for it.

What is the difference between quote_only and unknown pricing models?

quote_only means the page exists and every tier says contact sales, which is a confident finding you can filter on. unknown means the fetch failed entirely, which is not a finding and must never remove a prospect row.

Can I build this pricing detection in Clay?

Yes, via a Clay table or workflow, but run the URL candidate sweep and page fetch outside Clay or behind a small endpoint, since Clay HTTP columns parse responses as JSON and cannot inspect redirect chains. Clay then handles extraction, assertion, and filtering.