AutomationFlowsAI & RAG › Умный Парсер

Умный Парсер

умный парсер. Uses httpRequest, agent, lmChatGroq, telegram. Event-driven trigger; 15 nodes.

Event trigger★★★★☆ complexityAI-powered15 nodesHTTP RequestAgentGroq ChatTelegram
AI & RAG Trigger: Event Nodes: 15 Complexity: ★★★★☆ AI nodes: yes Added:

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 →

Download .json
{
  "name": "\u0443\u043c\u043d\u044b\u0439 \u043f\u0430\u0440\u0441\u0435\u0440",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -400,
        0
      ],
      "id": "REDACTED_NODE_ID_0",
      "name": "When clicking \u2018Execute workflow\u2019"
    },
    {
      "parameters": {
        "url": "https://api.hh.ru/vacancies",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "text",
              "value": "n8n \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f"
            },
            {
              "name": "area",
              "value": "113"
            },
            {
              "name": "per_page",
              "value": "10"
            },
            {
              "name": "salary",
              "value": "100000"
            },
            {
              "name": "only_with_salary",
              "value": "true"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [
        -240,
        0
      ],
      "id": "REDACTED_NODE_ID_1",
      "name": "HTTP Request"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435: {{ $json.\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 }}\n\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f: {{ $json.\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f }}\n\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430: {{ $json.\u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430 }}\n\u0424\u043e\u0440\u043c\u0430\u0442: {{ $json.\u0444\u043e\u0440\u043c\u0430\u0442 }}\n\u0421\u0441\u044b\u043b\u043a\u0430: {{ $json.\u0441\u0441\u044b\u043b\u043a\u0430 }}",
        "options": {
          "systemMessage": "\u0422\u044b \u2014 HR-\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a. \u0422\u0435\u0431\u0435 \u0434\u0430\u044e\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u0438.\n\u0422\u0432\u043e\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u043a\u0440\u0430\u0442\u043a\u043e \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u044e \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0422\u041e\u041b\u042c\u041a\u041e JSON \u0431\u0435\u0437 markdown:\n\n\n  \"\u043e\u0446\u0435\u043d\u043a\u0430\": \"\u0432\u044b\u0441\u043e\u043a\u0430\u044f/\u0441\u0440\u0435\u0434\u043d\u044f\u044f/\u043d\u0438\u0437\u043a\u0430\u044f\",\n  \"\u043f\u043b\u044e\u0441\u044b\": \"2-3 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043f\u043b\u044e\u0441\u0430 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u0438\",\n  \"\u043c\u0438\u043d\u0443\u0441\u044b\": \"2-3 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043c\u0438\u043d\u0443\u0441\u0430 \u0438\u043b\u0438 \u0447\u0435\u0433\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442\",\n  \"\u0432\u044b\u0432\u043e\u0434\": \"\u043e\u0434\u043d\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u2014 \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u043e\u0442\u043a\u043b\u0438\u043a\u0430\u0442\u044c\u0441\u044f\"\n\n\n\u041a\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u043e\u0446\u0435\u043d\u043a\u0438:\n- \u0432\u044b\u0441\u043e\u043a\u0430\u044f: \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 + \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 + n8n \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\n- \u0441\u0440\u0435\u0434\u043d\u044f\u044f: \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c\n- \u043d\u0438\u0437\u043a\u0430\u044f: \u043e\u0444\u0438\u0441 \u0442\u043e\u043b\u044c\u043a\u043e + \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430\n\n\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043e\u0446\u0435\u043d\u043a\u0438 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u0439 \u043f\u0438\u0448\u0438:\n- \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u0438\n- \u0437\u0430\u043f\u043b\u0430\u0442\u0443\n- \u0444\u043e\u0440\u043c\u0430\u0442\n- \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u044e\n\n"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3.1,
      "position": [
        240,
        0
      ],
      "id": "REDACTED_NODE_ID_2",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "model": "llama-3.3-70b-versatile",
        "options": {
          "temperature": 0.7
        }
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGroq",
      "typeVersion": 1,
      "position": [
        240,
        192
      ],
      "id": "REDACTED_NODE_ID_3",
      "name": "Groq Chat Model",
      "credentials": {
        "groqApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "return items[0].json.items.map(v => ({\n  json: {\n    \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435: v.name,\n    \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f: v.employer.name,\n    \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430: v.salary ? v.salary.from : null,\n    \u0441\u0441\u044b\u043b\u043a\u0430: v.alternate_url,\n    \u0444\u043e\u0440\u043c\u0430\u0442: v.schedule.name\n  }\n}));\n"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -80,
        0
      ],
      "id": "REDACTED_NODE_ID_4",
      "name": "Code in JavaScript",
      "alwaysOutputData": true
    },
    {
      "parameters": {
        "batchSize": 10,
        "options": {}
      },
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        80,
        0
      ],
      "id": "REDACTED_NODE_ID_5",
      "name": "Loop Over Items"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "REDACTED_INTERNAL_ID",
              "leftValue": "={{ $('Code in JavaScript').item.json['\u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] }}",
              "rightValue": 100000,
              "operator": {
                "type": "number",
                "operation": "gte"
              }
            },
            {
              "id": "REDACTED_INTERNAL_ID",
              "leftValue": "={{ $('Code in JavaScript').item.json['\u0444\u043e\u0440\u043c\u0430\u0442'] }}",
              "rightValue": "\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.3,
      "position": [
        512,
        0
      ],
      "id": "REDACTED_NODE_ID_6",
      "name": "If"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "REDACTED_INTERNAL_ID",
              "name": "\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435",
              "value": "={{ $('Code in JavaScript').item.json[\"\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\"] }}",
              "type": "string"
            },
            {
              "id": "REDACTED_INTERNAL_ID",
              "name": "\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f",
              "value": "={{ $('Code in JavaScript').item.json[\"\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\"] }}",
              "type": "string"
            },
            {
              "id": "REDACTED_INTERNAL_ID",
              "name": "\u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430",
              "value": "={{ $('Code in JavaScript').item.json[\"\u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430\"] }}",
              "type": "number"
            },
            {
              "id": "REDACTED_INTERNAL_ID",
              "name": "\u0444\u043e\u0440\u043c\u0430\u0442",
              "value": "={{ $('Code in JavaScript').item.json[\"\u0444\u043e\u0440\u043c\u0430\u0442\"] }}",
              "type": "string"
            },
            {
              "id": "REDACTED_INTERNAL_ID",
              "name": "\u0441\u0441\u044b\u043b\u043a\u0430",
              "value": "={{ $('Code in JavaScript').item.json[\"\u0441\u0441\u044b\u043b\u043a\u0430\"] }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        512,
        -176
      ],
      "id": "REDACTED_NODE_ID_7",
      "name": "Edit Fields"
    },
    {
      "parameters": {
        "chatId": "REDACTED_TELEGRAM_CHAT_ID",
        "text": "=\u0412\u0430\u043a\u0430\u043d\u0441\u0438\u0438, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c\u0441\u044f! {{ $json['\u0442\u0435\u043a\u0441\u0442'] }}",
        "additionalFields": {}
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        1136,
        -176
      ],
      "id": "REDACTED_NODE_ID_8",
      "name": "Send a text message",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "chatId": "REDACTED_TELEGRAM_CHAT_ID",
        "text": "=\u0410 \u044d\u0442\u043e \u043c\u0443\u0442\u043d\u044b\u0435! {{ $json[\"\u0442\u0435\u043a\u0441\u0442\"] }}",
        "additionalFields": {}
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        1328,
        16
      ],
      "id": "REDACTED_NODE_ID_9",
      "name": "Send a text message1",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "aggregate": "aggregateAllItemData",
        "options": {}
      },
      "type": "n8n-nodes-base.aggregate",
      "typeVersion": 1,
      "position": [
        720,
        -176
      ],
      "id": "REDACTED_NODE_ID_10",
      "name": "Aggregate"
    },
    {
      "parameters": {
        "jsCode": "const vacancies = items[0].json.data;\n\nconst text = vacancies.map(v => \n  `\ud83d\udccc ${v.\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435}\\n\ud83c\udfe2 ${v.\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f}\\n\ud83d\udcb0 ${v.\u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430} \u0440\u0443\u0431\\n\ud83d\udd17 ${v.\u0441\u0441\u044b\u043b\u043a\u0430}`\n).join('\\n\\n---\\n\\n');\n\nreturn [{ json: { \u0442\u0435\u043a\u0441\u0442: text } }];"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        928,
        -176
      ],
      "id": "REDACTED_NODE_ID_11",
      "name": "Code in JavaScript1"
    },
    {
      "parameters": {
        "aggregate": "aggregateAllItemData",
        "options": {}
      },
      "type": "n8n-nodes-base.aggregate",
      "typeVersion": 1,
      "position": [
        912,
        16
      ],
      "id": "REDACTED_NODE_ID_12",
      "name": "Aggregate1"
    },
    {
      "parameters": {
        "jsCode": "const vacancies = items[0].json.data;\n\nconst text = vacancies.map(v => \n  `\ud83d\udccc ${v.\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435}\\n\ud83c\udfe2 ${v.\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f}\\n\ud83d\udcb0 ${v.\u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430} \u0440\u0443\u0431\\n\ud83d\udd17 ${v.\u0441\u0441\u044b\u043b\u043a\u0430}`\n).join('\\n\\n---\\n\\n');\n\nreturn [{ json: { \u0442\u0435\u043a\u0441\u0442: text } }];"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1104,
        16
      ],
      "id": "REDACTED_NODE_ID_13",
      "name": "Code in JavaScript2"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "REDACTED_INTERNAL_ID",
              "name": "\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435",
              "value": "={{ $('Code in JavaScript').item.json[\"\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\"] }}",
              "type": "string"
            },
            {
              "id": "REDACTED_INTERNAL_ID",
              "name": "\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f",
              "value": "={{ $('Code in JavaScript').item.json[\"\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\"] }}",
              "type": "string"
            },
            {
              "id": "REDACTED_INTERNAL_ID",
              "name": "\u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430",
              "value": "={{ $('Code in JavaScript').item.json[\"\u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430\"] }}",
              "type": "number"
            },
            {
              "id": "REDACTED_INTERNAL_ID",
              "name": "\u0444\u043e\u0440\u043c\u0430\u0442",
              "value": "={{ $('Code in JavaScript').item.json[\"\u0444\u043e\u0440\u043c\u0430\u0442\"] }}",
              "type": "string"
            },
            {
              "id": "REDACTED_INTERNAL_ID",
              "name": "\u0441\u0441\u044b\u043b\u043a\u0430",
              "value": "={{ $('Code in JavaScript').item.json[\"\u0441\u0441\u044b\u043b\u043a\u0430\"] }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        720,
        16
      ],
      "id": "REDACTED_NODE_ID_14",
      "name": "Edit Fields1"
    }
  ],
  "connections": {
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Groq Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Edit Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "Code in JavaScript1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript1": {
      "main": [
        [
          {
            "node": "Send a text message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate1": {
      "main": [
        [
          {
            "node": "Code in JavaScript2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript2": {
      "main": [
        [
          {
            "node": "Send a text message1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields1": {
      "main": [
        [
          {
            "node": "Aggregate1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate"
  },
  "versionId": "REDACTED_VERSION_ID",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "REDACTED_WORKFLOW_ID",
  "tags": []
}

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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

умный парсер. Uses httpRequest, agent, lmChatGroq, telegram. Event-driven trigger; 15 nodes.

Source: https://github.com/Andy-randy/n8n-portfolio/blob/63bbcdce72c7f2473ea9e267938078ee6e2fa7dc/03-hh-parser/workflow.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Bitlab-Chatbot. Uses telegramTrigger, telegram, snowflake, httpRequest. Event-driven trigger; 87 nodes.

Telegram Trigger, Telegram, Snowflake +13
AI & RAG

god_is_typing v2.6 (Multi-channel: Telegram + Web). Uses telegramTrigger, telegram, supabase, httpRequest. Event-driven trigger; 66 nodes.

Telegram Trigger, Telegram, Supabase +5
AI & RAG

This workflow is designed for marketers, content creators, agencies, and solo founders who want to publish long‑form posts with visuals on autopilot using n8n and AI agents. ​

Tool Http Request, Agent, HTTP Request +27
AI & RAG

This n8n template automates the creation and approval of Twitter (X) content using real-time news data, AI-generated text, and a human approval workflow.

Telegram Trigger, Google Sheets, Telegram +3
AI & RAG

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Telegram Trigger, Telegram, @Elevenlabs/N8N Nodes Elevenlabs +5