Skip to main content

Parlyr vs NEXUS

When to use natural language queries vs AI strategy orchestration

2 min read


KLOAKD has two AI-powered modules. Here's how to choose between them.

Quick comparison

| | Parlyr | NEXUS | |--|--------|-------| | Input | Natural language ("extract all prices") | URL + goal | | Output | Extraction schema + intent | Full strategy plan | | Best for | Quick one-off extractions | Complex multi-step workflows | | LLM | Cloud API | Self-hosted Mistral 7B | | Cost | Per-request | Zero (self-hosted) | | Latency | ~200ms | ~2-5s |

When to use Parlyr

Parlyr converts natural language into extraction schemas. Use it when:

  • You know what data you want but not which selectors to use
  • You want a quick one-off extraction without writing schemas
  • You're prototyping and want fast iteration

Example

result = client.parlyr.parse(
    "Extract all product names, prices, and ratings",
)
# Returns: intent, confidence, detected_url, entities
data = client.kolektr.page(
    result.detected_url or "https://example.com/products",
    schema={"name": "css:.product-name", "price": "css:.price"},
)

When to use NEXUS

NEXUS analyzes a site and synthesizes a complete extraction strategy. Use it when:

  • You don't know which modules to use
  • The site has complex structure requiring multiple steps
  • You want a repeatable, optimized workflow
  • You want zero external AI cost (self-hosted)

Example

# Step 1: Analyze the page
analysis = client.nexus.analyze("https://example.com")

# Step 2: Synthesize a strategy
plan = client.nexus.synthesize(perception_id=analysis.perception_id)
print(plan.strategy_name)

Combining both

Use NEXUS for strategy, Parlyr for intent parsing:

# NEXUS analyzes and synthesizes a strategy
analysis = client.nexus.analyze("https://example.com")
plan = client.nexus.synthesize(perception_id=analysis.perception_id)

# Parlyr parses natural language intent
result = client.parlyr.parse(
    "Get product names and prices, exclude out-of-stock items",
)

# Execute extraction with a schema you define
url = result.detected_url or "https://example.com/products"
data = client.kolektr.page(
    url,
    schema={"name": "css:.product-name", "price": "css:.price"},
)

Next steps

Was this page helpful?