Most teams treat data cleaning as an afterthought. They just dump raw HTML into the context window and pray for good output.
I’ve been building custom pipelines that strip the "noise" at the source before the LLM even sees it.
The Result: 60%+ token efficiency and higher conversion rates.
The Workflow: I’m using a mix of structured extraction and rule-based filtering that keeps the signal-to-noise ratio high.
Building stable data-enrichment pipelines is a grind, especially when dealing with chaotic scraping environments.
Are you building a data-heavy AI product? Let’s talk about how you’re managing your context window costs. I’m looking to trade notes on cleaning stacks.
The 60% token efficiency number matches what we see building custom extraction pipelines for client automation work. Most teams jump straight to model optimization without looking at what goes into the context window first. The biggest waste we found was not navigation or ads but duplicated content from pagination and infinite scroll implementations. Each page load sends the same header, same sidebar, same footer, plus whatever new content loaded. Stripping that at the scraper level before the LLM sees anything cut our costs more than any model swap ever did. For the cutoff question: we remove anything that is not unique visible content. Navigation, headers, footers, sidebars, ads all go. What stays is the main content block plus enough structural metadata to keep the context coherent. Send me a message if you want to compare cleaning stacks, always looking to improve this.
This is a really practical point.
A lot of teams focus on which model to use, but the input pipeline often decides the real cost before the model even starts reasoning. If raw HTML, duplicated text, navigation, and irrelevant blocks all enter the context window, even a cheap model can become expensive fast.
The 60%+ token efficiency number makes sense to me, especially for scraping-heavy or data-enrichment workflows.
This is also one of the reasons we’ve been building EvoLink around unified model access and cost control. Cleaning the input is one layer, but teams also need a simple way to route cleaned workloads across different models, compare cost/performance, and avoid overspending when volume grows.
If useful, this is the direction we’re working on here: EvoLink Model Router
Curious how you decide the cutoff point: what gets removed before the LLM sees it, and what still needs to stay for reasoning quality?
That is exactly the challenge the 'input pipeline' is often the most neglected part of the cost-optimization stack. Focusing on model selection without fixing the input is like trying to improve a car's fuel efficiency by switching engines, while the trunk is still full of bricks.As for my 'cutoff' decision-making process, I’ve established a few heuristics to balance cost against reasoning quality:Structural Metadata vs.
Content: I always strip navigation, boilerplates, and ad-related tags because they rarely add value to reasoning but consume tokens rapidly. The 'Semantic Retention' Test: If an element (like an internal link or a specific CSS class) contains implicit metadata that could change the interpretation of the content, I keep it. If it’s pure UI noise, it goes.
Routing Logic: I essentially treat 'Tagging' and 'Summarization' as high-precision, low-noise tasks where I aggressively filter. For 'Deep Reasoning' tasks, I allow a higher 'context budget' because the model needs those subtle structural cues to build a better mental map of the source.
I’m curious how EvoLink handles the 'routing' aspect are you letting users define custom 'pre-filter' rules for their routes, or is the router doing this classification automatically based on the incoming payload? Definitely an interesting space to be building in.