{
  "createdAt": "2026-06-22T13:03:47.972Z",
  "requestedPrimaryProvider": "gemini_google_search",
  "geminiKeyConfigured": true,
  "geminiModel": "gemini-2.5-flash",
  "geminiApiBase": "https://gemini.dyhdcfsawig.com",
  "fallbackProvider": "manual_chatgpt_pro_prompt",
  "fallbackModel": "ChatGPT Pro manual live-search prompt",
  "keywordResearch": {
    "createdAt": "2026-06-22T13:03:57.759Z",
    "provider": "gemini_google_search",
    "model": "gemini-2.5-flash",
    "sourceRule": "Gemini live public search was required for Takealot traffic keywords.",
    "status": "gemini_live_search_failed_manual_gpt_pro_required",
    "queries": [
      "curly wig",
      "26 Inch wig",
      "Piano Brown Mix wig",
      "wig",
      "women's wig",
      "synthetic wig",
      "high temperature fibre",
      "piano brown wig"
    ],
    "attempts": [],
    "liveKeywords": [],
    "finalKeywords": [],
    "note": "Gemini live search failed or is not configured. No substitute keyword list was used; use the ChatGPT Pro manual live-search prompt on the job page."
  },
  "selectedProvider": "manual_chatgpt_pro_required_after_gemini_failure",
  "selectedModel": "ChatGPT Pro manual live-search prompt",
  "finalTitle": "",
  "modelTitle": "",
  "titleSource": "",
  "titleGuardrailIssues": [],
  "manualRequired": true,
  "note": "Automatic listing copy must be generated from Gemini live public search evidence. If Gemini live search fails, the workbench must show the ChatGPT Pro manual live-search prompt instead of pretending generic substitute terms are hot keywords.",
  "geminiError": "Gemini Google Search POST failed after 3 attempts: Gemini Google Search POST returned retryable status 429"
}