Back to Tools

Page Intent Classifier

Use cases

Content audits by intent User journey mapping Conversion optimisation planning Site structure analysis

Uses GPT-4o-mini/4o/4.1 with JSON response formatting (temperature 0.3, max 150 tokens) to classify pages.

html2text converts HTML to clean text.

Categories: signup, purchase, browse, learn, contact, compare, download, other.

CSS selector for content targeting, character limit (500-10,000).

Streamlit App Requires API Key

Platform

Browser-based (no installation required)

Input

URLs via paste or CSV upload

OpenAI API key

Output

CSV: intent description (≤6 words), expected action (≤3 words), category (signup/purchase/browse/learn/contact/compare/download/other).

Launch App View Source

Features

  • GPT-4o-mini, GPT-4o, or GPT-4.1 models
  • JSON response formatting (temp 0.3, max 150 tokens)
  • html2text content conversion
  • 8 category classifications
  • CSS selector for content targeting
  • Character limit slider (500-10,000)

How to use

  1. 1 Enter OpenAI API key
  2. 2 Select model (GPT-4o-mini recommended)
  3. 3 Input URLs or upload CSV
  4. 4 Optionally set CSS selector for content area
  5. 5 Configure character limit and request delay
  6. 6 Download CSV with classifications

Frequently asked questions

What happens if my CSS selector is wrong?
The tool silently falls back to classifying the entire page body; there is no warning that the selector matched nothing. If classifications look like they are based on navigation or footer text, test the selector on one page in your browser dev tools first.
How much of each page does the model actually see?
By default the first 3,000 characters (configurable from 500 to 10,000) of the page after html2text conversion, which strips links, images, tables and emphasis. On long pages the classification is effectively based on the top of the page, so raise the limit if key intent signals (pricing tables, forms) sit lower down.
Is the category guaranteed to be one of the eight listed?
Almost always, but not strictly. The API's JSON mode guarantees valid JSON, while the eight categories (signup, purchase, browse, learn, contact, compare, download, other) are enforced only by the prompt, not a schema, so an occasional off-list value is possible. Worth a quick value check before pivoting on the category column.
What drives the API cost?
One chat completion per URL on your own OpenAI key, with output capped at 150 tokens, so input length (your character limit setting) is the main cost driver. The app estimates roughly $0.0015 to $0.003 per page on gpt-4o-mini at its default settings.
Will it classify JavaScript-rendered pages correctly?
Pages are fetched as raw HTML with the requests library, so content rendered client-side is missing from what the model sees. Such pages often classify as 'other' or from whatever server-rendered shell exists. Fetch or classification errors do not stop the batch; they are recorded per row in an error column.

Need something built for your business?

This tool started as bespoke client work. I build custom scripts, data pipelines, and full apps for SEO and product data problems that off-the-shelf tools don't solve.

Tell Me What You Need