Best LLMs for Newsletter Copy Generation
Generates publication-ready newsletter copy from supplied subject context, executive summary, article metadata, highlights, links, and timing configuration. Illustrative uses include producing a customer briefing, product newsletter, developer update, employee digest, industry re
Run this task on Fronset — request an invitation
Models
Frontier on this task: MiniMax M3 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.
| Model | Quality score | CI low | Cost / 1k runs | vs best value |
|---|---|---|---|---|
| MiniMax M3 | 9.08 / 10 | 9.05 | $0.66 | best value |
| NVIDIA Nemotron-3 Ultra 550B | 9.06 / 10 | 8.87 | $3.14 | 4.8x more expensive |
| Thinking Machines Inkling | 9.05 / 10 | 8.96 | $10.12 | 15x more expensive |
Cost breakdown
| Model | Quality | Confidence | Cost / 1k runs | Overpay | Mode |
|---|---|---|---|---|---|
| MiniMax M3 ★ best OpenRouter | 9.08 / 10 CI [9.05, 9.11] | RANKED | $0.66 | best value | batch |
| NVIDIA Nemotron-3 Ultra 550B OpenRouter | 9.06 / 10 CI [8.87, 9.24] | RANKED | $3.14 | 4.8x | batch |
| Thinking Machines Inkling OpenRouter | 9.05 / 10 CI [8.96, 9.14] | RANKED | $10.12 | 15x | 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: 766 input tokens → 611 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.
Evaluation rubric
Judge source fidelity, newsletter structure, reader value, voice consistency, appropriate compression, link/article accuracy, and variant fit. Penalize unsupported claims and promotional filler.
Output schema
Every answer on this task is checked against this JSON Schema, whichever model wrote it. An answer that doesn't fit counts as a model failure, and the call is retried on another model.
{
"properties": {
"newsletter_markdown": {
"description": "Opener newsletter in markdown format. Announces that new analysis is being published. Must include the literal placeholder \u003chome_url\u003e for the link to the full analysis page. Should be engaging, mention the publishing timeframe, and build anticipation.",
"title": "Newsletter Markdown",
"type": "string"
},
"newsletter_preview_text": {
"description": "Preview text shown in email inboxes (max 200 chars, hooks the reader)",
"title": "Newsletter Preview Text",
"type": "string"
},
"newsletter_subject": {
"description": "Compelling email subject line for the opener newsletter (max 100 chars)",
"title": "Newsletter Subject",
"type": "string"
}
},
"required": [
"newsletter_subject",
"newsletter_preview_text",
"newsletter_markdown"
],
"title": "SubstackOpenerOutput",
"type": "object"
}Prompt templates
The published template for this task.
default ·
LLMB_NEWSLETTER_COPY_GENERATION_SYSTEM +
LLMB_NEWSLETTER_COPY_GENERATION_USER
(0 calls in window)
System prompt
Write an informative newsletter that accurately represents the supplied items and highlights. Apply channel_profile and voice_profile as the sole source of delivery-channel behavior, layout, links, cadence, audience relationship, and tone. Lead with reader value and avoid fabricated exclusivity, urgency, performance, or personal familiarity. Treat empty optional values as absent and return only the requested result. Your response must conform exactly to this output schema: {schema_json_string}.
User prompt
Inputs — subject_name: {subject_name}; subject_description: {subject_description}; publish_spread_hours: {publish_spread_hours}; executive_summary: {executive_summary}; report_highlights: {report_highlights}; articles_metadata_json: {articles_metadata_json}; channel_profile: {channel_profile}; voice_profile: {voice_profile}. Use only these inputs to complete the task defined by the system prompt.