Micro-Moments Classifier
Use cases
GPT-powered classification into four intent categories: I-want-to-BUY (transactional), I-want-to-KNOW (informational), I-want-to-DO (instructional), I-want-to-GO (navigational).
Model selection: gpt-4o-mini (default), gpt-4o, gpt-4.1.
Configurable batch size (10-100 keywords per API call).
Temperature=0 for deterministic results.
1-5 confidence scoring.
Platform
Python script (requires Python 3.x)
Input
OpenAI API key
Keywords via CSV or text input
Batch size: 10-100 (default 50)
Output
Excel with separate sheets per micro-moment: keyword, classification, confidence score (1-5).
Features
- Four micro-moment categories (BUY/KNOW/DO/GO)
- Model selection: gpt-4o-mini, gpt-4o, gpt-4.1
- Configurable batch size (10-100 per API call)
- 1-5 confidence scoring per classification
- Separate Excel sheets by intent type
How to use
- 1 Enter your OpenAI API key
- 2 Select GPT model (gpt-4o-mini is the default)
- 3 Upload a keywords CSV or paste keywords (an uploaded file takes precedence)
- 4 Set batch size (larger batches risk the 4,000 output token cap)
- 5 Classify; keywords the model misses are added as Unclassified
- 6 Download CSV or Excel with a sheet per micro-moment
Frequently asked questions
- Why do some keywords come back as 'Unclassified' with confidence 0?
- After all batches finish, the tool compares your input list against the model's output (case-insensitively). Any keyword the model failed to return is appended as 'Unclassified' with confidence 0 rather than dropped. A common cause is the model slightly rewriting a keyword; in that case the rewritten version appears classified and your original also appears as Unclassified, inflating the row count.
- Why did a whole batch fail on a large batch size?
- Each API call is capped at 4,000 output tokens. With the batch size at or near the 100 maximum, long keywords plus confidence scores can exceed that cap, truncating the JSON so the entire batch errors. If you see batch errors, lower the batch size; the default of 50 is usually safe.
- Which column does it use from my CSV?
- It preselects the first column whose name contains 'keyword' or 'query' (any case), but you can override this in the Column Selection expander. If no column matches, it defaults to the first column, so check the selection before running.
- Can I use both the CSV upload and the manual text box?
- No, the upload wins. Keywords typed into the manual expander are ignored whenever a file is uploaded, so remove the file first if you want to classify a pasted list.
- What do the confidence scores actually mean?
- They are self-reported by the model on a 1 to 5 scale as part of the same prompt, not calibrated probabilities. Classification runs at temperature 0 so repeated runs are near-deterministic, but treat the scores as a rough triage signal for manual review, not a statistical measure.
Want me to run this for you?
I run this tool as a managed service, or build something custom around your data. You get the insights without touching the code.
Related Tools
Recursively extract PAA questions using ValueSERP API.
Classify keywords into hierarchical themes and subthemes using AI.
Compare keyword lists to find gap opportunities with content matching.
Convert keyword phrases into natural questions for FAQ content.
Cluster keywords by shared SERP URLs via a FastAPI REST endpoint.
Follow redirect chains and see every hop along the way.
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