8
n8n 한국어amn8n.com

Linear+Scrapeless+Claude를 활용한 AI 연구 어시스턴트 구축

고급

이것은Market Research, AI Chatbot분야의자동화 워크플로우로, 17개의 노드를 포함합니다.주로 Code, Linear, Switch, LinearTrigger, Agent 등의 노드를 사용하며. Linear, Scrapeless 및 Claude 기반의 AI 연구 어시스턴트

사전 요구사항
  • Anthropic API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "yTpEZbAAFcS0Yp4m",
  "meta": {
    "instanceId": "7d291de9dc3bbf0106d65e069919a3de2507e3365a7b25788a79a3562af9bfc5",
    "templateCredsSetupCompleted": true
  },
  "name": "Build an AI-Powered Research Assistant with Linear + Scrapeless + Claude",
  "tags": [],
  "nodes": [
    {
      "id": "9137108b-6a96-4264-bb3f-4f0dc5d5c7a5",
      "name": "Linear 트리거",
      "type": "n8n-nodes-base.linearTrigger",
      "position": [
        -580,
        380
      ],
      "webhookId": "22e62b88-a910-4075-8527-106d75769acd",
      "parameters": {
        "teamId": "3a89590a-2521-4c4a-b3b2-7e7ad5962666",
        "resources": [
          "issue",
          "comment",
          "reaction"
        ]
      },
      "credentials": {
        "linearApi": {
          "id": "glWOH78HS1At4s5K",
          "name": "Linear account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d49110c2-f5f9-4939-b2a3-4ee7b9c1aa77",
      "name": "스위치",
      "type": "n8n-nodes-base.switch",
      "position": [
        -360,
        260
      ],
      "parameters": {
        "mode": "expression",
        "output": "={{\n  $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/search') ? 0 :\n  $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/trends') ? 1 :\n  $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/unlock') ? 2 :\n  $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/scrape') ? 3 :\n  $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/crawl') ? 4 :\n  -1\n}}",
        "numberOutputs": 5
      },
      "typeVersion": 3.2
    },
    {
      "id": "627d13f1-1617-4a20-aa1f-2ae8cba643d6",
      "name": "구글 검색",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        260,
        60
      ],
      "parameters": {
        "q": "={{ $json.data.title }}"
      },
      "credentials": {
        "scrapelessApi": {
          "id": "B73pdQXNjpqNbIhs",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "16d29067-9aae-4159-8d31-37465885350d",
      "name": "구글 트렌드",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        260,
        220
      ],
      "parameters": {
        "q": "={{ $json.data.title }}",
        "operation": "googleTrends"
      },
      "credentials": {
        "scrapelessApi": {
          "id": "B73pdQXNjpqNbIhs",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "cadc6292-efcf-4dcf-bc1f-03ea1a6c1a75",
      "name": "웹 언락커",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        260,
        360
      ],
      "parameters": {
        "url": "={{ $json.data.title.replace(/\\/unlock/gi, '').trim() }}",
        "headless": false,
        "resource": "universalScrapingApi"
      },
      "credentials": {
        "scrapelessApi": {
          "id": "B73pdQXNjpqNbIhs",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "979d5139-2593-4975-afa7-2ac16d8bb5da",
      "name": "스크래핑",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        260,
        540
      ],
      "parameters": {
        "url": "={{ $json.data.title }}",
        "resource": "crawler"
      },
      "credentials": {
        "scrapelessApi": {
          "id": "B73pdQXNjpqNbIhs",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "58658eec-316e-4fb2-8715-6f7efc49d381",
      "name": "크롤링",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        260,
        700
      ],
      "parameters": {
        "url": "={{ $json.data.title }}",
        "resource": "crawler",
        "operation": "crawl",
        "limitCrawlPages": 1
      },
      "credentials": {
        "scrapelessApi": {
          "id": "B73pdQXNjpqNbIhs",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "410d82d4-2bdf-4242-b6a3-32e508608be4",
      "name": "코드2",
      "type": "n8n-nodes-base.code",
      "position": [
        0,
        0
      ],
      "parameters": {
        "jsCode": "const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n  cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n  cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n  cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n  cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n  cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n  data: {\n    ...($json.data),\n    title: cleanTitle\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "8f633954-262b-482d-aa29-3a97a0e8cbb6",
      "name": "코드",
      "type": "n8n-nodes-base.code",
      "position": [
        580,
        340
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "return {\n  output: JSON.stringify($json, null, 2)\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "d8e55c8c-857b-403e-b2ee-afc1253d7aba",
      "name": "코드3",
      "type": "n8n-nodes-base.code",
      "position": [
        0,
        180
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n  cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n  cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n  cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n  cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n  cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n  data: {\n    ...($json.data),\n    title: cleanTitle\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "9e9a315e-6915-41a2-b77c-d46c773b9891",
      "name": "코드4",
      "type": "n8n-nodes-base.code",
      "position": [
        20,
        360
      ],
      "parameters": {
        "jsCode": "const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n  cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n  cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n  cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n  cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n  cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n  data: {\n    ...($json.data),\n    title: cleanTitle\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "c076a7a6-c901-481d-8037-f1e06be1f8e4",
      "name": "코드5",
      "type": "n8n-nodes-base.code",
      "position": [
        20,
        520
      ],
      "parameters": {
        "jsCode": "const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n  cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n  cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n  cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n  cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n  cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n  data: {\n    ...($json.data),\n    title: cleanTitle\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "b9e6ac08-8f3c-40cc-b183-a4303d9801cd",
      "name": "코드6",
      "type": "n8n-nodes-base.code",
      "position": [
        20,
        720
      ],
      "parameters": {
        "jsCode": "const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n  cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n  cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n  cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n  cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n  cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n  data: {\n    ...($json.data),\n    title: cleanTitle\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "96631700-d64b-41f7-ba06-263be9acd76e",
      "name": "AI 에이전트1",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1040,
        420
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "options": {
          "systemMessage": "You are a data analyst. Summarize search/scrape results concisely. Be factual and brief. Format for Linear comments.\n\nAnalyze the provided data and create a structured summary that includes:\n- Key findings and insights\n- Data source and reliability assessment  \n- Actionable recommendations\n- Relevant metrics and trends\n- Next steps for further research\n\nFormat your response with clear headers and bullet points for easy reading in Linear."
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "300d7264-86df-485a-9183-ed42df732ccc",
      "name": "Anthropic 채팅 모델1",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        980,
        720
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-20250514",
          "cachedResultName": "Claude 4 Sonnet"
        },
        "options": {
          "temperature": 0.3,
          "maxTokensToSample": 4000
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "21C7G7zPQRFyxp1T",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "20f412e2-4081-40a7-a458-af7b2908cc44",
      "name": "코드7",
      "type": "n8n-nodes-base.code",
      "position": [
        1540,
        600
      ],
      "parameters": {
        "jsCode": "return {\n  output: $json.output\n    .replace(/\\\\n/g, '\\n')\n    .replace(/\\\\\"/g, '\"')\n    .replace(/\\\\\\\\/g, '\\\\')\n    .trim()\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "4379cc64-3b20-4ad5-a62b-470da3338cf8",
      "name": "이슈에 댓글 추가1",
      "type": "n8n-nodes-base.linear",
      "position": [
        1760,
        600
      ],
      "parameters": {
        "comment": "={{ $json.output }}",
        "issueId": "={{ $('Linear Trigger').item.json.data.id }}",
        "resource": "comment",
        "additionalFields": {}
      },
      "credentials": {
        "linearApi": {
          "id": "glWOH78HS1At4s5K",
          "name": "Linear account"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e01eaa88-0eff-40de-b80b-51ca1bcd3acb",
  "connections": {
    "8f633954-262b-482d-aa29-3a97a0e8cbb6": {
      "main": [
        [
          {
            "node": "96631700-d64b-41f7-ba06-263be9acd76e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "410d82d4-2bdf-4242-b6a3-32e508608be4": {
      "main": [
        [
          {
            "node": "627d13f1-1617-4a20-aa1f-2ae8cba643d6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d8e55c8c-857b-403e-b2ee-afc1253d7aba": {
      "main": [
        [
          {
            "node": "16d29067-9aae-4159-8d31-37465885350d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9e9a315e-6915-41a2-b77c-d46c773b9891": {
      "main": [
        [
          {
            "node": "cadc6292-efcf-4dcf-bc1f-03ea1a6c1a75",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c076a7a6-c901-481d-8037-f1e06be1f8e4": {
      "main": [
        [
          {
            "node": "979d5139-2593-4975-afa7-2ac16d8bb5da",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b9e6ac08-8f3c-40cc-b183-a4303d9801cd": {
      "main": [
        [
          {
            "node": "58658eec-316e-4fb2-8715-6f7efc49d381",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "20f412e2-4081-40a7-a458-af7b2908cc44": {
      "main": [
        [
          {
            "node": "4379cc64-3b20-4ad5-a62b-470da3338cf8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "58658eec-316e-4fb2-8715-6f7efc49d381": {
      "main": [
        [
          {
            "node": "8f633954-262b-482d-aa29-3a97a0e8cbb6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "979d5139-2593-4975-afa7-2ac16d8bb5da": {
      "main": [
        [
          {
            "node": "8f633954-262b-482d-aa29-3a97a0e8cbb6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d49110c2-f5f9-4939-b2a3-4ee7b9c1aa77": {
      "main": [
        [
          {
            "node": "410d82d4-2bdf-4242-b6a3-32e508608be4",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "d8e55c8c-857b-403e-b2ee-afc1253d7aba",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "9e9a315e-6915-41a2-b77c-d46c773b9891",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "c076a7a6-c901-481d-8037-f1e06be1f8e4",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "b9e6ac08-8f3c-40cc-b183-a4303d9801cd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "96631700-d64b-41f7-ba06-263be9acd76e": {
      "main": [
        [
          {
            "node": "20f412e2-4081-40a7-a458-af7b2908cc44",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cadc6292-efcf-4dcf-bc1f-03ea1a6c1a75": {
      "main": [
        [
          {
            "node": "8f633954-262b-482d-aa29-3a97a0e8cbb6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "627d13f1-1617-4a20-aa1f-2ae8cba643d6": {
      "main": [
        [
          {
            "node": "8f633954-262b-482d-aa29-3a97a0e8cbb6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "16d29067-9aae-4159-8d31-37465885350d": {
      "main": [
        [
          {
            "node": "8f633954-262b-482d-aa29-3a97a0e8cbb6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9137108b-6a96-4264-bb3f-4f0dc5d5c7a5": {
      "main": [
        [
          {
            "node": "d49110c2-f5f9-4939-b2a3-4ee7b9c1aa77",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "300d7264-86df-485a-9183-ed42df732ccc": {
      "ai_languageModel": [
        [
          {
            "node": "96631700-d64b-41f7-ba06-263be9acd76e",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급 - 시장 조사, AI 챗봇

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수17
카테고리2
노드 유형7
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34