{
  "nodes": [
    {
      "id": "74a7f47c-6bdf-467d-adad-27148b00147b",
      "name": "If no category",
      "type": "n8n-nodes-base.if",
      "position": [
        660,
        340
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "52ebdeb9-fddc-4eb2-a787-4fc5496c411c",
              "operator": {
                "type": "array",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $json.arxiv_cat }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "444e3a95-03a8-4c7d-be64-42f5c521311b",
      "name": "Set category",
      "type": "n8n-nodes-base.supabase",
      "position": [
        1420,
        180
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "id",
              "keyValue": "={{ $('If no category').item.json.id }}",
              "condition": "eq"
            }
          ]
        },
        "tableId": "news_letter_subscription",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "arxiv_cat",
              "fieldValue": "={{ $json.output.category }}"
            }
          ]
        },
        "matchType": "allFilters",
        "operation": "update"
      },
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ff6416b7-2532-4f23-9c94-8e2117dedc75",
      "name": "Extract paper information",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        2220,
        1160
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "Z5zfe5BIlOqS0Dku",
          "cachedResultName": "Extract paper information"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "aa3357eb-1cdc-4c28-96e5-7f2ae24c03c4",
      "name": "Limit",
      "type": "n8n-nodes-base.limit",
      "position": [
        1340,
        1160
      ],
      "parameters": {
        "maxItems": 10
      },
      "typeVersion": 1
    },
    {
      "id": "58aa5f38-d2a6-445b-ba88-439fcdcaa4d9",
      "name": "Sort",
      "type": "n8n-nodes-base.sort",
      "position": [
        1040,
        1160
      ],
      "parameters": {
        "options": {},
        "sortFieldsUi": {
          "sortField": [
            {
              "order": "descending",
              "fieldName": "score"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1062c42d-a594-456d-84ac-65222e934d4d",
      "name": "Remove Duplicates",
      "type": "n8n-nodes-base.removeDuplicates",
      "position": [
        600,
        1160
      ],
      "parameters": {
        "compare": "selectedFields",
        "options": {},
        "fieldsToCompare": "paper_pdf"
      },
      "typeVersion": 1.1
    },
    {
      "id": "fce9869e-c42e-4ea3-a64d-be8611732e90",
      "name": "If no output?",
      "type": "n8n-nodes-base.if",
      "position": [
        1300,
        780
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "3faca29f-1364-4c91-8fba-1a7bbfb49ce1",
              "operator": {
                "type": "object",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $json }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "734c06fc-dbe3-4756-a8c9-ec3f067555dd",
      "name": "has keyword?",
      "type": "n8n-nodes-base.if",
      "position": [
        1600,
        800
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "0abd5e7e-2991-49b2-80c0-3f4d789690c8",
              "operator": {
                "type": "array",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.keyword }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d8ddb048-3907-4ec3-b0d3-2b9b86f16a68",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -240,
        340
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtHour": 22
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a74f872f-8422-428a-9315-29cac67d23f0",
      "name": "Merge2",
      "type": "n8n-nodes-base.merge",
      "position": [
        2900,
        1180
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3
    },
    {
      "id": "96dd5de5-8a2c-4e77-845f-5e4b473ea70b",
      "name": "Check user's subscription info",
      "type": "n8n-nodes-base.supabase",
      "position": [
        60,
        340
      ],
      "parameters": {
        "tableId": "news_letter_subscription",
        "operation": "getAll"
      },
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e8267bde-4d26-42f2-8a83-4adc8531ee1a",
      "name": "Get user's subscription info",
      "type": "n8n-nodes-base.supabase",
      "position": [
        1780,
        340
      ],
      "parameters": {
        "tableId": "news_letter_subscription",
        "operation": "getAll"
      },
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "id": "afdad194-e146-4a1e-a711-a27614197b9b",
      "name": "Loop Over users",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -200,
        760
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "630e6f15-e3ef-479b-85e6-b48e8c22fd6e",
      "name": "Write newsletter by AI",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        2680,
        1160
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "cWf1cXGPYgrf7a8A",
          "cachedResultName": "Write newsletter by AI"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "d1def8c0-6616-4a69-8fca-62bbb8f15fe6",
      "name": "Get arxiv papers this week and scoring by AI",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        1060,
        780
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "TXrfMXgL8Jx2lgyP",
          "cachedResultName": "Get arxiv papers this week"
        }
      },
      "typeVersion": 1.1,
      "alwaysOutputData": true
    },
    {
      "id": "7c65326f-5c19-41ed-bd76-de47c03f35a9",
      "name": "Set input for Extract paper information",
      "type": "n8n-nodes-base.set",
      "position": [
        1660,
        1160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "48cae2c6-7a6c-4f44-a840-c2c4625d057b",
              "name": "link",
              "type": "string",
              "value": "={{ $('Limit').item.json.link }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "2dba4915-4e53-4f48-bf48-8aa5bec7329c",
      "name": "Set input for Write newsletter by AI",
      "type": "n8n-nodes-base.set",
      "position": [
        2440,
        1160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e4aeb029-5554-4864-adc8-4825e29dd90d",
              "name": "title",
              "type": "string",
              "value": "={{ $json.title }}"
            },
            {
              "id": "91963f34-415b-4dae-b2e3-a7bc2417d258",
              "name": "body",
              "type": "string",
              "value": "={{ $json.body }}"
            },
            {
              "id": "2e56bc2e-a94b-4817-869d-dd916f5b8524",
              "name": "opinion",
              "type": "string",
              "value": "={{ $json.opinion }}"
            },
            {
              "id": "406aea45-8062-4a56-8453-e7e4b190dea3",
              "name": "reference_orig",
              "type": "string",
              "value": "={{ $('Get arxiv papers this week and scoring by AI').item.json.link }}"
            },
            {
              "id": "62bde9f0-8e19-464a-a53e-07fa12e952ee",
              "name": "score",
              "type": "number",
              "value": "={{ $('Limit').item.json.score.round() }}"
            },
            {
              "id": "7b57b83f-216d-4390-9651-6797dc0c85d9",
              "name": "lang",
              "type": "string",
              "value": "\ud55c\uad6d\uc5b4"
            },
            {
              "id": "e35e0632-a9d8-4a70-942a-19d78d3a11da",
              "name": "min_words_per_article",
              "type": "number",
              "value": 300
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b4c59331-e800-4d14-b9de-aab773e54524",
      "name": "Set input for Filter by keyword by RAG",
      "type": "n8n-nodes-base.set",
      "position": [
        1820,
        780
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "085240be-fdcf-43ee-9a43-a73efb82c16d",
              "name": "keyword",
              "type": "array",
              "value": "={{ $json.keyword }}"
            },
            {
              "id": "7db6ca6a-7312-4eec-9aa7-33f5ef6bcedb",
              "name": "score",
              "type": "number",
              "value": "={{ $json.score }}"
            },
            {
              "id": "ff47e090-e633-4253-8a4d-2c90b2a31fb8",
              "name": "link",
              "type": "string",
              "value": "={{ $json.link }}"
            },
            {
              "id": "61b4400c-3173-4997-b68c-0cd17c96b6fe",
              "name": "title",
              "type": "string",
              "value": "={{ $json.title }}"
            },
            {
              "id": "f3b2732f-21e4-4f00-b66c-54dd74a29003",
              "name": "vs_document_id",
              "type": "string",
              "value": "papers"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "5877ff9f-e2a3-42a4-9d2e-7bd19400de45",
      "name": "Send newsletter",
      "type": "n8n-nodes-base.gmail",
      "position": [
        3100,
        1180
      ],
      "parameters": {
        "sendTo": "={{ $json.user_email }}",
        "message": "={{ $json.letter }}",
        "options": {},
        "subject": "={{ $today.weekNumber }}\uc8fc AI paper trend"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "4177470b-6b21-4a3b-94a7-a545db4d1dbf",
      "name": "Set input for Get category by AI",
      "type": "n8n-nodes-base.set",
      "position": [
        940,
        180
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1e7f73ff-e265-4117-ba7c-ca7a59580989",
              "name": "keyword",
              "type": "array",
              "value": "={{ $json.keyword }}"
            },
            {
              "id": "7104f525-59ec-4b10-b463-1189b77a588d",
              "name": "interested_papers",
              "type": "array",
              "value": "={{ $json.interested_papers }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "7479c3dd-06bf-4f47-81c3-220b986a0aaa",
      "name": "Set input for Get arxiv papers this week and scoring by AI",
      "type": "n8n-nodes-base.set",
      "position": [
        520,
        780
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7ee8d438-fd89-41fc-97fc-ce92c87078c0",
              "name": "user_email",
              "type": "string",
              "value": "={{ $json.user_email }}"
            },
            {
              "id": "7dc9c5da-fb5e-4919-85dd-fbe95b6ca7e9",
              "name": "arxiv_cat",
              "type": "array",
              "value": "={{ $json.arxiv_cat }}"
            },
            {
              "id": "7ef22026-c085-4d25-a04d-abe04102a854",
              "name": "keyword",
              "type": "string",
              "value": "={{ $json.keyword }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "34cf99dd-789b-46cb-9ab3-c164249a938e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -120,
        20
      ],
      "parameters": {
        "width": 358.800943632496,
        "height": 562.0223932523666,
        "content": "### Get user subscription info from database\ntable schema should include\n- user_email: text\n- arxiv_cat: text[] <- array\n  -> you can check category https://arxiv.org/category_taxonomy\n- keyword: text[] <- array\n- interested_papers: text[] <- array\n\n### example row\n{\n  \"id\": 8,\n  \"created_at\": \"2024-09-24T12:31:17.09491+00:00\",\n  \"user_email\": \"test@test.com\",\n  \"arxiv_cat\": \n  [\n    \"cs.AI\",\n    \"cs.LG,cs.AR\"\n  ],\n  \"interested_papers\": null,\n  \"keyword\": \n  [\n    \"AI architecture which includes long context problem\"\n  ]\n}"
      },
      "typeVersion": 1
    },
    {
      "id": "61eb8e5b-9980-4c15-81df-5db9676bfe32",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        920,
        60
      ],
      "parameters": {
        "color": 3,
        "content": "### Get category by AI\n- This workflow generate arxiv categories which represents given keyword"
      },
      "typeVersion": 1
    },
    {
      "id": "c4a0c78c-c3e2-429d-b3a4-2adbab735fe6",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1500,
        240
      ],
      "parameters": {
        "width": 322.9386766285814,
        "content": "### Get subscription info again\n- This node is valuable if there is empty category so that it is generated by AI"
      },
      "typeVersion": 1
    },
    {
      "id": "98d77cf7-2ae5-4b7b-9bd5-887b5cdb6688",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        560
      ],
      "parameters": {
        "color": 3,
        "width": 429.57411800818596,
        "height": 385.11926513472076,
        "content": "### Get arxiv papers this week and scoring by AI\n- This node retrieve arxiv papers by category in this week\n- 3 Filters are applied\n  - Filter if arxiv comment exists or if arxiv journal reference exists to retrieve most valuable papers\n  - Filter if papers published in this week\n  - Filter if prime category matches give categories\n- To narrow down number of papers, "
      },
      "typeVersion": 1
    },
    {
      "id": "e74e6a2f-f756-48af-8a67-9b3b9a1672ad",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1760,
        600
      ],
      "parameters": {
        "color": 3,
        "width": 373.2943017245058,
        "height": 234.05238984694762,
        "content": "### Filter by keyword by RAG\n- This node has 3 task\n  - Embedding papers into vector stor\n  - Query vector store by given keyword\n  - And average its score by grouping by its id, then we can get which papers are most matched to keyword"
      },
      "typeVersion": 1
    },
    {
      "id": "e5d8c2ff-2977-4549-97c9-c17bd07f683a",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1680,
        1040
      ],
      "parameters": {
        "color": 3,
        "width": 288.87457729898546,
        "content": "### Extract paper information\n- This node extract information from given paper. Actually this is summarization task\n- Plus, generate opinion by AI"
      },
      "typeVersion": 1
    },
    {
      "id": "5d4ac01f-0112-4b3e-b462-00e0d93a389c",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        1040
      ],
      "parameters": {
        "color": 3,
        "width": 331.8249634102151,
        "content": "### Write newsletter by AI\n- This node has 2 tasks\n  - Translate information into given lang\n  - Refine content looks like \"newsletter\" and applying HTML format"
      },
      "typeVersion": 1
    },
    {
      "id": "550ff766-443e-4da4-b18e-2f206d5ded94",
      "name": "Get arxiv category by AI for given keyword",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        1200,
        180
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "eORrAR0QAxQHZH6H",
          "cachedResultName": "Get arxiv category by AI for given keyword"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "d623c7e0-c2df-4258-a317-207996fc1764",
      "name": "This is used to call following node once",
      "type": "n8n-nodes-base.merge",
      "position": [
        1580,
        340
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "de837381-6113-4486-b733-9fd70d156a1c",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -920,
        40
      ],
      "parameters": {
        "color": 4,
        "width": 508.83720930232573,
        "height": 800.6441210013597,
        "content": "## Arxive paper trend newsletter\n### Setup\n- Supabase\n  - Table schema\n    - user_email: Text - Mandatory\n    - arxiv_cat: [Text]\n    - interested_papers: [Text]\n    - keyword: [Text]\n  - Example\n{\n  \"id\": 8,\n  \"created_at\": \"2024-09-24T12:31:17.09491+00:00\",\n  \"user_email\": \"test@test.com\",\n  \"arxiv_cat\": \n  [\n    \"cs.AI\",\n    \"cs.LG,cs.AR\"\n  ],\n  \"interested_papers\": null,\n  \"keyword\": \n  [\n    \"AI architecture which includes long context problem\"\n  ]\n}\n- Qdrant vector store\n  - default setup\n\n## Setup for sub workflows\n- Get arxiv category by AI for given keyword\n- Get arxiv categories\n- Get arxiv papers this week and scoring by AI\n- Filter by keyword within given documents\n- Extract paper information\n- Write newsletter by AI"
      },
      "typeVersion": 1
    },
    {
      "id": "8642a9a6-2123-42d8-af39-4278bf44c1fd",
      "name": "Filter by keyword within given documents",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        2280,
        780
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "AjkkUQq3cJY5x6cv",
          "cachedResultName": "Filter by keyword within given documents"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "2d3bf286-5c05-4a23-aa37-fec896203a22",
      "name": "Filter1",
      "type": "n8n-nodes-base.filter",
      "position": [
        -520,
        760
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "d9a41bb2-b658-4bd8-972c-b99696832db6",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.user_email }}",
              "rightValue": "user@example.com"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "539daef2-149d-4dda-a05b-2c8c96780b25",
      "name": "Limit1",
      "type": "n8n-nodes-base.limit",
      "position": [
        2040,
        780
      ],
      "parameters": {
        "maxItems": 6
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Sort": {
      "main": [
        [
          {
            "node": "Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit": {
      "main": [
        [
          {
            "node": "Set input for Extract paper information",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit1": {
      "main": [
        [
          {
            "node": "Filter by keyword within given documents",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge2": {
      "main": [
        [
          {
            "node": "Send newsletter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter1": {
      "main": [
        [
          {
            "node": "Loop Over users",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set category": {
      "main": [
        [
          {
            "node": "This is used to call following node once",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "has keyword?": {
      "main": [
        [
          {
            "node": "Set input for Filter by keyword by RAG",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Remove Duplicates",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If no output?": {
      "main": [
        [
          {
            "node": "Loop Over users",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "has keyword?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If no category": {
      "main": [
        [
          {
            "node": "Set input for Get category by AI",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "This is used to call following node once",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Loop Over users": {
      "main": [
        null,
        [
          {
            "node": "Set input for Get arxiv papers this week and scoring by AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send newsletter": {
      "main": [
        [
          {
            "node": "Loop Over users",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Check user's subscription info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Remove Duplicates": {
      "main": [
        [
          {
            "node": "Sort",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Write newsletter by AI": {
      "main": [
        [
          {
            "node": "Merge2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract paper information": {
      "main": [
        [
          {
            "node": "Set input for Write newsletter by AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get user's subscription info": {
      "main": [
        [
          {
            "node": "Filter1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check user's subscription info": {
      "main": [
        [
          {
            "node": "If no category",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set input for Get category by AI": {
      "main": [
        [
          {
            "node": "Get arxiv category by AI for given keyword",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set input for Write newsletter by AI": {
      "main": [
        [
          {
            "node": "Write newsletter by AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set input for Filter by keyword by RAG": {
      "main": [
        [
          {
            "node": "Limit1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set input for Extract paper information": {
      "main": [
        [
          {
            "node": "Extract paper information",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter by keyword within given documents": {
      "main": [
        [
          {
            "node": "Remove Duplicates",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "This is used to call following node once": {
      "main": [
        [
          {
            "node": "Get user's subscription info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get arxiv category by AI for given keyword": {
      "main": [
        [
          {
            "node": "Set category",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get arxiv papers this week and scoring by AI": {
      "main": [
        [
          {
            "node": "If no output?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set input for Get arxiv papers this week and scoring by AI": {
      "main": [
        [
          {
            "node": "Get arxiv papers this week and scoring by AI",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge2",
            "type": "main",
            "index": 1
          }
        ]
      ]
    }
  }
}