Big-Link-Man/jobs
PeninsulaInd 7a9346635b Story 2.4 html formatting simple solution 2025-10-20 16:43:31 -05:00
..
README.md Story 2.4 html formatting simple solution 2025-10-20 16:43:31 -05:00
example_custom_anchors.json Story 2.3 - content generation script finished 2025-10-18 22:38:34 -05:00
example_multi_site_deployment.json Story 2.4 html formatting simple solution 2025-10-20 16:43:31 -05:00
example_multi_tier_batch.json Passed initial test, generates an entire article 2025-10-20 11:35:02 -05:00
example_tier1_batch.json Passed initial test, generates an entire article 2025-10-20 11:35:02 -05:00
project_1_tier1_5articles.json Story 2.3 - content generation script nightmare alomst done - pre-fix outline too big issue 2025-10-19 20:29:13 -05:00
test_augmentation.json Passed initial test, generates an entire article 2025-10-20 11:35:02 -05:00
test_small.json Passed initial test, generates an entire article 2025-10-20 11:35:02 -05:00

README.md

Job File Format

Job files define batch content generation parameters using JSON format.

Structure

{
  "jobs": [
    {
      "project_id": 1,
      "tiers": {
        "tier1": {
          "count": 5,
          "min_word_count": 2000,
          "max_word_count": 2500,
          "min_h2_tags": 3,
          "max_h2_tags": 5,
          "min_h3_tags": 5,
          "max_h3_tags": 10
        }
      }
    }
  ]
}

Fields

Job Level

  • project_id (required): The project ID to generate content for
  • tiers (required): Dictionary of tier configurations
  • deployment_targets (optional): Array of site custom_hostnames or site_deployment_ids to cycle through
  • deployment_overflow (optional): Strategy when batch size exceeds deployment_targets ("round_robin", "random_available", or "none"). Default: "round_robin"

Tier Level

  • count (required): Number of articles to generate for this tier
  • min_word_count (optional): Minimum word count (uses defaults if not specified)
  • max_word_count (optional): Maximum word count (uses defaults if not specified)
  • min_h2_tags (optional): Minimum H2 headings (uses defaults if not specified)
  • max_h2_tags (optional): Maximum H2 headings (uses defaults if not specified)
  • min_h3_tags (optional): Minimum H3 subheadings total (uses defaults if not specified)
  • max_h3_tags (optional): Maximum H3 subheadings total (uses defaults if not specified)

Tier Defaults

If tier parameters are not specified, these defaults are used:

tier1

  • min_word_count: 2000
  • max_word_count: 2500
  • min_h2_tags: 3
  • max_h2_tags: 5
  • min_h3_tags: 5
  • max_h3_tags: 10

tier2

  • min_word_count: 1500
  • max_word_count: 2000
  • min_h2_tags: 2
  • max_h2_tags: 4
  • min_h3_tags: 3
  • max_h3_tags: 8

tier3

  • min_word_count: 1000
  • max_word_count: 1500
  • min_h2_tags: 2
  • max_h2_tags: 3
  • min_h3_tags: 2
  • max_h3_tags: 6

Examples

Simple: Single Tier with Defaults

{
  "jobs": [
    {
      "project_id": 1,
      "tiers": {
        "tier1": {
          "count": 5
        }
      }
    }
  ]
}

Custom Word Counts

{
  "jobs": [
    {
      "project_id": 1,
      "tiers": {
        "tier1": {
          "count": 3,
          "min_word_count": 2500,
          "max_word_count": 3000
        }
      }
    }
  ]
}

Multi-Tier

{
  "jobs": [
    {
      "project_id": 1,
      "tiers": {
        "tier1": {
          "count": 5
        },
        "tier2": {
          "count": 10
        },
        "tier3": {
          "count": 15
        }
      }
    }
  ]
}

Multiple Projects

{
  "jobs": [
    {
      "project_id": 1,
      "tiers": {
        "tier1": {
          "count": 5
        }
      }
    },
    {
      "project_id": 2,
      "tiers": {
        "tier1": {
          "count": 3
        },
        "tier2": {
          "count": 8
        }
      }
    }
  ]
}

Usage

Run batch generation with:

python main.py generate-batch --job-file jobs/example_tier1_batch.json --username youruser --password yourpass

Options

  • --job-file, -j: Path to job JSON file (required)
  • --username, -u: Username for authentication
  • --password, -p: Password for authentication
  • --debug: Save AI responses to debug_output/
  • --continue-on-error: Continue processing if article generation fails
  • --model, -m: AI model to use (default: gpt-4o-mini)

Deployment Target Assignment (Story 2.5)

Optionally specify which sites/buckets to deploy articles to:

{
  "jobs": [
    {
      "project_id": 1,
      "deployment_targets": [
        "www.domain1.com",
        "www.domain2.com",
        "www.domain3.com"
      ],
      "deployment_overflow": "round_robin",
      "tiers": {
        "tier1": {
          "count": 10
        }
      }
    }
  ]
}

This generates 10 articles distributed across 3 sites:

  • Articles 0, 3, 6, 9 → domain1.com
  • Articles 1, 4, 7 → domain2.com
  • Articles 2, 5, 8 → domain3.com

Overflow Strategies:

  • round_robin (default): Cycle back through specified targets
  • random_available: Use random sites not in the targets list
  • none: Error if batch exceeds target count (strict mode)

If deployment_targets is omitted, articles receive random templates (no site assignment).

Debug Mode

When using --debug, AI responses are saved to debug_output/:

  • title_project{id}_tier{tier}_article{n}_{timestamp}.txt
  • outline_project{id}_tier{tier}_article{n}_{timestamp}.json
  • content_project{id}_tier{tier}_article{n}_{timestamp}.html
  • augmented_project{id}_tier{tier}_article{n}_{timestamp}.html (if augmented)