Introduction
After several years of integrating LLMs into production systems, I’ve observed a consistent pattern: the features that deliver real value rarely align with what gets attention at conferences. While the industry focuses on AGI and emergent behaviors, the mundane applications—data extraction, classification, controlled generation—are quietly transforming how we build software.
This post presents a framework I’ve developed for evaluating LLM features based on what actually ships and scales. It’s deliberately narrow in scope, focusing on patterns that have proven reliable across multiple deployments rather than exploring the theoretical boundaries of what’s possible.
The Three Categories That Actually Work
Through trial, error, and more error, I’ve found that LLMs consistently excel in three specific areas. When I’m evaluating a potential AI feature, I ask: “Does this clearly fit into one of these categories?” If not, it’s probably not worth pursuing (yet).
This is the unsexy workhorse of AI features. Think of it as having an intelligent data entry assistant who never gets tired of parsing messy inputs.
What makes this valuable:
- Humans hate data entry
- Traditional parsing is brittle and breaks with slight format changes
- LLMs can handle ambiguity and variations gracefully
Real examples I’ve built:
- PDF to JSON converter: Taking uploaded forms (PDFs, images, even handwritten docs) and extracting structured data. What used to require complex OCR pipelines and regex nightmares now works with a simple prompt.
- API response mapper: Taking inconsistent third-party API responses and mapping them to your internal data model. Every integration engineer’s nightmare—different field names, nested structures that change randomly, optional fields that are sometimes null and sometimes missing entirely.
- Customer feedback analyzer: Extracting actionable insights from the stream of unstructured feedback across emails, Slack, support tickets. Automatically pulling out feature requests, bug reports, severity, and sentiment. What used to be a PM’s full-time job.
The key insight here is that LLMs excel at handling structural variance and ambiguity—the exact things that make traditional parsers brittle. A single well-crafted prompt can replace hundreds of lines of mapping logic, regex patterns, and edge case handling. The model’s ability to understand intent rather than just pattern match is what makes this category so powerful.
Production considerations: For high-volume extraction from standardized formats, purpose-built services like Reducto offer better economics and reliability than raw LLM calls. These platforms have already solved for edge cases around OCR quality, table extraction, and format variations. The build-vs-buy calculation here typically favors buying unless you have unique requirements or scale that justifies the engineering investment.
2. Content Generation and Summarization
This is probably what most people think of when they hear “AI features,” but the key is being specific about the use case.
What makes this valuable:
- Reduces cognitive load on users
- Provides consistent quality and tone
- Can process and synthesize large amounts of information quickly
Real examples I’ve built:
- Smart report generation: Taking raw data and generating human-readable reports with insights and recommendations.
- Meeting summarizer: Processing transcripts to extract key decisions, action items, and important discussions.
- Documentation assistant: Generating first drafts of technical documentation from code comments and README files.
The critical lesson here is that unconstrained generation is rarely what you want in production. Effective generation features require explicit boundaries: output structure, length constraints, tone guidelines, and forbidden topics. The challenge isn’t getting the model to generate—it’s getting it to generate within your specific constraints reliably.
This is where prompt engineering transitions from art to engineering: defining schemas, enforcing structural requirements, and building validation layers. The most successful generation features I’ve seen treat the LLM as one component in a larger pipeline, not a magic box.
3. Categorization and Classification
This is where LLMs really shine compared to traditional ML. What used to require thousands of labeled examples and complex training pipelines can now be done with a well-crafted prompt.
What makes this valuable:
- No need for labeled training data
- Can handle edge cases and ambiguity
- Easy to adjust categories without retraining
The architectural advantage here is profound: you’re essentially defining classifiers declaratively rather than imperatively. No training data, no model selection, no hyperparameter tuning—just clear descriptions of your categories. The model’s pre-trained understanding of language and context does the heavy lifting.
This fundamentally changes the iteration cycle. Adding a new category or adjusting definitions happens in minutes, not weeks. The trade-off is less fine-grained control over the decision boundary, but for most business applications, this is a feature, not a bug.
Scaling considerations: Production deployments require:
- Structured output guarantees: Libraries like Pydantic AI and Outlines enforce schema compliance at the token generation level, eliminating post-processing failures.
- Prompt optimization: DSPy and similar frameworks apply optimization techniques to prompt engineering, treating it as a learnable parameter rather than a manual craft.
- Evals, Observability, and Error Analysis: This could and will likely eventually be its own post
The Anti-Patterns: What Doesn’t Work
Let me save you some pain by sharing what consistently fails:
1. Trying to Replace Domain Expertise
LLMs are great at general knowledge but terrible at specialized domains without extensive context. If you need deep expertise, you still need experts.
2. Real-time, High-frequency Operations
Sub-100ms response times and high-frequency calls remain outside the practical envelope for LLM applications. The latency floor of current models, even with optimizations like speculative decoding, makes them unsuitable for hot-path operations.
3. Anything Requiring Perfect Accuracy
LLMs are probabilistic. If you need 100% accuracy (financial calculations, legal compliance, etc.), use traditional code.
A Practical Evaluation Framework
When someone comes to me with an AI feature idea, here’s my checklist:
| Question | Good Sign | Red Flag |
|---|---|---|
| Does it fit one of the three categories? | Clear fit with examples | “It’s like ChatGPT but…” |
| What’s the failure mode? | Graceful degradation | Catastrophic failure |
| Can a human do it in <5 minutes? | Yes, but it’s tedious | No, requires deep expertise |
| Is accuracy critical? | Good enough is fine | Must be 100% correct |
| What’s the response time requirement? | Seconds are fine | Needs to be instant |
| Do we have the data? | Yes, and it’s accessible | “We’ll figure it out” |
Implementation Strategy
For teams evaluating their first LLM feature, I recommend starting with categorization. The reasoning is purely pragmatic: it has the clearest evaluation metrics, the most forgiving failure modes, and provides immediate value. You can validate the approach with a small dataset and scale incrementally.
The implementation complexity is also minimal—you’re essentially building a discriminator rather than a generator, which sidesteps many of the challenges around hallucination, output formatting, and content safety. Most importantly, when classification confidence is low, you can gracefully fall back to human review without breaking the user experience.
The Reality of Production AI
The gap between AI demos and production systems remains vast. The features that succeed in production share a common trait: they augment existing workflows rather than attempting to replace them entirely. They handle the tedious, error-prone tasks that humans perform inconsistently, freeing cognitive capacity for higher-value work.
This isn’t a limitation—it’s the current sweet spot for LLM applications. The technology excels at tasks that are simultaneously too complex for traditional automation but too mundane to justify human attention. Understanding this paradox is key to building AI features that actually ship.