Job Files
Job files allow repeatable and shareable generation runs across one or more content types.
Minimal Example
{
"idea": "How content teams can scale AI-assisted writing"
}
Run:
ideon write --job ./job.json
Extended Example
{
"idea": "How editorial teams can ship weekly explainers",
"targetAudience": "Content leads at small SaaS teams building repeatable thought-leadership motions",
"settings": {
"model": "moonshotai/kimi-k2.5",
"modelSettings": {
"temperature": 0.7,
"maxTokens": 2500,
"topP": 0.95
},
"modelRequestTimeoutMs": 90000,
"contentTargets": [
{ "contentType": "article", "role": "primary", "count": 1 },
{ "contentType": "x-thread", "role": "secondary", "count": 2 },
{ "contentType": "x-post", "role": "secondary", "count": 1 },
{ "contentType": "linkedin-post", "role": "secondary", "count": 1 }
],
"style": "friendly",
"t2i": {
"modelId": "black-forest-labs/flux-schnell",
"inputOverrides": {
"output_format": "png"
}
},
"markdownOutputDir": "/output",
"assetOutputDir": "/output/assets"
}
}
Notes
settings.contentTargetsmust include exactly one primary target and optional secondary targets.- If
settings.styleis omitted, Ideon defaults toprofessional. - If
targetAudienceis omitted, Ideon seeds shared-brief planning with a general non-specific audience. - CLI arguments override job-file settings for
idea,targetAudience,style, andcontentTargets. - Environment variables override matching job-file fields where supported.
- After each run, Ideon writes a generated
job.jsoninside the generation directory that captures the resolved run definition and metadata for that specific execution.
Override Matrix
Highest to lowest precedence:
- CLI flags and direct idea input
- Environment variables (
IDEON_*) - Job file
settings - Saved settings
- Schema defaults
Practical examples:
ideon write --job ./job.json --style technicalforces technical style even if the job file says otherwise.ideon write --job ./job.json --audience "Procurement leaders evaluating AI ops tooling"overridesjob.targetAudiencefor that run.IDEON_MODEL=... ideon write --job ./job.jsonuses the env model instead of the job model.--primarywith optional--secondaryreplaces the full jobsettings.contentTargetsarray for that run.
Reusing Generated Job Definitions
Every generation directory includes a resolved job.json. You can copy that file, adjust only what you need (for example model, style, or targets), and run it again:
ideon write --job ./output/20260327-your-slug/job.json
This is the easiest way to reproduce or branch previous runs with minimal drift.
Idea Resolution Rule
Idea selection order:
- Direct CLI idea argument
job.ideajob.prompt
If none are present, Ideon throws a user-facing error.