Hacker News 타임머신 - 매년 오늘의 인기 내용 확인
중급
이것은Other, AI분야의자동화 워크플로우로, 13개의 노드를 포함합니다.주로 Set, Code, Html, Merge, SplitOut 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. Hacker News 타임머신 - 매년 오늘의 인기 내용 확인
사전 요구사항
- •Telegram Bot Token
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Gemini API Key
사용된 노드 (13)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"nodes": [
{
"id": "6ea4e702-1af8-407b-b653-964a519db1c2",
"name": "Basic LLM 체인",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1560,
-360
],
"parameters": {
"text": "=You are a highly skilled news categorizer, specializing in indentifying interesting stuff from Hacker News front-page headlines.\n\nYou are provided with JSON data containing a list of dates and their corresponding top headlines from the Hacker News front page. Each headline will also include a URL linking to the original article or discussion. Importantly, the dates provided will be the SAME DAY across MULTIPLE YEARS (e.g., January 1st, 2023, January 1st, 2022, January 1st, 2021, etc.). You need to indentify key headlines and also analyze how the tech landscape has evolved over the years, as reflected in the headlines for this specific day.\n\nYour task is to indentify top 10-15 headlines from across the years from the given json data and return in Markdown formatted bullet points categorizing into themes and adding markdown hyperlinks to the source URL with Prefixing Year before the headline. Follow the Output Foramt Mentioned.\n\n**Input Format:**\n\n```json\n[\n {\n \"headlines\": [\n \"Headline 1 Title [URL1]\",\n \"Headline 2 Title [URL2]\",\n \"Headline 3 Title [URL3]\",\n ...\n ]\n \"date\": \"YYYY-MM-DD\",\n },\n {\n \"headlines\": [\n \"Headline 1 Title [URL1]\",\n \"Headline 2 Title [URL2]\",\n ...\n ]\n \"date\": \"YYYY-MM-DD\",\n },\n ...\n]\n```\n\n**Output Format In Markdown**\n\n```\n# HN Lookback <FullMonthName-DD> | <start YYYY> to <end YYYY> \n\n## [Theme 1]\n- YYYY [Headline 1](URL1)\n- YYYY [Headline 2](URL2)\n...\n\n## [Theme 2]\n- YYYY [Headline 1](URL1)\n- YYYY [Headline 2](URL2)\n...\n\n... \n\n## <this is optional>\n<if any interesing ternds emerge mention them in oneline>\n```\n\n**Here is the Json data for Hackernews Headlines across the years**\n\n```\n{{ JSON.stringify($json.data) }}\n```",
"promptType": "define"
},
"typeVersion": 1.5
},
{
"id": "b5a97c2a-0c3b-4ebe-aec5-7bca6b55ad4c",
"name": "Google Gemini 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1740,
-200
],
"parameters": {
"options": {},
"modelName": "models/gemini-1.5-pro"
},
"credentials": {
"googlePalmApi": {
"id": "Hx1fn2jrUvojSKye",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "18cba750-aef5-451d-880f-2c12d8540d78",
"name": "일정 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-380,
-360
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 21
}
]
}
},
"typeVersion": 1.2
},
{
"id": "341da616-8670-4cd9-b47a-ee25e2ae9862",
"name": "CreateYearsList",
"type": "n8n-nodes-base.code",
"position": [
-200,
-360
],
"parameters": {
"jsCode": "for (const item of $input.all()) {\n const currentDateStr = item.json.timestamp.split('T')[0];\n const currentDate = new Date(currentDateStr);\n const currentYear = currentDate.getFullYear();\n const currentMonth = currentDate.getMonth(); // 0 for January, 1 for February, etc.\n const currentDay = currentDate.getDate();\n\n const datesToFetch = [];\n for (let year = currentYear; year >= 2007; year--) {\n let targetDate;\n if (year === 2007) {\n // Special handling for 2007 to start from Feb 19\n if (currentMonth > 1 || (currentMonth === 1 && currentDay >= 19))\n {\n targetDate = new Date(2007, 1, 19); // Feb 19, 2007\n } else {\n continue; // Skip 2007 if currentDate is before Feb 19\n }\n } else {\n targetDate = new Date(year, currentMonth, currentDay);\n }\n \n // Format the date as YYYY-MM-DD\n const formattedDate = targetDate.toISOString().split('T')[0];\n datesToFetch.push(formattedDate);\n }\n item.json.datesToFetch = datesToFetch;\n}\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "42e24547-be24-4f29-8ce8-c0df7d47a6ff",
"name": "CleanUpYearList",
"type": "n8n-nodes-base.set",
"position": [
0,
-360
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b269dc0d-21e1-4124-8f3a-2c7bfa4add5c",
"name": "datesToFetch",
"type": "array",
"value": "={{ $json.datesToFetch }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "6e51ad05-0f3d-4bfb-8c8d-5b71e7355344",
"name": "SplitOutYearList",
"type": "n8n-nodes-base.splitOut",
"position": [
200,
-360
],
"parameters": {
"options": {},
"fieldToSplitOut": "datesToFetch"
},
"typeVersion": 1
},
{
"id": "6f827071-718f-4e27-9f7a-cc50296f7bc4",
"name": "GetFrontPage",
"type": "n8n-nodes-base.httpRequest",
"position": [
420,
-360
],
"parameters": {
"url": "=https://news.ycombinator.com/front",
"options": {
"batching": {
"batch": {
"batchSize": 1,
"batchInterval": 3000
}
}
},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "day",
"value": "={{ $json.datesToFetch }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "7287e6b1-337f-4634-ac23-5ceaa87b0db3",
"name": "ExtractDetails",
"type": "n8n-nodes-base.html",
"position": [
640,
-360
],
"parameters": {
"options": {},
"operation": "extractHtmlContent",
"extractionValues": {
"values": [
{
"key": "=headlines",
"cssSelector": ".titleline",
"returnArray": true,
"skipSelectors": "span"
},
{
"key": "date",
"cssSelector": ".pagetop > font"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "fceff31e-4dcd-4199-89c5-8eb75cd479bf",
"name": "GetHeadlines",
"type": "n8n-nodes-base.set",
"position": [
920,
-460
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e1ce33e9-e4f8-4215-bbdb-156a955a0a97",
"name": "headlines",
"type": "array",
"value": "={{ $json.headlines }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f7683614-7225-4f05-ba12-86b326fdb4a1",
"name": "GetDate",
"type": "n8n-nodes-base.set",
"position": [
920,
-280
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "fc1d15f6-a999-4d6b-a7bc-3ffa9427679e",
"name": "date",
"type": "string",
"value": "={{ $json.date }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "7e09ce85-ece1-46a0-aa59-8e3da66413b2",
"name": "병합HeadlinesDate",
"type": "n8n-nodes-base.merge",
"position": [
1180,
-360
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3
},
{
"id": "db3bf408-8179-4ca4-a5b4-8a390b68f994",
"name": "SingleJson",
"type": "n8n-nodes-base.aggregate",
"position": [
1380,
-360
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "2abbc0e9-ed1e-4ba0-9d2f-7c3cd314a0fe",
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
2020,
-360
],
"parameters": {
"text": "={{ $json.text }}",
"chatId": "@OnThisDayHN",
"additionalFields": {
"parse_mode": "Markdown",
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"id": "6nIwfhIWcwJFTPTg",
"name": "OnThisDayHNBot"
}
},
"typeVersion": 1.2
}
],
"pinData": {},
"connections": {
"f7683614-7225-4f05-ba12-86b326fdb4a1": {
"main": [
[
{
"node": "MergeHeadlinesDate",
"type": "main",
"index": 1
}
]
]
},
"db3bf408-8179-4ca4-a5b4-8a390b68f994": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"6f827071-718f-4e27-9f7a-cc50296f7bc4": {
"main": [
[
{
"node": "7287e6b1-337f-4634-ac23-5ceaa87b0db3",
"type": "main",
"index": 0
}
]
]
},
"fceff31e-4dcd-4199-89c5-8eb75cd479bf": {
"main": [
[
{
"node": "MergeHeadlinesDate",
"type": "main",
"index": 0
}
]
]
},
"7287e6b1-337f-4634-ac23-5ceaa87b0db3": {
"main": [
[
{
"node": "fceff31e-4dcd-4199-89c5-8eb75cd479bf",
"type": "main",
"index": 0
},
{
"node": "f7683614-7225-4f05-ba12-86b326fdb4a1",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "2abbc0e9-ed1e-4ba0-9d2f-7c3cd314a0fe",
"type": "main",
"index": 0
}
]
]
},
"42e24547-be24-4f29-8ce8-c0df7d47a6ff": {
"main": [
[
{
"node": "6e51ad05-0f3d-4bfb-8c8d-5b71e7355344",
"type": "main",
"index": 0
}
]
]
},
"341da616-8670-4cd9-b47a-ee25e2ae9862": {
"main": [
[
{
"node": "42e24547-be24-4f29-8ce8-c0df7d47a6ff",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "341da616-8670-4cd9-b47a-ee25e2ae9862",
"type": "main",
"index": 0
}
]
]
},
"6e51ad05-0f3d-4bfb-8c8d-5b71e7355344": {
"main": [
[
{
"node": "6f827071-718f-4e27-9f7a-cc50296f7bc4",
"type": "main",
"index": 0
}
]
]
},
"MergeHeadlinesDate": {
"main": [
[
{
"node": "db3bf408-8179-4ca4-a5b4-8a390b68f994",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 기타, 인공지능
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
HN에서 어떤 내용을 배우는지 - Hacker News 최상위 자원 추천
HN에서 모든 내용을 배우기 - Hacker News 최상위 자원 추천을 받기
Markdown
Split Out
Aggregate
+
Markdown
Split Out
Aggregate
10 노드ibrhdotme
기타
🤖🧑💻 n8n创作者排行榜보고서용 AI 대리자
🤖🧑💻 AI 대리인, 최상위 n8n创作者 랭킹 보고서에 사용
Set
Sort
Gmail
+
Set
Sort
Gmail
49 노드Joseph LePage
인공지능
⚡AI驱动의YouTube播放列表및视频摘要与분석v2
AI YouTube播放列表与视频분석채팅봇
If
Set
Code
+
If
Set
Code
72 노드dmr
기타
귀하의 이메일에 시각화 요약 및 지식 그래프 통찰력 생성
이메일에 시각화 요약과 지식 그래프 통찰력 생성
If
Set
Code
+
If
Set
Code
38 노드InfraNodus
기타
AI 대리인 레스토랑 [템플릿]
🤖 WhatsApp, 인스타그램, 메신저의 AI 레스토랑 도우미
If
N8n
Set
+
If
N8n
Set
239 노드Amanda Benks
기타