This Is More Than Just One Guide
11 courses and 21 free guides on AI automation for business — and beyond.

50 Web Pages for $0.002, Not $43: the Parser a Decision Model Needs
codearia-sieve is our open-source MCP server and library. It turns a web page into state: dates as dates, numbers with units, chunks that fit the model's window, and the token bill before and after. One line to install, no model and no API key to run.
What is inside
free, all of itThree reasons a raw page breaks a decision model
On 15 September Jev shipped: a model that writes nothing, takes state and typed questions, and returns decisions with probabilities for four cents per million tokens. The cheapest and fastest model needs the most careful input.
Context rot
Jev has 32 000 tokens for state, and its authors say accuracy drops as irrelevant material fills them. A fetched page is menus, a cookie banner, a footer and ad slots around one paragraph. Median in our sample: 53 718 tokens for a page whose content fits in 1 106.
It cannot count
A decision model does not do arithmetic. "$42 per billion tokens" as prose is a string it has to reason about; { value: 42, unit: "USD_per_billion" } is a number it can compare. Markdown made for reading leaves every number as prose.
Dates are text
"Published September 15, 2026" is a sentence to it, not an ordered value. Freshness checks, "which of these is newer", anything with a before and an after, fail unless the date arrives as a date field.

State, not prose
Every "page to markdown" tool prepares input for a reader. This one prepares input for a judge. The difference is in the shape of the result: fields instead of sentences, each one pointing back to where on the page it came from.
- "Published September 15, 2026" → "2026-09-15"
- "$42 per billion tokens" → { value: 42, unit: "USD_per_billion" }
- chunks: tokens, chars, blocks, #anchor
- usage: rawTokens 53 718 → stateTokens 1 106
- warnings: paywall, blocked, empty-without-js …
Dates are read from JSON-LD, meta tags and <time> first, from a byline only when the markup is silent, and never guessed. A number without a unit is not a fact, and a year is never a fact. Expected failures do not throw: they come back as one of eight named warnings.

Claude Code, sieve, Jev
You say what you want in plain words. Claude Code finds the pages and calls sieve_page for each. In the default summary mode it gets the outline of the page, sizes and anchors but no text, and pulls one chunk with sieve_chunk only when it needs it. The state goes to Jev through jev-mcp as a typed question, the scores come back with probabilities, and Claude writes it up. Two things to paste: the MCP config, then the task.
{ "mcpServers": { "sieve": { "command": "npx", "args": ["-y", "codearia-sieve"] } } }Watch these four pricing pages for me: [URLs].
For each page call sieve_page. If a warning comes back, tell me which one and stop for that page instead of guessing.
Hand the pricing chunk to Jev with one question: which plan is the cheapest one that includes [feature]? Ask for the price, the plan name and a confidence score.
Return a table: vendor, plan, price, confidence, the #anchor on the page where I can check it. Flag anything below 0.9 for me to read myself.That is the pricing-watch example from the repository. On four vendor pages it cut 806 986 tokens down to 8 527 and returned "Vercel Pro $20/mo" at a confidence of 0.99, with a check per vendor.

Four places where it stops
- 01
Walled sites. Stack Exchange and Reddit answer a bot with a challenge page. You get a blocked warning with the status, not a bypass and not a fake page.
- 02
Pricing grids. A fact knows the block it came from, not the plan column it sits under, and the parser does not guess the pairing. Send the chunk, about a thousand tokens after cleaning, and let the judge read it.
- 03
Shops and apps rendered by a script. When the article container is empty and JavaScript would fill it, you get empty-without-js. A site that ships a teaser and streams the rest cannot be told apart without a browser.
- 04
Text-heavy pages save less. A whole novel saves 22 %, an RFC 84 %: there is no wrapping to remove and the text is kept in full. That is the tool doing its job, not failing at it.
AI agents for business: from a chat to a team that runs on its own
Sieve is one layer. The course builds the agents above it: the ones that gather, decide, check and report while you do something else.
What it costs to run
One 50-page run, measured on 21 September 2026
With Jev as the judge a run over 50 pages costs about $0.002. The same pages as raw HTML into Sonnet cost about $8.60, into Opus about $43. Run it daily and the month is $0.06 against $258. The difference is not a cleverer model, it is that the model never sees the menus.
- 50 pages, sieve + Jev: ≈ $0.002
- 50 pages, raw HTML → Sonnet: ≈ $8.60
- 50 pages, raw HTML → Opus: ≈ $43
- daily runs, a month: $0.06 vs $258
Six steps to your first decision
The top level of the process. Confidence thresholds, fallbacks and the measurement are covered in the course.
01.Add the server
One line in the MCP config of Claude Code or Cursor: command npx, args -y codearia-sieve. No model, no API key. Two tools appear: sieve_page and sieve_chunk.
This is a map, not an instruction manual. The full loop with checks and measurement is covered step by step in the course.
Measured, not promised
A lab of seven scenarios, about 130 pages: web-dev news sources, competitor pricing pages, documentation freshness, Hebrew and Arabic news, government fee tables, long documents like RFCs and Wikipedia, forums. It found 16 bugs, fixed the same day: plain-text bylines, tracking parameters against robots.txt, false paywalls from JSON-LD flags, Hebrew and Arabic units, body-less RFC documents, chunks cut mid-section. Every fix has a test. 69 tests, all offline, and npm run analytics reruns the 56-page sample from the README.
Agents that decide, check and report
A parser is one part. The course covers the whole loop: which decisions to move off the writing model, how to gate them on confidence, how to hand the routine to agents and measure what actually changed.

Comments