Keyword Intent SERP Classifier avatar

Keyword Intent SERP Classifier

Pricing

from $11.50 / 1,000 query snapshot classifieds

Go to Apify Store
Keyword Intent SERP Classifier

Keyword Intent SERP Classifier

Classify query intent using SERP evidence such as result types, dominant page formats, transactional modifiers, local packs, comparison pages, videos,...

Pricing

from $11.50 / 1,000 query snapshot classifieds

Rating

0.0

(0)

Developer

junipr

junipr

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Classify keyword intent from the result types, page formats, titles, snippets, and URLs visible in supplied SERP evidence. The actor produces transparent intent signals and confidence scores for content planning, paid-search research, and keyword segmentation.

What you get

Each query becomes one dataset row with:

  • primary and secondary intent;
  • a normalized confidence score from 0 to 1;
  • observed result types and dominant page formats;
  • explicit local, transactional, and informational signal flags;
  • a recommended content type based on the winning evidence class;
  • source URL, evidence excerpt, issue code, scan time, and recommendation.

Supported primary labels include local, transactional, commercial, informational, navigational, and mixed. Optional deterministic rules may add named intent labels. The actor does not use an opaque model: scoring comes from visible words, result types, page formats, and the custom patterns you provide.

When includeReport is enabled, the default key-value store receives a Markdown summary, CSV rows, issue JSON, evidence JSON, and run metadata.

Input choices

Use serpResults for structured query evidence. Each item can be a result record or an object containing query and results. Relevant fields include resultType, title, snippet, url, pageFormat, and sourceUrl.

Use serpHtmlInputs or htmlInputs for captured HTML. Every object should include its query. You may also provide explicit public URLs through startUrls; only those permitted URLs are fetched, and discovered links are not crawled.

Classification controls:

  • queries: queries to classify.
  • customIntentRules: objects with name or intent, a regular-expression pattern, and an optional numeric weight.
  • classifierMode: standard uses the configured threshold; strict requires at least 0.65 confidence.
  • confidenceThreshold: minimum winning score share before a single primary intent is emitted.
  • includeEvidenceUrls: suppress source URLs when evidence locations should not be returned.
  • maxQueries, maxSnapshots, maxSignalsPerQuery: bound analysis.
  • includeEvidence and includeRawSnapshots: control excerpts and capped raw HTML retention.
  • maxChargeUsd: stop before the next paid event would exceed the run ceiling.

Example input

{
"queries": ["buy crm software", "how to organize sales leads"],
"serpResults": [
{
"query": "buy crm software",
"sourceUrl": "https://example.com/serp/buy-crm",
"results": [
{ "resultType": "shopping", "title": "CRM pricing", "snippet": "Compare plans and buy", "url": "https://vendor.example/pricing" },
{ "resultType": "organic", "title": "Best CRM platforms", "snippet": "Product comparison", "url": "https://publisher.example/best-crm" }
]
},
{
"query": "how to organize sales leads",
"sourceUrl": "https://example.com/serp/organize-leads",
"results": [
{ "resultType": "organic", "title": "How to organize sales leads", "snippet": "Step-by-step guide", "url": "https://publisher.example/guide" }
]
}
],
"classifierMode": "standard",
"confidenceThreshold": 0.5,
"includeEvidenceUrls": true,
"maxQueries": 10,
"maxSnapshots": 10,
"maxSignalsPerQuery": 25,
"includeReport": true,
"maxChargeUsd": 35
}

Example output

{
"recordType": "keyword_intent_serp_classifier",
"recordName": "buy crm software",
"issueCode": "keyword_intent_serp_classifier_ok",
"severity": "low",
"query": "buy crm software",
"intentPrimary": "transactional",
"intentSecondary": "commercial",
"confidence": 0.545,
"evidenceResultTypes": ["shopping", "organic"],
"dominantPageFormats": ["product_or_commerce", "comparison_or_list"],
"localIntentSignal": false,
"transactionalSignal": true,
"informationalSignal": false,
"recommendedContentType": "product_or_pricing_page",
"sourceUrl": "https://example.com/serp/buy-crm",
"scannedAt": "2026-07-10T12:00:00.000Z"
}

How scoring works

The actor combines query modifiers with the supplied SERP composition. Shopping and product evidence strengthens transactional intent. Reviews, comparisons, alternatives, and list pages strengthen commercial intent. Guides, explainers, tutorials, and videos strengthen informational intent. Map and local-pack evidence strengthens local intent. Official, login, support, and contact evidence can strengthen navigational intent.

Confidence is the winning score divided by all positive scores. If the winning share does not meet the configured mode and threshold, the row is labeled mixed. Custom rules are compiled defensively; an invalid optional pattern is ignored rather than executed as a guess.

If a query has no matching SERP evidence, the actor emits a diagnostic row with zero confidence. It never classifies intent from the query string alone on an evidence-free run. Access-denied or challenge pages receive a blocked diagnostic.

Pay-per-event pricing

Platform usage pass-through is off. Every paid path charges before writing its associated output.

EventPrice
actor-start$0.0350
query-snapshot-classified$0.0115
intent-signal-extracted$0.0115
intent-classification-emitted$0.0115
executive-report-generated$0.4000

The default maximum charge is $35. A zero ceiling prevents paid processing and output.

Practical uses

  • create intent buckets for editorial roadmaps;
  • choose a page format that matches current SERP composition;
  • separate local, transactional, commercial, and informational opportunities;
  • compare classification changes across dated SERP captures;
  • export evidence arrays for analyst review or downstream automation.

Limits

Results reflect only the evidence provided. The actor does not estimate search volume, conversion probability, or future rankings. HTML parsers depend on explicit result markers; structured records are preferable for repeatable pipelines. Network inputs must be public HTTP(S) URLs and can be restricted with allowedDomains.