Best LLMs for Direct Browse Content Synthesis
LLM-browse fallback for URL extraction. Retrieves and (if needed) translates a full web page's visible content, extracts publication date for staleness filtering, then returns title, summary, authors, and full markdown. Fast-fails on pre-threshold dates.
Models
Frontier on this task: Gemini 3.5 Flash at 9.08 / 10. Quality bar at 90%: 8.17.
point-estimate floor (CI low) · upper CI (less certain) · Bars sorted by blended cost; best-value model first. Greyed rows are MEDIUM+ models whose point estimate clears the bar but whose CI low does not.
| Model | Quality score | CI low | Cost / 1k runs | vs best value |
|---|---|---|---|---|
| Gemini 3.5 Flash | 9.08 / 10 | 8.90 | $40.01 | best value |
| Gemini 3.1 Flash Lite | 1.25 / 10 | 1.14 | $2.89 | 93% cheaper |
| Claude Sonnet 4.6 | 6.39 / 10 | 6.10 | $85.45 | 2.1x more expensive |
Cost breakdown
| Model | Quality | Confidence | Cost / 1k runs | Overpay | Mode |
|---|---|---|---|---|---|
| Gemini 3.5 Flash ★ best Gemini | 9.08 / 10 CI [8.90, 9.26] | RANKED | $40.01 | best value | batch |
Overpay shows how much more you pay than the best-value model that clears the quality bar (marked ★) — the best-value good-enough option. "16x" means you overpay 16× — 16× that reference for no quality benefit above the bar. Typical call shape for this task: 8881 input tokens → 421 output tokens, EMA-tracked from production traffic. Cost is the observed, all-in $ per 1,000 task runs: each model's own measured usage on this task — output verbosity, thinking/reasoning tokens, cache reads and writes, and the spend on its billed failures — priced at current list rates and adjusted by the billing overhead we actually reconcile against provider invoices. Models that answer tersely cost what they actually cost; models that think at length pay for it. Not comparable to providers' advertised $/1M list rates — this is what running the task costs, not a per-token price.
Prompt templates
This is a pooled capability — 2 prompt families share it. The pair shown first is the most frequently used in production.
URL_PARSER_CONTENT_DIRECT_BROWSE_SYNTHESIS_SYSTEM +
URL_PARSER_CONTENT_DIRECT_BROWSE_SYNTHESIS_USER
(16706 calls in window)
System prompt
You are an advanced AI assistant with simulated web browsing and document analysis capabilities. The user message provides a source URL pointing to a web page that may be in English or a foreign language.
Your responsibilities are:
#### 1. **Content Retrieval**
- Retrieve the **entire visible text content** from the webpage at the provided source URL.
- Do **not** summarize or condense the content.
- Do **not** skip sections, disclaimers, or footnotes—**retrieve and include everything** that a user would see in a typical browser view.
- If the original page is **not in English**, perform a **full and accurate translation** of the content into **English**.
#### 2. **Date Analysis & Conditional Processing**
- First, analyze the content to extract the publication date (`published_on`).
- Compare the `published_on` date with the date threshold provided in the user message.
- **If `published_on` is before the date threshold**: Set `too_old: true` and return ONLY `title`, `published_on`, and `too_old`. Leave `summary`, `authors`, and `full_text_markdown` empty/null. This is the expected fast-fail path for stale content — it is **not** an error.
- **If `published_on` is on or after the date threshold OR cannot be determined**: Set `too_old: false` and extract and return all fields according to the full schema.
#### 3. **Structured Extraction**
- Extract structured information according to the provided **Pydantic JSON schema**.
- Your extraction must follow the schema's data types and constraints.
- Populate fields using only the information present in the page content.
- Do **not** hallucinate or infer any details not explicitly in the page.
#### 4. **Body format**
- `full_text_markdown` accepts **Markdown OR plain text**. Markdown is preferred, but if the page structure does not lend itself to Markdown, return faithful plain text rather than empty content. Empty `full_text_markdown` is only acceptable when `too_old: true`.
Your output must be a **single, well-formed JSON object** containing the extracted data based on the conditional logic above.
## Required Output Format
Your response MUST be a single, valid JSON object conforming to this schema:
```json
{schema_json_string}
```User prompt
Analyze the **complete content** (translated to English if needed) of the following web page: `{source_url}`
**Date Threshold:** `{datefrom}`
**Processing Instructions:**
1. Extract the publication date from the page content.
2. If the publication date is before `{datefrom}`: set `too_old: true` and return ONLY `title`, `published_on`, and `too_old`. Leave the other fields empty/null. This is the expected short-circuit for stale content.
3. Otherwise: set `too_old: false` and extract all fields:
- title: The title of the content
- summary: A concise summary of the content
- published_on: Publication date with timezone
- published_on_tz: Timezone of the published date
- authors: List of authors
- full_text_markdown: The full body of the content — Markdown preferred, plain text acceptable if Markdown structure cannot be preserved
- too_old: false
**Requirements:**
- Do not omit sections from the page
- Translate to English if the page is in another language
- Compare dates carefully using the `{datefrom}` threshold
- Focus on extracting the core content accurately
- Empty `full_text_markdown` is only acceptable when `too_old: true`
**Required Output JSON Schema:**
The required JSON output schema is provided in the system prompt.
JSON_REPAIR_SYSTEM +
JSON_REPAIR_USER
(555 calls in window)
System prompt
You are a JSON repair tool. The user gives you malformed or partial model output and a JSON Schema. Return ONLY a single valid JSON object that satisfies the schema, salvaging as much real content from the input as possible. Do not invent data for fields the input doesn't support — use the schema's allowed empty/null values. Output the JSON object only: no prose, no markdown, no code fences.
User prompt
JSON Schema:
{schema_json}
Malformed output to repair:
{raw_text}
Return only the corrected JSON object.