Usar GPT-5-mini para resumir y extrares resúmenes de correos automáticamente del tablero de contrataciones de Make.com

Avanzado

Este es unautomatización que contiene 18 nodos.Utiliza principalmente nodos como Code, Html, Merge, Filter, EmailSend. Extraer automáticamente resúmenes de tableros de empleo de Make.com usando GPT-5-mini para resúmenes y correos

Requisitos previos
  • Pueden requerirse credenciales de autenticación para la API de destino

Categoría

-
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "meta": {
    "instanceId": "42450f423595f391b7c323eb4191c0bc81df9f6de5483a12f34f76cb4146556c",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "65c33726-bacc-4180-b62f-15701697516d",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1488,
        400
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"summary\": \"What the client is looking to build\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "652bb452-ea0e-4719-813d-994436d15960",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1360,
        400
      ],
      "parameters": {
        "model": "openai/gpt-5-mini",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "aCsTDT5LGS5D8Ndl",
          "name": "OpenRouter account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c92e0da2-85ff-4a57-970f-1b9f636b8a1b",
      "name": "Fetch Main Job Board",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        224,
        144
      ],
      "parameters": {
        "url": "https://community.make.com/tag/professional-service",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "45216826-c35d-4724-808a-0fc119fb60f4",
      "name": "Extract Job Post Links",
      "type": "n8n-nodes-base.html",
      "position": [
        448,
        144
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "jobTitle",
              "cssSelector": ".topic-list-item .main-link .link-top-line a",
              "returnArray": true
            },
            {
              "key": "jobLink",
              "attribute": "href",
              "cssSelector": ".topic-list-item .main-link .link-top-line a",
              "returnArray": true,
              "returnValue": "attribute"
            },
            {
              "key": "date",
              "cssSelector": ".topic-list-item td:last-child",
              "returnArray": true
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3fb97846-8387-430c-bc8a-a20528978a46",
      "name": "Filtrar New/Valid Jobs",
      "type": "n8n-nodes-base.filter",
      "position": [
        896,
        144
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "9db031ce-cbcc-4ccf-8f68-ca6fee8cd510",
              "operator": {
                "type": "dateTime",
                "operation": "after"
              },
              "leftValue": "={{ $json.date }}",
              "rightValue": "={{$now.minus({days: 7})}} "
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "bdabba9a-ba1f-4261-8b97-d8e19987a730",
      "name": "Get Individual Job Page",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1120,
        32
      ],
      "parameters": {
        "url": "={{ $json.jobLink }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "0bcf04e4-f4c6-4530-8f42-58baa8e7f19d",
      "name": "Get Page HTML for LLM",
      "type": "n8n-nodes-base.html",
      "position": [
        1408,
        -128
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "jobDescription",
              "attribute": "content",
              "cssSelector": "meta[property=\"og:description\"]",
              "returnValue": "attribute"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d16a28e9-c6cd-4aa9-9ed6-c25f3a8a6ea6",
      "name": "Extract Job Details with AI",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1344,
        176
      ],
      "parameters": {
        "text": "={{ $json.data }}",
        "messages": {
          "messageValues": [
            {
              "message": "=<prompt>\n    <purpose>\n        Based on this HTML your task is to provide a summary of what the client is looking to build with the automation software make.com\n    </purpose>\n\n    <instructions>\n        <instruction>Output in json format</instruction>\n        <instruction>Give a high level summary of what the client wants to build</instruction>\n        <instruction>Make sure to only distill the relevant text from all the HTML input</instruction>\n    </instructions>\n</prompt>"
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.5
    },
    {
      "id": "eb84699b-e02c-4ef8-b37a-2ffaf395396e",
      "name": "Combine AI Data & URL",
      "type": "n8n-nodes-base.merge",
      "position": [
        1696,
        160
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition",
        "numberInputs": 3
      },
      "typeVersion": 3
    },
    {
      "id": "c598080e-3716-4ac4-b1a3-e18c3acb4ba5",
      "name": "Format Job List Items",
      "type": "n8n-nodes-base.code",
      "position": [
        672,
        144
      ],
      "parameters": {
        "jsCode": "const titles = items[0].json[\"jobTitle\"];\nconst links = items[0].json[\"jobLink\"];\nconst dates = items[0].json[\"date\"];\n\nconst merged = titles.map((link, index) => ({\n  \"jobTitle\": link,\n  \"jobLink\": links[index],\n  \"date\": dates[index],\n  \"source\": \"make-forum\"\n}));\n\nreturn merged.map(item => ({ json: item }));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "9f811105-07b4-4c4e-ba7d-85183b718e1f",
      "name": "Clean AI Response",
      "type": "n8n-nodes-base.code",
      "position": [
        1920,
        176
      ],
      "parameters": {
        "jsCode": "return $input.all().map((item) => ({...item.json, summary:item.json.output.summary, output: undefined}))\n"
      },
      "typeVersion": 2
    },
    {
      "id": "1ce88c89-4780-4c6f-9781-0c065ff6473f",
      "name": "Agregar All Jobs",
      "type": "n8n-nodes-base.code",
      "position": [
        2144,
        176
      ],
      "parameters": {
        "jsCode": "const items = $input.all().map((item) => {\n    const itemJson = item.json;\n    return {\n        ...itemJson\n    }\n})\n\nconsole.log(items.length)\n\nreturn {data: items}\n"
      },
      "typeVersion": 2
    },
    {
      "id": "16173a79-9c23-47b6-8582-ee2c870fdc1a",
      "name": "Send Weekly Job Digest",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        2368,
        176
      ],
      "webhookId": "d53405e8-9964-43c2-8fe4-38eeebf65d34",
      "parameters": {
        "html": "={{(() => {\n  const grouped = $json.data.sort((a,b) => new Date(b.date.replace(/\\s/, 'T')) - new Date(a.date.replace(/\\s/, 'T'))).reduce((acc, job) => {\n    const source = job.source === 'n8n-forum' ? 'n8n-forum' : \n                  job.source === 'make-forum' ? 'make-forum' : \n                  'reddit';\n    if (!acc[source]) acc[source] = [];\n    acc[source].push(job);\n    return acc;\n  }, {});\n  \n  return Object.entries(grouped).reduce((html, [source, jobs]) => \n    html + '<div class=\"section\"><h2>' + \n    (source === 'n8n-forum' ? 'n8n Forum Jobs' : \n     source === 'make-forum' ? 'Make Forum Jobs' : \n     'Reddit Jobs') + '</h2>' +\n    jobs.map(job => \n      '<div class=\"job-item\"><h3><a href=\"' + job.jobLink + '\">' + \n      job.jobTitle + '</a></h3><div class=\"date\">Posted: ' + \n      job.date + '</div><div class=\"source\">Source: ' + \n      (job.source === 'n8n-forum' ? 'n8n Forum' : \n       job.source === 'make-forum' ? 'Make Forum' : \n       'Reddit - ' + job.origin) + '</div><p class=\"summary\">' + \n      job.summary + '</p></div>'\n    ).join('') + '</div>',\n    '<!DOCTYPE html><html><head><style>body{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:800px;margin:0 auto;padding:20px}.section{margin-bottom:30px}.job-item{border:1px solid #ddd;margin-bottom:20px;padding:15px;border-radius:5px}h2{color:#2c5282;border-bottom:2px solid #2c5282;padding-bottom:10px;margin-top:30px}h3{color:#2c5282;margin:0 0 10px}a{color:#2b6cb0;text-decoration:none}a:hover{text-decoration:underline}.date,.source{color:#666;font-size:0.9em;margin-bottom:8px}.summary{background:#f8f9fa;padding:10px;border-left:4px solid #4299e1;margin:10px 0}</style></head><body><h1>Latest Job Opportunities</h1><p>Generated on: ' + new Date().toLocaleString() + '</p>'\n  ) + '</body></html>';\n})()}}\n",
        "options": {},
        "subject": "Job Opportunities",
        "toEmail": "test@example.com",
        "fromEmail": "test@example.com"
      },
      "credentials": {
        "smtp": {
          "id": "JN7BvujMXvFvoUMh",
          "name": "SMTP account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ebe89e2a-da83-4150-9204-db0313daf256",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        -64
      ],
      "parameters": {
        "width": 336,
        "height": 176,
        "content": "## 📋 WORKFLOW OVERVIEW\nThis automation scrapes Make.com's professional services forum for job postings, uses AI to summarize each opportunity, and emails you a digest of jobs from the last 7 days.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e5334bb7-116e-4227-b938-3a4ae1c8c540",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        784,
        -64
      ],
      "parameters": {
        "height": 176,
        "content": "## ⏱️ DATE FILTERING\nOnly processes jobs posted within the last 7 days.\nAdjust the filter condition to change this timeframe.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "33890a9f-ae80-4dcf-a430-3924fdc6c891",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1312,
        544
      ],
      "parameters": {
        "width": 320,
        "height": 208,
        "content": "## 🤖 AI EXTRACTION\nUses GPT-5-mini to read the job posting HTML and extract a clear summary \nof what the client wants to build. This makes scanning opportunities much faster!\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e19f09cd-617a-45f9-bc2c-47b1ec92a608",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2304,
        -64
      ],
      "parameters": {
        "height": 192,
        "content": "## 📧 EMAIL FORMATTING\nCreates a beautiful HTML email with jobs organized by source.\nUpdate the fromEmail and toEmail parameters to your addresses.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "050341ef-70f2-4e06-9e44-61d519a8910e",
      "name": "Run Weekly on Monday Morning",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        144
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 9 * * 1"
            }
          ]
        }
      },
      "typeVersion": 1.2
    }
  ],
  "pinData": {},
  "connections": {
    "9f811105-07b4-4c4e-ba7d-85183b718e1f": {
      "main": [
        [
          {
            "node": "Aggregate All Jobs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate All Jobs": {
      "main": [
        [
          {
            "node": "16173a79-9c23-47b6-8582-ee2c870fdc1a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c92e0da2-85ff-4a57-970f-1b9f636b8a1b": {
      "main": [
        [
          {
            "node": "45216826-c35d-4724-808a-0fc119fb60f4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "eb84699b-e02c-4ef8-b37a-2ffaf395396e": {
      "main": [
        [
          {
            "node": "9f811105-07b4-4c4e-ba7d-85183b718e1f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter New/Valid Jobs": {
      "main": [
        [
          {
            "node": "bdabba9a-ba1f-4261-8b97-d8e19987a730",
            "type": "main",
            "index": 0
          },
          {
            "node": "eb84699b-e02c-4ef8-b37a-2ffaf395396e",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "c598080e-3716-4ac4-b1a3-e18c3acb4ba5": {
      "main": [
        [
          {
            "node": "Filter New/Valid Jobs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0bcf04e4-f4c6-4530-8f42-58baa8e7f19d": {
      "main": [
        [
          {
            "node": "eb84699b-e02c-4ef8-b37a-2ffaf395396e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "652bb452-ea0e-4719-813d-994436d15960": {
      "ai_languageModel": [
        [
          {
            "node": "d16a28e9-c6cd-4aa9-9ed6-c25f3a8a6ea6",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "45216826-c35d-4724-808a-0fc119fb60f4": {
      "main": [
        [
          {
            "node": "c598080e-3716-4ac4-b1a3-e18c3acb4ba5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bdabba9a-ba1f-4261-8b97-d8e19987a730": {
      "main": [
        [
          {
            "node": "0bcf04e4-f4c6-4530-8f42-58baa8e7f19d",
            "type": "main",
            "index": 0
          },
          {
            "node": "d16a28e9-c6cd-4aa9-9ed6-c25f3a8a6ea6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "65c33726-bacc-4180-b62f-15701697516d": {
      "ai_outputParser": [
        [
          {
            "node": "d16a28e9-c6cd-4aa9-9ed6-c25f3a8a6ea6",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "d16a28e9-c6cd-4aa9-9ed6-c25f3a8a6ea6": {
      "main": [
        [
          {
            "node": "eb84699b-e02c-4ef8-b37a-2ffaf395396e",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "050341ef-70f2-4e06-9e44-61d519a8910e": {
      "main": [
        [
          {
            "node": "c92e0da2-85ff-4a57-970f-1b9f636b8a1b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos18
Categoría-
Tipos de nodos11
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
Julian Kaiser

Julian Kaiser

@jksr

Full Stack Developer turned AI & Automation Engineer, implementing intelligent solutions with custom code, LLMs & n8n. Use my link to book a free 30-minute call to discuss your AI challenges and see if my services might be a good fit for your needs.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34