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)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
자동화된 경쟁 비교 카드 생성 및 실시간 판매 인텔리전스
AI, Slack, Notion으로 경쟁사 비교 카드 자동 생성 (Klue 대체)
Code
Merge
Slack
+
Code
Merge
Slack
58 노드Connor Provines
시장 조사
웹사이트 트래픽 향상
Claude AI, Scrapeless 및 경쟁사 분석을 사용한 자동화된 SEO 콘텐츠 엔진
Set
Code
Filter
+
Set
Code
Filter
26 노드scrapeless official
콘텐츠 제작
자동화 부동산 목록 추출기
Scrapeless 및 Google 스프레드시트를 사용한 부동산 매물 스크래핑 자동화
Code
Google Sheets
Schedule Trigger
+
Code
Google Sheets
Schedule Trigger
7 노드scrapeless official
시장 조사
GPT-5, gotoHuman 및 수동 검토를 사용하여 Gmail 자동 응답 및 Linear 티켓 생성
GPT-5, gotoHuman 및 인간 검토를 사용하여 Gmail에서 자동 응답 및 Linear 티켓 생성
Set
Code
Gmail
+
Set
Code
Gmail
37 노드gotoHuman
티켓 관리
Redis와 Anthropic을 사용하여 Go High Level에서 WhatsApp 응답 자동화합니다.
Go High Level, Redis, Anthropic을 사용하여 WhatsApp 응답을 자동화합니다.
If
Set
Code
+
If
Set
Code
31 노드Jorge Martínez
AI 챗봇
AI 기반 SEO 블로그 작성기
사용Gemini, Scrapeless, Pinecone RAG으로 SEO 최적화된 블로그 콘텐츠 생성
Set
Code
Html
+
Set
Code
Html
28 노드scrapeless official
콘텐츠 제작