{
  "jobs": [
    {
      "id": "c9aa1946bd2a",
      "name": "notebooklm-auth-refresh",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "provider_snapshot": null,
      "model_snapshot": null,
      "base_url": null,
      "script": "notebooklm_auth_watchdog.sh",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 */6 * * *",
        "display": "0 */6 * * *"
      },
      "schedule_display": "0 */6 * * *",
      "repeat": {
        "times": null,
        "completed": 45
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-07-12T07:36:04.235910+02:00",
      "next_run_at": "2026-07-23T00:00:00+02:00",
      "last_run_at": "2026-07-22T18:01:02.959608+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "local",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003707758328",
        "chat_name": "NV-Office",
        "thread_id": "18",
        "user_id": "5566792903"
      },
      "enabled_toolsets": null,
      "workdir": null,
      "fire_claim": null
    },
    {
      "id": "cf6e57640673",
      "name": "git-auto-sync",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "provider_snapshot": null,
      "model_snapshot": null,
      "base_url": null,
      "script": "git-auto-sync.sh",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "interval",
        "minutes": 480,
        "display": "every 480m"
      },
      "schedule_display": "every 480m",
      "repeat": {
        "times": null,
        "completed": 25
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-07-14T09:02:50.622018+02:00",
      "next_run_at": "2026-07-22T23:19:53.141388+02:00",
      "last_run_at": "2026-07-22T15:19:53.141388+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "telegram:-1003707758328:1",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003707758328",
        "chat_name": "NV-Office",
        "thread_id": "18",
        "user_id": "5566792903"
      },
      "enabled_toolsets": null,
      "workdir": "/opt/ai-os/products/ceo",
      "fire_claim": null
    },
    {
      "id": "476c036bd728",
      "name": "Fulbright Brand Monitoring 72h Pipeline v5 (Strict Date & Detailed Summary)",
      "prompt": "# CRON EXECUTION METADATA\n- Workdir: /opt/ai-os/products/ceo/brand-monitoring/\n- Schedule: Every 72 hours\n- Data Window: EXACTLY Last 72 hours (calculated dynamically).\n- Silence Rule: If no new validated developments, respond [SILENT].\n\n[PHASE 1: RESEARCH & VALIDATION]\n- Assignee: r-and-d\n- Skills: topic-news-digest-social-listening\n- Task: \n  1. MUST use `execute_code` with a Python script to calculate the date exactly 72 hours ago from the execution time (YYYY-MM-DD format).\n  2. The script must perform `web_search` using the exact date filter (e.g., `after:YYYY-MM-DD` or using date operators) for \"Fulbright University Vietnam\", \"FUV\", \"FSPPM\", \"\u0110\u1ea1i h\u1ecdc Fulbright Vi\u1ec7t Nam\".\n  3. STRICT VALIDATION: The script must filter results programmatically. Discard any item whose publication date or metadata is older than 72 hours.\n  4. Perform a real connection check (curl or requests) on each link. Discard any URL that returns non-200 status codes.\n- Telegram Output: \"Phase 1: Research complete. Found [X] valid articles from the last 72 hours.\"\n\n[PHASE 2: ANALYSIS]\n- Assignee: grill-qa\n- Personality: public-policy\n- Skills: social-listening\n- Task: Perform strict sentiment and risk classification. Save findings to /opt/ai-os/products/ceo/brand-monitoring/reports/fulbright_analysis_{date}.md (where {date} is YYYY-MM-DD).\n  For each item, the report MUST store: Title, Verified URL, Actual Publication Date, Sentiment, Risk Score, and a DETAILED summary of the content (at least 3-4 sentences detailing the main arguments, speakers, and context).\n- Telegram Output: \"Phase 2: Analysis complete.\"\n\n[PHASE 3: WRITING]\n- Assignee: writers\n- Skills: operate/brand-monitoring\n- Task: Draft final digest in Vietnamese.\n- MANDATORY PER BULLET:\n  - **[Ng\u00e0y \u0111\u0103ng]** [Ti\u00eau \u0111\u1ec1 tin]\n  - Ph\u00e2n c\u1ea5p: [Ph\u00e2n c\u1ea5p tin (Official, Social, Risk, Watchlist)]\n  - T\u00f3m t\u1eaft chi ti\u1ebft (MANDATORY 3-4 sentences): [Provide a detailed summary of the main points, who said what, and why it matters, especially if the URL is blocked or hard to access].\n  - Ngu\u1ed3n: [Clickable URL source]\n- Telegram Output: (NONE)\n\n[PHASE 4: REVIEW]\n- Assignee: grill-qa\n- Skills: research-critism\n- Task: Final verification. Verify that no outdated items (older than 72 hours) are included. Confirm that all summaries are detailed and that all URLs work. If an item is outdated or has a broken link, remove it.\n- FINAL TELEGRAM OUTPUT: Send the high-signal digest as a SINGLE, NEW final message to thread 3688. Include the Tailscale Tunnel URL to the full analysis file.\n\n# Topic:\nFulbright University, FUV, FSPPM, c\u00e1c crisis, tin t\u1ee9c v\u1ec1 tr\u01b0\u1eddng Fulbright t\u1ea1i Vi\u1ec7t Nam.",
      "skills": [
        "cron-prompt",
        "topic-news-digest-social-listening",
        "operate/brand-monitoring"
      ],
      "skill": "cron-prompt",
      "model": "default",
      "provider": "local9router",
      "provider_snapshot": null,
      "model_snapshot": null,
      "base_url": null,
      "script": null,
      "no_agent": false,
      "context_from": null,
      "schedule": {
        "kind": "interval",
        "minutes": 4320,
        "display": "every 4320m"
      },
      "schedule_display": "every 4320m",
      "repeat": {
        "times": null,
        "completed": 13
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-07-15T14:22:02.936883+02:00",
      "next_run_at": "2026-07-25T04:57:42.612533+02:00",
      "last_run_at": "2026-07-22T04:57:42.612533+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "telegram:-1003707758328:3688",
      "origin": null,
      "enabled_toolsets": [
        "web",
        "file",
        "code_execution"
      ],
      "workdir": "/opt/ai-os/products/ceo/brand-monitoring",
      "fire_claim": null
    },
    {
      "id": "22df2c51a45d",
      "name": "rotate-gs-proxy",
      "prompt": "Run python3 /opt/ai-os/products/ceo/scripts/rotate_gs_proxy.py to check and rotate the Google Scholar proxy if the current one is dead. Update ~/.config/paper-search-mcp/.env if a new proxy was found. Report the result: 'OK' if current still works, 'ROTATED: http://...' if a new proxy was set, or 'FAIL: no proxy found' if none works. Silent exit on success is fine.",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "provider_snapshot": "custom",
      "model_snapshot": "default",
      "base_url": null,
      "script": null,
      "no_agent": false,
      "context_from": null,
      "schedule": {
        "kind": "interval",
        "minutes": 360,
        "display": "every 360m"
      },
      "schedule_display": "every 360m",
      "repeat": {
        "times": null,
        "completed": 25
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-07-16T15:25:54.422021+02:00",
      "next_run_at": "2026-07-23T03:58:12.388903+02:00",
      "last_run_at": "2026-07-22T21:58:12.388903+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "local",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003707758328",
        "chat_name": "NV-Office",
        "thread_id": "1",
        "user_id": "5566792903"
      },
      "enabled_toolsets": null,
      "workdir": null,
      "fire_claim": null
    },
    {
      "id": "2931206b63d8",
      "name": "Research-VN-Tourism-Policy",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "provider_snapshot": null,
      "model_snapshot": null,
      "base_url": null,
      "script": "cron_kanban_watcher.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "interval",
        "minutes": 120,
        "display": "every 120m"
      },
      "schedule_display": "every 120m",
      "repeat": {
        "times": null,
        "completed": 14
      },
      "enabled": false,
      "state": "paused",
      "paused_at": "2026-07-18T12:48:14.989437+02:00",
      "paused_reason": null,
      "created_at": "2026-07-17T17:08:12.909281+02:00",
      "next_run_at": "2026-07-18T14:28:45.876064+02:00",
      "last_run_at": "2026-07-18T12:28:45.876064+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "telegram:-1003707758328:12",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003707758328",
        "chat_name": "NV-Office",
        "thread_id": "12",
        "user_id": "5566792903"
      },
      "enabled_toolsets": [
        "browser",
        "clarify",
        "code_execution",
        "computer_use",
        "cronjob",
        "delegation",
        "file",
        "image_gen",
        "kanban",
        "memory",
        "session_search",
        "skills",
        "terminal",
        "todo",
        "tts",
        "vision",
        "web"
      ],
      "workdir": "/opt/ai-os/products/ceo/content/research",
      "fire_claim": null
    },
    {
      "id": "9be1c0e5bda5",
      "name": "Research-TL-Tourism-Policy",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "provider_snapshot": null,
      "model_snapshot": null,
      "base_url": null,
      "script": "cron_kanban_watcher.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "interval",
        "minutes": 120,
        "display": "every 120m"
      },
      "schedule_display": "every 120m",
      "repeat": {
        "times": null,
        "completed": 10
      },
      "enabled": false,
      "state": "paused",
      "paused_at": "2026-07-18T12:48:16.010021+02:00",
      "paused_reason": null,
      "created_at": "2026-07-17T17:08:13.973973+02:00",
      "next_run_at": "2026-07-18T14:26:46.331949+02:00",
      "last_run_at": "2026-07-18T12:26:46.331949+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "telegram:-1003707758328:12",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003707758328",
        "chat_name": "NV-Office",
        "thread_id": "12",
        "user_id": "5566792903"
      },
      "enabled_toolsets": [
        "browser",
        "clarify",
        "code_execution",
        "computer_use",
        "cronjob",
        "delegation",
        "file",
        "image_gen",
        "kanban",
        "memory",
        "session_search",
        "skills",
        "terminal",
        "todo",
        "tts",
        "vision",
        "web"
      ],
      "workdir": "/opt/ai-os/products/ceo/content/research",
      "fire_claim": null
    },
    {
      "id": "db0775f7cf7a",
      "name": "Nha Trang Tourism Policy Digest (Pipeline v2)",
      "prompt": "# CRON EXECUTION METADATA\n- Workdir: /opt/ai-os/products/ceo/content/research/nha-trang-tourism/\n- Schedule: Every 2 days\n- Data Window: Last 365 days from execution date.\n- Sorting: Strictly prioritize the 5 newest items by publication date.\n- Silence Rule: If no new developments, respond [SILENT]\n\n[PHASE 1: RESEARCH]\n- Assignee: r-and-d\n- Skills: topic-news-digest-social-listening\n- Task: \n  1. Use `web_search` for: \"ch\u00ednh s\u00e1ch du l\u1ecbch Nha Trang\", \"ph\u00e1t tri\u1ec3n du l\u1ecbch Nha Trang\", \"MICE Nha Trang\", \"x\u00fac ti\u1ebfn du l\u1ecbch Nha Trang\", \"th\u1ec3 ch\u1ebf du l\u1ecbch Nha Trang\".\n  2. Filter: ONLY items published within the last 365 days. \n  3. Validation: Discard invalid URLs or those outside the 365-day window.\n- Telegram Output: (NONE)\n\n[PHASE 2: ANALYSIS]\n- Assignee: grill-qa\n- Personality: public-policy\n- Skills: social-listening\n- Task: Score policy relevance and identify key narratives. Sort all found items by date (newest first) and pick the TOP 5.\n  Save findings with DETAILED summaries (3-4 sentences each) to /opt/ai-os/products/ceo/content/research/nha-trang-tourism/reports/nhatrang_analysis_{date}.md.\n- Telegram Output: (NONE)\n\n[PHASE 3: WRITING]\n- Assignee: writers\n- Task: Draft final digest in Vietnamese. \n- MANDATORY PER BULLET: \n  - **[Ng\u00e0y \u0111\u0103ng]** [Ti\u00eau \u0111\u1ec1 tin]\n  - T\u00f3m t\u1eaft chi ti\u1ebft (3-4 sentences): [Provide a detailed summary of the policy implications, main points, and context].\n  - Ngu\u1ed3n: [Clickable URL source]\n- Telegram Output: (NONE)\n\n[PHASE 4: REVIEW]\n- Assignee: grill-qa\n- Skills: research-critism\n- Task: Verify that the 5 items are indeed the newest found and that summaries are sufficiently detailed.\n- Final Telegram Output: Send digest as a SINGLE message to thread 12.\n\n# Topic:\nCh\u00ednh s\u00e1ch Du L\u1ecbch Nha Trang, ph\u00e1t tri\u1ec3n du l\u1ecbch nha trang, mice nha trang\u2026 th\u00f4ng tin ch\u00ednh s\u00e1ch, th\u1ec3 ch\u1ebf nh\u00e0 n\u01b0\u1edbc li\u00ean quan \u0111\u1ebfn x\u00fac ti\u1ebfn v\u00e0 ph\u00e1t tri\u1ec3n du l\u1ecbch nha trang.",
      "skills": [
        "cron-prompt",
        "topic-news-digest-social-listening"
      ],
      "skill": "cron-prompt",
      "model": null,
      "provider": null,
      "provider_snapshot": "custom",
      "model_snapshot": "default",
      "base_url": null,
      "script": null,
      "no_agent": false,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 1 */2 * *",
        "display": "0 1 */2 * *"
      },
      "schedule_display": "0 1 */2 * *",
      "repeat": {
        "times": null,
        "completed": 4
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-07-19T05:56:29.016531+02:00",
      "next_run_at": "2026-07-23T01:00:00+02:00",
      "last_run_at": "2026-07-21T01:10:13.536627+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "telegram:-1003707758328:12",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003707758328",
        "chat_name": "NV-Office",
        "thread_id": "20",
        "user_id": "5566792903"
      },
      "enabled_toolsets": [
        "web",
        "file",
        "code_execution"
      ],
      "workdir": "/opt/ai-os/products/ceo/content/research/nha-trang-tourism",
      "fire_claim": null
    }
  ],
  "updated_at": "2026-07-22T21:58:12.390151+02:00"
}