This workflow corresponds to n8n.io template #5339 — we link there as the canonical source.
This workflow follows the Agent → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "DLNC1zlbMqO7vCep",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Tech News Curator - Analyze Daily News using AI Agents and Generate Highlights using Mistral V0",
"tags": [
{
"id": "QryMJD23lbek4XwO",
"name": "News Curator",
"createdAt": "2025-06-20T18:01:44.652Z",
"updatedAt": "2025-06-20T18:01:44.652Z"
},
{
"id": "nEQ2nHALSQN4jgJ0",
"name": "Free",
"createdAt": "2025-06-25T21:55:38.353Z",
"updatedAt": "2025-06-25T21:55:38.353Z"
}
],
"nodes": [
{
"id": "12a3d51d-0fb1-4663-ae91-6f7da54f1744",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
-360,
700
],
"parameters": {
"numberInputs": 9
},
"typeVersion": 3.1
},
{
"id": "49d86034-6aa4-4e59-ac71-36939145022e",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
800,
980
],
"parameters": {
"include": "specifiedFields",
"options": {},
"aggregate": "aggregateAllItemData",
"fieldsToInclude": "title, pubDate, link"
},
"typeVersion": 1
},
{
"id": "0b7370c2-acba-410b-9f01-f9bbc0228776",
"name": "ScienceDaily Feed",
"type": "n8n-nodes-base.rssFeedRead",
"onError": "continueRegularOutput",
"position": [
-1240,
540
],
"parameters": {
"url": "https://www.sciencedaily.com/rss/all.xml",
"options": {
"ignoreSSL": false
}
},
"typeVersion": 1.1,
"alwaysOutputData": true
},
{
"id": "77e79dc6-1a96-4ac8-843d-fe02c848a15b",
"name": "AlternativeTo Feed",
"type": "n8n-nodes-base.rssFeedRead",
"onError": "continueRegularOutput",
"position": [
-1240,
900
],
"parameters": {
"url": "https://feed.alternativeto.net/news/all/",
"options": {
"ignoreSSL": false
}
},
"typeVersion": 1.1,
"alwaysOutputData": true
},
{
"id": "de23bf0b-e6e9-4654-a603-bd8de610f38d",
"name": "MIT Technology Review Feed",
"type": "n8n-nodes-base.rssFeedRead",
"onError": "continueRegularOutput",
"position": [
-1240,
1080
],
"parameters": {
"url": "https://www.technologyreview.com/topic/artificial-intelligence/feed/",
"options": {
"ignoreSSL": false
}
},
"typeVersion": 1.1,
"alwaysOutputData": true
},
{
"id": "51006112-1569-4e57-a887-b4e70c0feb5a",
"name": "lobste.rs Feed",
"type": "n8n-nodes-base.rssFeedRead",
"onError": "continueRegularOutput",
"position": [
-1240,
180
],
"parameters": {
"url": "https://lobste.rs/rss",
"options": {
"ignoreSSL": false
}
},
"typeVersion": 1.1,
"alwaysOutputData": true
},
{
"id": "03cd83c3-d785-40cd-b20e-9227ce57834d",
"name": "Filter by Datetime",
"type": "n8n-nodes-base.filter",
"position": [
20,
820
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "30d4f694-9378-42b4-b1d5-cbc38fb3e7fe",
"operator": {
"type": "dateTime",
"operation": "after"
},
"leftValue": "={{ $json.pubDate }}",
"rightValue": "={{ $today.minus({ days: 0 }) }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "da651706-a19a-479f-a955-e1fe603ec0ed",
"name": "Mistral Cloud Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatMistralCloud",
"position": [
1940,
1840
],
"parameters": {
"model": "mistral-small-latest",
"options": {}
},
"credentials": {
"mistralCloudApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "a1a3beac-4b21-4feb-8a4e-3fc7f8b91df5",
"name": "News Analyzer",
"type": "@n8n/n8n-nodes-langchain.agent",
"onError": "continueErrorOutput",
"maxTries": 2,
"position": [
1020,
1120
],
"parameters": {
"text": "=Analyze artitcle titles from the following list:\n[{{ $json.data.map(item => `Title: ${item.title}: Link: ${item.link}`).join(' ; ') }}]",
"options": {
"systemMessage": "You are a professional analyst of current news. Our goal is to get a quick overview of what's most relevant in current news.\nYou must analyze article titles, providing a concise summary of today's news based on the titles.\nFirst, give a fitting title encompassing today's news.\nNext, give a summary of today's news.\nNext, you MUST list the top 10 news of today's titles alongside the links for each of them.\nTo determine the best and most relevant news:\n- Give priority to news which are from the fields: Technological Solutions, Scientific Research, Applied Math and Data Science.\n- Give priority to news which appear often in the list.\n- Ignore news which don't appear to be actual new information.\n- Remove news with problematic headlines\n- Ignore news with petty themes like gossip about actors, hollywood stars and similar.\n- MOST IMPORTANT: DO NOT RETURN TWO OR MORE NEWS FROM THE SAME NEWS WEBSITE. ONLY ONE NEWS PER WEBSITE IN THE TOP 10 when it is possible."
},
"promptType": "define",
"hasOutputParser": true
},
"retryOnFail": true,
"typeVersion": 1.6
},
{
"id": "423e8ad7-867a-494e-933f-5613e4dbcc57",
"name": "Split Out News Data",
"type": "n8n-nodes-base.splitOut",
"position": [
1460,
920
],
"parameters": {
"options": {},
"fieldToSplitOut": "output.data[0].top_10_news"
},
"typeVersion": 1
},
{
"id": "d1e1aeb6-f42e-4fd8-a351-b4c8229246a7",
"name": "Remove Certain Content",
"type": "n8n-nodes-base.filter",
"position": [
360,
820
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "30d4f694-9378-42b4-b1d5-cbc38fb3e7fe",
"operator": {
"type": "string",
"operation": "notRegex"
},
"leftValue": "={{ $json.link }}",
"rightValue": "opinion|rumour|layoff|porn|marijuana"
},
{
"id": "fdddd55b-19d5-4e87-9586-01653750e807",
"operator": {
"type": "string",
"operation": "notRegex"
},
"leftValue": "={{ $json.title }}",
"rightValue": "Opinion|Rumour|layoff|porn|marijuana"
},
{
"id": "12e44449-d6bb-4243-abb7-cfa03a9327c5",
"operator": {
"type": "string",
"operation": "notRegex"
},
"leftValue": "={{ $json.content }}",
"rightValue": "layoff|porn|marijuana"
},
{
"id": "2df9ef75-ea55-4e5b-a78d-e37de85fe8ca",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.content }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "29888373-da05-4ee0-971d-1dd508823fd2",
"name": "Silicone Republic Technology Feed",
"type": "n8n-nodes-base.rssFeedRead",
"onError": "continueRegularOutput",
"position": [
-1240,
1260
],
"parameters": {
"url": "https://www.siliconrepublic.com/category/technology/feed/",
"options": {
"ignoreSSL": false
}
},
"typeVersion": 1.1,
"alwaysOutputData": true
},
{
"id": "45c3877c-e6d8-4c12-a0b1-2156b0b4dbc4",
"name": "Silicone Republic Science Feed",
"type": "n8n-nodes-base.rssFeedRead",
"onError": "continueRegularOutput",
"disabled": true,
"position": [
-1240,
1440
],
"parameters": {
"url": "https://www.siliconrepublic.com/category/science/feed/",
"options": {
"ignoreSSL": false
}
},
"typeVersion": 1.1,
"alwaysOutputData": true
},
{
"id": "d803f64b-24d2-4828-adaa-b55d67112e9e",
"name": "Schedule",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1920,
880
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtDay": [
5,
4,
2,
3,
1
],
"triggerAtHour": 12
}
]
}
},
"typeVersion": 1.2
},
{
"id": "692c7592-9834-48fe-84ab-74216943233a",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"notes": "It is a necessary node because lobste.rs will not give the actual content of the links.",
"onError": "continueErrorOutput",
"position": [
-840,
180
],
"parameters": {
"url": "={{ $json.link }}",
"options": {
"timeout": 10000
}
},
"typeVersion": 4.2
},
{
"id": "758cbfc6-559a-4ebe-8955-49604bd2d924",
"name": "Rejoin Data",
"type": "n8n-nodes-base.set",
"onError": "continueRegularOutput",
"position": [
-640,
360
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e2ffe594-180d-4e1d-b869-8056ac67015d",
"name": "title",
"type": "string",
"value": "={{ $('Filter Fields').item.json.title }}"
},
{
"id": "87c5a171-9ab9-4043-a72a-32aec218fe63",
"name": "pubDate",
"type": "string",
"value": "={{ $('Filter Fields').item.json.pubDate }}"
},
{
"id": "978b05c9-6e6b-4a18-bc06-4de785b19413",
"name": "link",
"type": "string",
"value": "={{ $('Filter Fields').item.json.link }}"
},
{
"id": "199a5920-72a3-470e-9adf-8252f6ebb37a",
"name": "content",
"type": "string",
"value": "={{ $json.data }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "93d0ab4e-f3aa-4712-a7ec-95884f396ce8",
"name": "Join Outputs",
"type": "n8n-nodes-base.merge",
"position": [
1620,
840
],
"parameters": {
"mode": "combine",
"options": {},
"advanced": true,
"mergeByFields": {
"values": [
{
"field1": "link",
"field2": "website"
}
]
}
},
"typeVersion": 3.2
},
{
"id": "69fbc0ca-bd09-40cb-affe-c1955cd990b4",
"name": "Final Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
2320,
820
],
"parameters": {
"include": "specifiedFields",
"options": {},
"aggregate": "aggregateAllItemData",
"fieldsToInclude": "output"
},
"typeVersion": 1
},
{
"id": "5674a7e0-1aa3-4085-acef-c41d22530140",
"name": "Website Summarizer",
"type": "@n8n/n8n-nodes-langchain.agent",
"onError": "continueErrorOutput",
"maxTries": 2,
"position": [
1920,
840
],
"parameters": {
"text": "=Summarize the content from this website in a sometimes informal, sometimes formal, sometimes complicated, sometimes everyman speech, maybe cheeky, maybe serious, maybe eyecatchy but always concise and short one sentence: {{ $json.website }} - Content: {{ $json.content }}\nFollow the provided JSON schema for your response.",
"options": {
"systemMessage": "=Todays date is {{ $now }}. You are an automated web analyzer tasked with analyzing information from a webpage. You have access to the text content from the page. Your objective is only to return a single JSON output containing the extracted data summarized."
},
"promptType": "define",
"hasOutputParser": true
},
"retryOnFail": true,
"typeVersion": 1.6
},
{
"id": "7fa67db0-c75a-42ae-9de0-c90a81feb406",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-200,
560
],
"parameters": {
"color": 3,
"width": 880,
"height": 480,
"content": "## Filtering Step\n**Filter by Datetime** only allows daily news.\n**Remove Certain Content** to remove unwanted news through use of keywords.\n\nObservation: you can add or remove your own desired keywords as needed."
},
"typeVersion": 1
},
{
"id": "7b943173-28d8-4a1d-86b9-06837e1c38a6",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
740,
560
],
"parameters": {
"color": 5,
"width": 640,
"height": 900,
"content": "## News Selection\n**Aggregate** will prep the news for the AI Agent. It will encapsulate the list of news into a singular data.\n**News Analyzer** is the Agent which will use the Chat Model to make an appropriate title and summary of today's news. The AI will make a list of the top news. Mind you, it will decide the best news to read just like the average person would: through the titles.\n**Mistral Cloud Chat Model** is used instead of OpenAI because it is Dev friendly. Mistral allows you to test their API for free. Recommended for hobbyist. \n**Json Output Parser** forces the AI Agent to structure the output in its defined Json format. This is important to make the AI output both consistent and usable. Otherwise, you might end up with one of the following problems: incomplete answers, nonconforming answers or straight up gibberish. "
},
"typeVersion": 1
},
{
"id": "a1d89fc5-4f6d-4e15-be60-a22ff049ccbb",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1420,
560
],
"parameters": {
"color": 5,
"width": 1060,
"height": 580,
"content": "## News Summarizer\n**Split Out News Data** will prep the top news selected by the News Analyzer. The Top News have their website content in a former step of this workflow, so they must be joined again in an inner manner.\n**Join Output** will join the selected top news with their respective textual content.\n**Website Summarizer** will take the textual content of each news and summarize it, using **Mistral Cloud Chat Model** and **Json Output Parser** to produce the appropriate output.\n**Final Aggregate** will prep the summaries of the news for the final step of the Workflow. It will encapsulate the list of summaries into a singular data.\n\n* Observation: Website Summarizer will discard any output which it fails to properly structure as configured by the Json Output Parser."
},
"typeVersion": 1
},
{
"id": "d1942504-dc3d-4ae7-b342-28d26827945b",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1760,
-240
],
"parameters": {
"color": 4,
"width": 1520,
"height": 2060,
"content": "# Tech News Gathering\n**Schedule** will start the workflow according to its configuration. In this workflow, it is configured to start every weekday after 12:00 PM.\n**Feed Nodes** will get the RSS feed of their respective sources.\n**Field Prep** will ensure the RSS outputs are structured in the same manner for the merge.\n**Merge** will unite the outputs into one big list with news from each of them.\n\n"
},
"typeVersion": 1
},
{
"id": "6fdcf852-4638-4081-8621-b4f4cc6e03d6",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1080,
-80
],
"parameters": {
"color": 3,
"width": 660,
"height": 1880,
"content": "## Field Prep\n- Standardize RSS outputs\n- Remove Fields\n- Add Info as Needed\n\n*Obs: set the Sub-Workflow \"Get Webage Content\". ([Guide](https://docs.n8n.io/workflows/subworkflow-conversion/))"
},
"typeVersion": 1
},
{
"id": "ca60f20b-cc2f-4172-92bd-d993d8bdefd3",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1680,
-80
],
"parameters": {
"color": 6,
"width": 600,
"height": 1880,
"content": "## Feed Nodes\nEach node will get a list of news from a RSS feed or a search engine (in our case, DuckDuckGo).\n\n*Observation: \nThe DuckDuckGo custom node is called: n8n-nodes-duckduckgo-search\nYou will need to install it."
},
"typeVersion": 1
},
{
"id": "a7b40eed-b05a-4892-b7ec-fc3f4c328b6b",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-200,
320
],
"parameters": {
"width": 540,
"height": 220,
"content": "In the end of the **News Gathering step**, the output of merge should contain a list of news with the following properties: title, pubDate, link and content.\n\n*Observation: you could try to avoid RSS feeds, but it would still require you to structure the data.\n**Advice: Do not seek to avoid structuring the data**. It is not recommended when dealing with AI Agents.\n\n*About the Merge: if you connect more than one output in a Merge node input, then you risk the Merge node continuing the Workflow before all the news sources returned their output."
},
"typeVersion": 1
},
{
"id": "30ec121c-d5ed-405d-8c6b-7d31daea4f19",
"name": "TheHackersNews* Feed",
"type": "n8n-nodes-base.rssFeedRead",
"notes": "*Not to be confused with \"Hacker News\" from ycombinator.",
"onError": "continueRegularOutput",
"position": [
-1240,
720
],
"parameters": {
"url": "https://feeds.feedburner.com/TheHackersNews",
"options": {
"ignoreSSL": false
}
},
"typeVersion": 1.1,
"alwaysOutputData": true
},
{
"id": "0be003b9-f7d7-44f4-ab6a-7812060e8344",
"name": "Filter Fields",
"type": "n8n-nodes-base.set",
"position": [
-1020,
180
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e2ffe594-180d-4e1d-b869-8056ac67015d",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "87c5a171-9ab9-4043-a72a-32aec218fe63",
"name": "pubDate",
"type": "string",
"value": "={{ $json.pubDate }}"
},
{
"id": "978b05c9-6e6b-4a18-bc06-4de785b19413",
"name": "link",
"type": "string",
"value": "={{ $json.link }}"
},
{
"id": "199a5920-72a3-470e-9adf-8252f6ebb37a",
"name": "content",
"type": "string",
"value": "={{ $json.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "40374b49-29b7-4965-abc6-6be211f27821",
"name": "Filter Fields 2",
"type": "n8n-nodes-base.set",
"disabled": true,
"position": [
-1020,
340
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e2ffe594-180d-4e1d-b869-8056ac67015d",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "f43db298-a42f-4391-83b9-c49c5d8c03ae",
"name": "pubDate",
"type": "string",
"value": "={{ $json.date }}"
},
{
"id": "978b05c9-6e6b-4a18-bc06-4de785b19413",
"name": "link",
"type": "string",
"value": "={{ $json.link }}"
},
{
"id": "199a5920-72a3-470e-9adf-8252f6ebb37a",
"name": "content",
"type": "string",
"value": "={{ $json.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "47c2f29d-f56b-451f-b2c8-3c4c7d19f94f",
"name": "Filter Fields 3",
"type": "n8n-nodes-base.set",
"position": [
-1020,
540
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e2ffe594-180d-4e1d-b869-8056ac67015d",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "87c5a171-9ab9-4043-a72a-32aec218fe63",
"name": "pubDate",
"type": "string",
"value": "={{ $json.pubDate }}"
},
{
"id": "978b05c9-6e6b-4a18-bc06-4de785b19413",
"name": "link",
"type": "string",
"value": "={{ $json.link }}"
},
{
"id": "199a5920-72a3-470e-9adf-8252f6ebb37a",
"name": "content",
"type": "string",
"value": "={{ $json.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "9ab7119a-12f7-4366-861f-2ef35738409c",
"name": "Filter Fields 4",
"type": "n8n-nodes-base.set",
"position": [
-1020,
720
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e2ffe594-180d-4e1d-b869-8056ac67015d",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "87c5a171-9ab9-4043-a72a-32aec218fe63",
"name": "pubDate",
"type": "string",
"value": "={{ $json.pubDate }}"
},
{
"id": "978b05c9-6e6b-4a18-bc06-4de785b19413",
"name": "link",
"type": "string",
"value": "={{ $json.link }}"
},
{
"id": "199a5920-72a3-470e-9adf-8252f6ebb37a",
"name": "content",
"type": "string",
"value": "={{ $json.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3899b74c-3785-4ec6-83a2-0c92bf0e8405",
"name": "Filter Fields 5",
"type": "n8n-nodes-base.set",
"position": [
-1020,
900
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e2ffe594-180d-4e1d-b869-8056ac67015d",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "87c5a171-9ab9-4043-a72a-32aec218fe63",
"name": "pubDate",
"type": "string",
"value": "={{ $json.pubDate }}"
},
{
"id": "978b05c9-6e6b-4a18-bc06-4de785b19413",
"name": "link",
"type": "string",
"value": "={{ $json.link }}"
},
{
"id": "199a5920-72a3-470e-9adf-8252f6ebb37a",
"name": "content",
"type": "string",
"value": "={{ $json.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "7dc32f30-6d77-4987-ae43-90214d990992",
"name": "Filter Fields 6",
"type": "n8n-nodes-base.set",
"position": [
-1020,
1080
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e2ffe594-180d-4e1d-b869-8056ac67015d",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "87c5a171-9ab9-4043-a72a-32aec218fe63",
"name": "pubDate",
"type": "string",
"value": "={{ $json.pubDate }}"
},
{
"id": "978b05c9-6e6b-4a18-bc06-4de785b19413",
"name": "link",
"type": "string",
"value": "={{ $json.link }}"
},
{
"id": "199a5920-72a3-470e-9adf-8252f6ebb37a",
"name": "content",
"type": "string",
"value": "={{ $json.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5bcfdca4-925f-426a-bde8-fc89ffc00631",
"name": "Filter Fields 7",
"type": "n8n-nodes-base.set",
"position": [
-1020,
1260
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e2ffe594-180d-4e1d-b869-8056ac67015d",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "87c5a171-9ab9-4043-a72a-32aec218fe63",
"name": "pubDate",
"type": "string",
"value": "={{ $json.pubDate }}"
},
{
"id": "978b05c9-6e6b-4a18-bc06-4de785b19413",
"name": "link",
"type": "string",
"value": "={{ $json.link }}"
},
{
"id": "199a5920-72a3-470e-9adf-8252f6ebb37a",
"name": "content",
"type": "string",
"value": "={{ $json.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "285cd92f-a9bc-4758-8de5-b07a3013f504",
"name": "Filter Fields 8",
"type": "n8n-nodes-base.set",
"disabled": true,
"position": [
-1020,
1440
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e2ffe594-180d-4e1d-b869-8056ac67015d",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "87c5a171-9ab9-4043-a72a-32aec218fe63",
"name": "pubDate",
"type": "string",
"value": "={{ $json.pubDate }}"
},
{
"id": "978b05c9-6e6b-4a18-bc06-4de785b19413",
"name": "link",
"type": "string",
"value": "={{ $json.link }}"
},
{
"id": "199a5920-72a3-470e-9adf-8252f6ebb37a",
"name": "content",
"type": "string",
"value": "={{ $json.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "0ec39c32-4f44-4ace-8ecf-7632f5697136",
"name": "Markdown Conversion",
"type": "n8n-nodes-base.markdown",
"onError": "continueRegularOutput",
"position": [
-600,
160
],
"parameters": {
"html": "={{ $json.data }}",
"options": {}
},
"typeVersion": 1
},
{
"id": "04ba0b02-da75-4c9f-b8fd-8b4aaa28cc93",
"name": "JSON Output Parser 2",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2080,
1000
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"data\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\",\n \"description\": \"The title describing the news article.\"\n },\n \"author\": {\n\t\t\t\"type\": \"string\",\n \"description\": \"The author of the news article.\"\n },\n \"link\": {\n\t\t\t\"type\": \"string\",\n \"description\": \"The link of the news article.\"\n },\n \"summary\": {\n\t\t\t\"type\": \"string\",\n \"description\": \"The resume of the news article.\"\n }\n },\n \"required\": [\"title\", \"author\", \"link\", \"summary\"],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\"data\"],\n \"additionalProperties\": false\n}"
},
"typeVersion": 1.2
},
{
"id": "11ee267f-6429-48dd-aa01-3e1e0cd49a50",
"name": "JSON Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1260,
1280
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"data\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\",\n \"description\": \"The name describing the overall news.\"\n },\n \"summary\": {\n\t\t\t\"type\": \"string\",\n \"description\": \"The resume of today's news.\"\n },\n \"top_10_news\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t \"type\": \"object\",\n\t\t\t \"properties\": {\n\t\t\t\t\"title\": {\n\t\t\t\t \"type\": \"string\",\n\t\t\t\t \"description\": \"The title to the news article.\"\n\t\t\t\t},\n\t\t\t\t\"website\": {\n\t\t\t\t \"type\": \"string\",\n\t\t\t\t \"description\": \"The website to the news article.\"\n\t\t\t\t},\n \"required\": [\"title\", \"website\"],\n \"additionalProperties\": false\n\t\t\t }\n\t\t\t}\n }\n },\n \"required\": [\"title\", \"summary\", \"top_10_news\"],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\"data\"],\n \"additionalProperties\": false\n }\n"
},
"typeVersion": 1.2
},
{
"id": "f841eedd-91b2-4ef8-ba49-d46999f05802",
"name": "DuckDuckGo",
"type": "n8n-nodes-duckduckgo-search.duckDuckGo",
"position": [
-1240,
1620
],
"parameters": {
"newsQuery": "technology",
"operation": "searchNews",
"cacheSettings": {
"cacheTTL": 300,
"enableCache": true
},
"proxySettings": {},
"newsSearchOptions": {
"region": "wt-wt",
"maxResults": 100,
"safeSearch": 0
}
},
"typeVersion": 1
},
{
"id": "9dc00e4e-15c4-4fce-acc4-b67c3de99bcb",
"name": "Filter Fields 9",
"type": "n8n-nodes-base.set",
"position": [
-1040,
1620
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e2ffe594-180d-4e1d-b869-8056ac67015d",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "87c5a171-9ab9-4043-a72a-32aec218fe63",
"name": "pubDate",
"type": "string",
"value": "={{ $json.date }}"
},
{
"id": "978b05c9-6e6b-4a18-bc06-4de785b19413",
"name": "link",
"type": "string",
"value": "={{ $json.url }}"
},
{
"id": "199a5920-72a3-470e-9adf-8252f6ebb37a",
"name": "content",
"type": "string",
"value": "="
}
]
}
},
"typeVersion": 3.4
},
{
"id": "92732b78-71a2-4d4e-91f3-41231153046b",
"name": "Call Get Webpage Content to Data",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
-860,
1620
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "id",
"value": "MqafS0zommXM7soB"
},
"workflowInputs": {
"value": {
"link": "={{ $json.link }}",
"title": "={{ $json.title }}",
"pubDate": "={{ $json.pubDate }}"
},
"schema": [
{
"id": "title",
"display": true,
"removed": false,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "pubDate",
"display": true,
"removed": false,
"required": false,
"displayName": "pubDate",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "link",
"display": true,
"removed": false,
"required": false,
"displayName": "link",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"title",
"pubDate",
"link"
],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.2
},
{
"id": "1ba68823-f76e-4277-a9d1-90d549ad080b",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-200,
1060
],
"parameters": {
"color": 2,
"width": 680,
"height": 540,
"content": "## Sub-Workflow : Get Webpage Content to Data\nThis Sub-Workflow will deal with cases where the content of the link is not immediately given by Source Node."
},
"typeVersion": 1
},
{
"id": "dc42e913-8d41-41c5-bd40-7ba006b1d361",
"name": "Remove Elements with Empty Content",
"type": "n8n-nodes-base.filter",
"position": [
-660,
1320
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "30d4f694-9378-42b4-b1d5-cbc38fb3e7fe",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.content }}",
"rightValue": "={{ $today.minus({ days: 0 }) }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "d5053c20-a8af-4d9e-b2b6-02c51044ecdd",
"name": "HTTP Request Example",
"type": "n8n-nodes-base.httpRequest",
"notes": "It is a necessary node because lobste.rs will not give the actual content of the links.",
"onError": "continueErrorOutput",
"position": [
-40,
1220
],
"parameters": {
"url": "={{ $json.link }}",
"options": {
"timeout": 3000
}
},
"typeVersion": 4.2
},
{
"id": "2461638a-9de6-4a67-b287-0e0102e32764",
"name": "Rejoin Data Example",
"type": "n8n-nodes-base.set",
"onError": "continueRegularOutput",
"position": [
20,
1440
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e2ffe594-180d-4e1d-b869-8056ac67015d",
"name": "title",
"type": "string",
"value": "={{ $('Filter Fields').item.json.title }}"
},
{
"id": "87c5a171-9ab9-4043-a72a-32aec218fe63",
"name": "pubDate",
"type": "string",
"value": "={{ $('Filter Fields').item.json.pubDate }}"
},
{
"id": "978b05c9-6e6b-4a18-bc06-4de785b19413",
"name": "link",
"type": "string",
"value": "={{ $('Filter Fields').item.json.link }}"
},
{
"id": "199a5920-72a3-470e-9adf-8252f6ebb37a",
"name": "content",
"type": "string",
"value": "={{ $json.data }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b7d64a46-2656-45a8-8053-3c6fa6df6e4f",
"name": "Markdown Conversion Example",
"type": "n8n-nodes-base.markdown",
"onError": "continueRegularOutput",
"position": [
200,
1200
],
"parameters": {
"html": "={{ $json.data }}",
"options": {}
},
"typeVersion": 1
},
{
"id": "bd46c6d8-f235-4bad-9866-e0c1a72bc6e3",
"name": "Final Join Outputs",
"type": "n8n-nodes-base.merge",
"position": [
2680,
1080
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "4894d04d-7e11-4af0-9370-c6eefdad1371",
"name": "Test Feed",
"type": "n8n-nodes-base.rssFeedRead",
"onError": "continueRegularOutput",
"disabled": true,
"position": [
-1240,
340
],
"parameters": {
"options": {}
},
"typeVersion": 1.1,
"alwaysOutputData": true
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "ac25536e-1d15-4254-b8cd-0efadf052a5f",
"connections": {
"Merge": {
"main": [
[
{
"node": "Filter by Datetime",
"type": "main",
"index": 0
}
]
]
},
"Schedule": {
"main": [
[
{
"node": "lobste.rs Feed",
"type": "main",
"index": 0
},
{
"node": "Test Feed",
"type": "main",
"index": 0
},
{
"node": "ScienceDaily Feed",
"type": "main",
"index": 0
},
{
"node": "TheHackersNews* Feed",
"type": "main",
"index": 0
},
{
"node": "AlternativeTo Feed",
"type": "main",
"index": 0
},
{
"node": "MIT Technology Review Feed",
"type": "main",
"index": 0
},
{
"node": "Silicone Republic Technology Feed",
"type": "main",
"index": 0
},
{
"node": "Silicone Republic Science Feed",
"type": "main",
"index": 0
},
{
"node": "DuckDuckGo",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "News Analyzer",
"type": "main",
"index": 0
}
]
]
},
"Test Feed": {
"main": [
[
{
"node": "Filter Fields 2",
"type": "main",
"index": 0
}
]
]
},
"DuckDuckGo": {
"main": [
[
{
"node": "Filter Fields 9",
"type": "main",
"index": 0
}
]
]
},
"Rejoin Data": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Markdown Conversion",
"type": "main",
"index": 0
}
]
]
},
"Join Outputs": {
"main": [
[
{
"node": "Website Summarizer",
"type": "main",
"index": 0
}
]
]
},
"Filter Fields": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"News Analyzer": {
"main": [
[
{
"node": "Split Out News Data",
"type": "main",
"index": 0
},
{
"node": "Final Join Outputs",
"type": "main",
"index": 1
}
]
]
},
"lobste.rs Feed": {
"main": [
[
{
"node": "Filter Fields",
"type": "main",
"index": 0
}
]
]
},
"Filter Fields 2": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Filter Fields 3": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 2
}
]
]
},
"Filter Fields 4": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 3
}
]
]
},
"Filter Fields 5": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 4
}
]
]
},
"Filter Fields 6": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 5
}
]
]
},
"Filter Fields 7": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 6
}
]
]
},
"Filter Fields 8": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 7
}
]
]
},
"Filter Fields 9": {
"main": [
[
{
"node": "Call Get Webpage Content to Data",
"type": "main",
"index": 0
}
]
]
},
"Final Aggregate": {
"main": [
[
{
"node": "Final Join Outputs",
"type": "main",
"index": 0
}
]
]
},
"ScienceDaily Feed": {
"main": [
[
{
"node": "Filter Fields 3",
"type": "main",
"index": 0
}
]
]
},
"AlternativeTo Feed": {
"main": [
[
{
"node": "Filter Fields 5",
"type": "main",
"index": 0
}
]
]
},
"Filter by Datetime": {
"main": [
[
{
"node": "Remove Certain Content",
"type": "main",
"index": 0
}
]
]
},
"Final Join Outputs": {
"main": [
[]
]
},
"JSON Output Parser": {
"ai_outputParser": [
[
{
"node": "News Analyzer",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Website Summarizer": {
"main": [
[
{
"node": "Final Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Markdown Conversion": {
"main": [
[
{
"node": "Rejoin Data",
"type": "main",
"index": 0
}
]
]
},
"Split Out News Data": {
"main": [
[
{
"node": "Join Outputs",
"type": "main",
"index": 1
}
]
]
},
"HTTP Request Example": {
"main": [
[
{
"node": "Markdown Conversion Example",
"type": "main",
"index": 0
}
]
]
},
"JSON Output Parser 2": {
"ai_outputParser": [
[
{
"node": "Website Summarizer",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"TheHackersNews* Feed": {
"main": [
[
{
"node": "Filter Fields 4",
"type": "main",
"index": 0
}
]
]
},
"Remove Certain Content": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
},
{
"node": "Join Outputs",
"type": "main",
"index": 0
}
]
]
},
"Mistral Cloud Chat Model": {
"ai_languageModel": [
[
{
"node": "News Analyzer",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Website Summarizer",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"MIT Technology Review Feed": {
"main": [
[
{
"node": "Filter Fields 6",
"type": "main",
"index": 0
}
]
]
},
"Markdown Conversion Example": {
"main": [
[
{
"node": "Rejoin Data Example",
"type": "main",
"index": 0
}
]
]
},
"Silicone Republic Science Feed": {
"main": [
[
{
"node": "Filter Fields 8",
"type": "main",
"index": 0
}
]
]
},
"Call Get Webpage Content to Data": {
"main": [
[
{
"node": "Remove Elements with Empty Content",
"type": "main",
"index": 0
}
]
]
},
"Silicone Republic Technology Feed": {
"main": [
[
{
"node": "Filter Fields 7",
"type": "main",
"index": 0
}
]
]
},
"Remove Elements with Empty Content": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 8
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
mistralCloudApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Using Mistral API, you can use this n8n workflow to automate the process of: collecting, filtering, analyzing, and summarizing news articles from multiple sources. The sources come from pre-built RSS feeds and a custom DuckDuckGo node, which you can change if you need. It will…
Source: https://n8n.io/workflows/5339/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
We’ve released Version 4 of our AI Powered Blog Automation workflow. We heard your complains and made a complete redesign built for serious content creators.
Automatically scan major financial newswires for biotech catalyst events, score them with AI sentiment analysis, and surface ranked trade candidates — all without manual monitoring.
This advanced workflow automates the entire job search and preparation process, moving beyond simple notifications to provide AI-driven career intelligence.
Ghost-Automated-Blog-System. Uses scheduleTrigger, rssFeedRead, httpRequest, airtable. Scheduled trigger; 38 nodes.
This workflow is designed for Japanese-speaking professionals, and learners who want to efficiently stay up to date with practical productivity, lifehack, and efficiency-related insights from Japanese