AutomationFlowsSlack & Telegram › Only-new Remote Jobs to Google Sheets and Slack

Only-new Remote Jobs to Google Sheets and Slack

Only-new remote jobs to Google Sheets and Slack. Uses httpRequest, googleSheets. Scheduled trigger; 6 nodes.

Cron / scheduled trigger★★★★☆ complexity6 nodesHTTP RequestGoogle Sheets
Slack & Telegram Trigger: Cron / scheduled Nodes: 6 Complexity: ★★★★☆ Added:

This workflow follows the Google Sheets → 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": "Only-new remote jobs to Google Sheets and Slack",
  "nodes": [
    {
      "name": "Weekday schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        -520,
        40
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1,
                2,
                3,
                4,
                5
              ],
              "triggerAtHour": 8
            }
          ]
        }
      }
    },
    {
      "name": "Run Remote Jobs Monitor",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -260,
        40
      ],
      "parameters": {
        "method": "POST",
        "url": "https://api.apify.com/v2/actors/benthepythondev~remote-jobs-aggregator/run-sync-get-dataset-items",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "contentType": "raw",
        "rawContentType": "application/json",
        "body": "{\"searchKeywords\":\"python developer\",\"platforms\":[\"arbeitnow\",\"jobicy\",\"himalayas\",\"remoteok\",\"remotive\",\"workingnomads\"],\"locationKeywords\":[\"Europe\",\"Worldwide\"],\"onlyNew\":true,\"monitorId\":\"sheets-slack-python-europe\",\"firstRunMode\":\"seedOnly\",\"maxJobsPerPlatform\":20,\"maxTotalJobs\":30}",
        "options": {
          "timeout": 300000
        }
      }
    },
    {
      "name": "Prepare alert and sheet rows",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        0,
        40
      ],
      "parameters": {
        "jsCode": "const input = $input.all().map(item => item.json);\nconst rows = input.length === 1 && Array.isArray(input[0]) ? input[0] : input;\nconst jobs = rows.filter(job => job && job.is_new && (job.job_id || job.url));\nif (!jobs.length) return [];\nconst preview = jobs.slice(0, 12).map((job, index) => `${index + 1}. ${job.title || 'Untitled role'} at ${job.company || 'Unknown company'}\\n${job.location || 'Remote'} | ${job.platform || 'source'} | ${job.seniority || 'unspecified'}\\n${job.url || ''}`).join('\\n\\n');\nconst sheetRows = jobs.map(job => ({\n  job_id: job.job_id || '',\n  title: job.title || '',\n  company: job.company || '',\n  location: job.location || '',\n  salary: job.salary || '',\n  job_type: job.job_type || '',\n  seniority: job.seniority || '',\n  platform: job.platform || '',\n  posted_date: job.posted_date || '',\n  first_seen_at: job.first_seen_at || '',\n  monitor_id: job.monitor_id || '',\n  url: job.url || ''\n}));\nreturn [{ json: { count: jobs.length, slackText: `*${jobs.length} new remote jobs*\\n\\n${preview}\\n\\nActor: https://apify.com/benthepythondev/remote-jobs-aggregator`, sheetRows } }];"
      }
    },
    {
      "name": "Slack digest webhook",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        280,
        -80
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/REPLACE/WITH/YOUR_WEBHOOK",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"text\": {{ JSON.stringify($json.slackText) }}\n}",
        "options": {}
      }
    },
    {
      "name": "Split sheet rows",
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        280,
        160
      ],
      "parameters": {
        "fieldToSplitOut": "sheetRows",
        "options": {}
      }
    },
    {
      "name": "Append to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        540,
        160
      ],
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "REPLACE_GOOGLE_SHEET_ID"
        },
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Remote Jobs"
        },
        "columns": {
          "mappingMode": "autoMapInputData",
          "value": {}
        },
        "options": {}
      }
    }
  ],
  "connections": {
    "Weekday schedule": {
      "main": [
        [
          {
            "node": "Run Remote Jobs Monitor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run Remote Jobs Monitor": {
      "main": [
        [
          {
            "node": "Prepare alert and sheet rows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare alert and sheet rows": {
      "main": [
        [
          {
            "node": "Slack digest webhook",
            "type": "main",
            "index": 0
          },
          {
            "node": "Split sheet rows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split sheet rows": {
      "main": [
        [
          {
            "node": "Append to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "remote-jobs-only-new-sheets-slack-v1",
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}
Pro

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

About this workflow

Only-new remote jobs to Google Sheets and Slack. Uses httpRequest, googleSheets. Scheduled trigger; 6 nodes.

Source: https://gist.github.com/benthepythondev00/af0b724d2fb2c2fb503d4d035ba5e949 — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

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

Slack & Telegram

Auto Hunt. Uses httpRequest, googleSheets, rssFeedRead, telegram. Scheduled trigger; 78 nodes.

HTTP Request, Google Sheets, RSS Feed Read +1
Slack & Telegram

Auto-Hunt. Uses httpRequest, googleSheets, rssFeedRead, telegram. Scheduled trigger; 78 nodes.

HTTP Request, Google Sheets, RSS Feed Read +1
Slack & Telegram

. Uses googleSheets, telegram, httpRequest, wise. Scheduled trigger; 36 nodes.

Google Sheets, Telegram, HTTP Request +2
Slack & Telegram

Elevate your shopping experience with an AI-driven personal assistant that lives right in your WhatsApp. This template automates the entire lifecycle of a shopping list—from intelligent intake and liv

HTTP Request, Google Sheets, N8N Nodes Wati
Slack & Telegram

This workflow automates plant care reminders and records using Google Sheets, Telegram, and OpenWeather API.

Google Sheets, HTTP Request, Telegram