Best LLMs for Subject Configuration Generation
Converts a free-form subject or organization brief into a normalized research configuration containing identity, type, industry, focus areas, regions, identifiers, and suggested cadence. Illustrative uses include configuring research for a prospective customer, supplier, acquisit
Run this task on Fronset — request an invitation
Models
Frontier on this task: Qwen 3.7 Plus at 8.69 / 10. Quality bar at 90%: 7.82.
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 does not clear the bar.
| Model | Quality score | CI low | Cost / 1k runs | vs best value |
|---|---|---|---|---|
| MiniMax M3 | 8.59 / 10 | 8.56 | $0.76 | best value |
| Qwen 3.7 Plus | 8.69 / 10 | 8.62 | $3.24 | 4.3x more expensive |
| Thinking Machines Inkling | 8.69 / 10 | 8.41 | $16.08 | 21x more expensive |
| Gemini 3.5 Flash Lite | 7.09 / 10 | 6.70 | $0.58 | 24% cheaper |
Cost breakdown
| Model | Quality | Confidence | Cost / 1k runs | Overpay | Mode |
|---|---|---|---|---|---|
| MiniMax M3 ★ OpenRouter | 8.59 / 10 CI [8.56, 8.62] | RANKED | $0.76 | best value | batch |
| Qwen 3.7 Plus best Alibaba Cloud (DashScope) | 8.69 / 10 CI [8.62, 8.76] | RANKED | $3.24 | 4.3x | batch |
| Thinking Machines Inkling OpenRouter | 8.69 / 10 CI [8.41, 8.96] | HIGH | $16.08 | 21x | 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: 1365 input tokens → 693 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 field accuracy, normalization, completeness relative to the brief, uncertainty handling, distinction between fact and recommendation, sensible focus areas and cadence, and stable identifier generation.
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.
{
"description": "Structured output from prospect analysis.\n\nThese fields map directly to AnalysisTemplate fields and are used in:\n- Region identification prompts\n- Query generation prompts\n- Vetted site selection prompts\n- Subreddit selection prompts\n- Chapter prompt customization\n\nSee Naming_Conventions.md for subject_code formatting.",
"properties": {
"description": {
"description": "Detailed description of the subject and analysis goals. 2-4 sentences. Provides context for LLM prompts throughout the workflow.",
"title": "Description",
"type": "string"
},
"focus_areas": {
"description": "Specific topics or themes to focus on (e.g., ['Electric vehicles', 'Battery technology', 'Autonomous driving']). Used in query generation and chapter customization.",
"items": {
"type": "string"
},
"title": "Focus Areas",
"type": "array"
},
"industry": {
"description": "Industry or sector (e.g., 'Automotive', 'Healthcare', 'Financial Services'). Used to identify relevant sources and subreddits.",
"title": "Industry",
"type": "string"
},
"regions": {
"description": "Region codes for geographic focus (e.g., ['US', 'EU', 'ASIA']). Must match Region.code values in database. Used for localized research.",
"items": {
"type": "string"
},
"title": "Regions",
"type": "array"
},
"subject_code": {
"description": "Short UPPERCASE code, max 20 chars (e.g., 'TSLA', 'EU_EV_MKT', 'MENO_SUP'). Used in file paths, log prefixes, and prompt naming. No spaces, use underscores.",
"title": "Subject Code",
"type": "string"
},
"subject_name": {
"description": "Full name of the subject (e.g., 'Tesla Inc.', 'European EV Market', 'Menopause Supplements'). Used in search queries and report titles. Should be clear enough to use in search queries.",
"title": "Subject Name",
"type": "string"
},
"subject_type": {
"description": "Type of subject being analyzed. Determines research approach.",
"enum": [
"corporation",
"industry",
"market",
"economy",
"other"
],
"title": "Subject Type",
"type": "string"
},
"suggested_chapters": {
"description": "Suggested chapter codes based on subject type and focus areas",
"items": {
"type": "string"
},
"title": "Suggested Chapters",
"type": "array"
},
"suggested_report_type": {
"description": "Suggested report type code (e.g., 'full_analysis', 'market_overview')",
"title": "Suggested Report Type",
"type": "string"
}
},
"required": [
"subject_name",
"subject_code",
"subject_type",
"industry",
"description",
"focus_areas",
"regions",
"suggested_report_type"
],
"title": "ProspectAnalysisOutput",
"type": "object"
}Prompt templates
The published template for this task.
default ·
LLMB_SUBJECT_CONFIGURATION_GENERATION_SYSTEM +
LLMB_SUBJECT_CONFIGURATION_GENERATION_USER
(0 calls in window)
System prompt
Extract and normalize only configuration fields supported by the supplied brief. Separate provided facts from sensible configuration suggestions, mark uncertainty, and do not manufacture identifiers, markets, regions, or corporate attributes. Generate stable machine codes from confirmed names. Apply organization- or ticker-specific fields only when the input supports them. 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 — name: {name}; industry: {industry}; interests: {interests}; regions: {regions}; description: {description}; company_name: {company_name}; ticker: {ticker}. Use only these inputs to complete the task defined by the system prompt.