TabbitBlog

Use Schematron V2 Turbo with a Signed-In Browser

Schematron V2 Turbo extracts schema-shaped data from HTML; a separate local agent must open the browser page and prepare a human-reviewed draft.

In this article
  1. Key takeaways
  2. Split the browser and extraction work
  3. Read only the pages you are allowed to use
  4. Convert extracted fields into a review draft
  5. Diagnose by capability

Schematron V2 Turbo cannot operate a signed-in browser by itself. It is a schema-guided HTML extractor, and Inference.net explicitly says its Schematron extraction models do not support tool calling. To prepare a team-document draft, use a separate local agent or a person to open authorized pages through Tabbit Browser and Tabbit CLI, pass selected HTML to Schematron for structured extraction, then have a human review the named draft against the source.

The distinction is practical: inference-net/schematron-v2-turbo returns fields that match a schema; it does not navigate, click, or write. The official Schematron guide says the schema itself supplies the extraction instructions, without natural-language system or user prompts. The coding-agent documentation lists the Schematron extraction family among models without tool-calling support.

Key takeaways

  • Use Schematron V2 Turbo to extract typed fields from HTML, not as the browser-controlling agent.

  • The exact Inference.net model ID is inference-net/schematron-v2-turbo.

  • A local operator must open the signed-in page. Tabbit CLI can provide that browser step when the chosen client can run local tools.

  • Put extraction guidance in the JSON Schema field descriptions. The model does not take regular system or user prompts.

  • Keep internal source pages read-only. A human should compare every extracted value with the page before saving a shared draft.

Split the browser and extraction work

ComponentCan doCannot establish by itself
Schematron V2 TurboExtract HTML into schema-shaped JSON through Inference.net's APIOpen a browser, navigate, click, or edit a shared document
Local browser operatorUse Tabbit CLI to read a page in the selected Tabbit environmentDecide whether an extracted value is correct without checking the page
General-purpose local agentCoordinate local browser steps and call a compatible API if configuredReuse a session unless the browser tool reaches the correct profile
Human reviewerCompare the draft with source pages and approve next stepsAssume model output is correct just because it matches a schema

This separation also helps with failure diagnosis. Tabbit's /tabbit skill (in clients that support that invocation) teaches an agent how to use its local launcher. Some clients provide a skill picker instead; Codex users can check the /skills list. Skill discovery, CLI reachability, and the website's login are different checks. Read how to connect an agent to an existing browser before using a work profile.

Read only the pages you are allowed to use

Install Tabbit Browser and open the team page yourself in the intended profile. Confirm your organization allows the page content to be sent to the Inference.net API before sending HTML. Then have a local agent use the installed Tabbit skill and CLI in a separately named task tab. If your client cannot run local tools, hand the exact page URL and read-only checklist to a local agent or a person. A remote model does not inherit your browser's session.

For example, an operator might collect release-note headings and visible status from two approved team pages. Keep this first pass read-only. Ask the operator for the source URL and page title alongside the text so you can compare the extraction with the open tabs. The first browser-agent task checklist covers that kind of bounded read, and web search versus browser control explains why a search snippet cannot confirm private page access.

The model's job begins after the HTML is available. Define fields clearly and make the schema do the work of the prompt.

import { readFile } from "node:fs/promises";
import OpenAI from "openai";
import { z } from "zod";
import { zodResponseFormat } from "openai/helpers/zod";

const client = new OpenAI({
  baseURL: "https://api.inference.net/v1",
  apiKey: process.env.INFERENCE_API_KEY,
});

const ReleaseNote = z.object({
  title: z.string().describe("Exact visible title of the release note."),
  updatedDate: z.string().describe("Visible update date, or 'not shown'."),
  status: z.string().describe("Status text shown on the page, or 'not shown'."),
  owner: z.string().describe("Named team or owner shown on the page, or 'not shown'."),
});

const sourceUrl = new URL(process.argv[2]);
if (!["http:", "https:"].includes(sourceUrl.protocol)) {
  throw new Error("Expected an HTTP or HTTPS source URL");
}
const html = await readFile("approved-record.html", "utf8");

const response = await client.chat.completions.parse({
  model: "inference-net/schematron-v2-turbo",
  messages: [{ role: "user", content: html }],
  response_format: zodResponseFormat(ReleaseNote, "release_note"),
  temperature: 0,
});

const extracted = response.choices[0].message.parsed;
if (!extracted) throw new Error("No parsed record returned");
console.log(JSON.stringify({ ...extracted, sourceUrl: sourceUrl.href }));

Save the approved HTML as approved-record.html. Pass the URL captured by Tabbit as the script’s first argument. The client attaches that URL after extraction, so the model only supplies the four page fields.

Convert extracted fields into a review draft

Schematron's JSON is input to a separate writing step. The browser operator or a general-purpose local agent can organize the extracted values, but it must not imply that the extractor itself can open the browser or update the team workspace.

Use the extracted fields and their source URLs to prepare a draft named
"Release notes review - November 10".
For each page, include the title, visible update date, status, owner,
source URL, and any field marked "not shown".
Do not open write controls, save, or submit a change to the team document.
I will compare every field with the original pages in my regular Tabbit tabs
before the document owner decides what to save.

The named draft gives the document owner a concrete review checkpoint. Keep the original source pages open in your regular Tabbit tabs while a separate task tab reads them. A local synthetic session test in this environment showed a first request returning 401 and a later Tabbit task reading the fixture after a temporary cookie was set. The fixture used no team account and the test did not call Schematron or change a document.

Synthetic local practice page labelled Authorized training workspace, with no real account information.
This local practice fixture illustrates browser-session reuse; it is not a team document or a Schematron result.

Diagnose by capability

SymptomNext check
The model returns JSON but cannot open a pageExpected behavior: use a separate local browser operator. Schematron does not support tool calls.
The API rejects the model IDCheck the exact ID in the current Inference.net model catalog: inference-net/schematron-v2-turbo.
Fields are incomplete or ambiguousAdd descriptions and explicit “not shown” behavior to the schema; provide the relevant HTML region.
A value matches the schema but looks wrongCompare it with the source page and validate the result before drafting. Schema validity is not factual accuracy.
The Tabbit skill is not availableCheck the client skill picker or installed skill path, then restart the client.
The site asks you to sign inOpen it yourself in the same Tabbit profile. Sign in only if you are authorized.

The local client step is separate from model selection. Tabbit's CLI supports browser tasks through compatible local clients, but this article does not claim that Schematron is a supported Tabbit agent model. See browser MCP versus CLI for the connection options, and the Tabbit CLI guide for local task reads. What an agentic browser does explains the browser's role. Install Tabbit from the download page if you need a local browser environment.

We found no qualifying first-hand community report about V2 Turbo operating a signed-in browser. One older Reddit thread contains a user report about rate limits and server errors in the earlier Schematron API generation. It is not evidence about V2 Turbo, so it is not used to describe current behavior. The workflow here is an illustrative handoff, not a tested model integration.

Use the model for the extraction job it documents. Let a local operator handle the authorized browser read, then compare a named draft with each source page before anything is saved.

FAQ

What is the Schematron V2 Turbo API model ID?

Inference.net documents the exact ID as `inference-net/schematron-v2-turbo`. Check the provider's current model list before configuring a client.

Can Schematron V2 Turbo open a signed-in web page?

No. It extracts structured data from HTML. Inference.net explicitly lists the Schematron extraction models among models that do not support tool calling.

Is structured output the same as browser tool calling?

No. A JSON Schema controls the shape of the model response. It does not let the model navigate, click, or write to a shared document.

How do I give it HTML from a signed-in page?

Use an authorized local browser operator to read the page and prepare the relevant HTML. Follow your organization's rules before sending internal material to an API.

What if my agent client cannot run Tabbit CLI?

Use a local agent that can load the Tabbit skill and run the CLI, or perform the browser step yourself. A remote model call does not inherit a local browser session.

Was the shared-document workflow tested with Schematron?

No. The workflow is an illustrative handoff. The local Tabbit session check used a synthetic page and did not call the Schematron API or edit a team document.

Take the next step

Let Tabbit work alongside you.

Research across tabs, automate repetitive browser work, and keep every piece of context within reach.