AutomationFlowsGeneral › Automated Job Search with RSS & AI

Automated Job Search with RSS & AI

Original n8n title: Job Seeking

Job Seeking. Uses scheduleTrigger, rssFeedRead, googleSheets, httpRequest. Scheduled trigger; 12 nodes.

Cron / scheduled trigger★★★★☆ complexityAI-powered12 nodesRSS Feed ReadGoogle SheetsHTTP RequestOpenAI
General Trigger: Cron / scheduled Nodes: 12 Complexity: ★★★★☆ AI nodes: yes 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": "Job Seeking",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        0,
        0
      ],
      "id": "70abe954-bdaf-42d8-8179-b49ec15fa636",
      "name": "Schedule Trigger",
      "disabled": true
    },
    {
      "parameters": {
        "url": "https://rss.app/feeds/eLi2CzXTaHeeHkNE.xml",
        "options": {}
      },
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.1,
      "position": [
        220,
        0
      ],
      "id": "fa920cdd-3193-48a7-ac3b-0084abe9d980",
      "name": "RSS Read"
    },
    {
      "parameters": {
        "operation": "appendOrUpdate",
        "documentId": {
          "__rl": true,
          "value": "1eyeda4g5YNjR80tayNwZihv-_O7GY8jEGeHki7cCdAY",
          "mode": "list",
          "cachedResultName": "LinkedIn Job Listings",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1eyeda4g5YNjR80tayNwZihv-_O7GY8jEGeHki7cCdAY/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1eyeda4g5YNjR80tayNwZihv-_O7GY8jEGeHki7cCdAY/edit#gid=0"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Title": "={{ $('RSS Read').item.json.title }}",
            "Link": "={{ $('RSS Read').item.json.link }}",
            "Date": "={{ $('RSS Read').item.json.pubDate }}",
            "Company Name": "={{ $('OpenAI').item.json.message.content.company_name }}",
            "Benefits": "={{ $('OpenAI').item.json.message.content.benefits }}",
            "Job Description": "={{ $('OpenAI').item.json.message.content.job_description }}",
            "Rating": "={{ $('OpenAI1').item.json.choices[0].message.content.score }}",
            "Cover Letter": "={{ $json.choices[0].message.content.cover_letter }}"
          },
          "matchingColumns": [
            "Link"
          ],
          "schema": [
            {
              "id": "Title",
              "displayName": "Title",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Description",
              "displayName": "Job Description",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Link",
              "displayName": "Link",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Date",
              "displayName": "Date",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Rating",
              "displayName": "Rating",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Name",
              "displayName": "Company Name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Benefits",
              "displayName": "Benefits",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Description",
              "displayName": "Job Description",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Cover Letter",
              "displayName": "Cover Letter",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        2020,
        0
      ],
      "id": "68a81f07-271f-481b-9856-4c57a072a9a2",
      "name": "Google Sheets",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "url": "={{ $('RSS Read').item.json.link }}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        660,
        0
      ],
      "id": "6301a35d-0463-432d-855d-7f840e6fe84e",
      "name": "HTTP Request"
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "gpt-4o-mini",
          "mode": "list",
          "cachedResultName": "GPT-4O-MINI"
        },
        "messages": {
          "values": [
            {
              "content": "You're an intelligent bot capable of pulling out data from a job listing site.",
              "role": "system"
            },
            {
              "content": "=Here's the job site:\n {{ $json.data }}"
            },
            {
              "content": "Please output the data in JSON format, using the following structure:\n\n{\n\"company_name\": \"\",\n\"benefits\": \"\", //401K plan, medical, etc, please separate by commas\n\"job_description\": \"\", //please make it 200 characters or less\n\"location\": \"\"\n}",
              "role": "assistant"
            }
          ]
        },
        "jsonOutput": true,
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        880,
        0
      ],
      "id": "61f3753e-587c-4d0b-93fa-c1ba14eb09b8",
      "name": "OpenAI",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "gpt-4o-mini",
          "mode": "list",
          "cachedResultName": "GPT-4O-MINI"
        },
        "messages": {
          "values": [
            {
              "content": "You're an intelligent bot perfect at creating cover letters for a job. Please take the candidates resume and create a customized cover letter to the job.",
              "role": "system"
            },
            {
              "content": "=Here's the job listing details:\nTitle: {{ $('RSS Read').item.json.title }}\nDescription: {{ $('OpenAI').item.json.message.content.job_description }}\nName: {{ $('OpenAI').item.json.message.content.company_name }}\nLocation: {{ $('OpenAI').item.json.message.content.location }}\n\nHere is the candidates skill set:\n\ud83d\udcc4 SAMPLE RESUME\n\nAlex Morgan\n\ud83d\udccd Toronto, ON, Canada | \ud83d\udce7 alex.morgan@email.com | \ud83d\udcde (123) 456-7890 | \ud83c\udf10 linkedin.com/in/alexmorgan | github.com/alexmseo (optional if portfolio on GitHub)\n\n\ud83c\udf93 Education\nBachelor of Business Administration \u2013 Marketing\nUniversity of Toronto, Toronto, ON\nGraduated: April 2025 | GPA: 3.7/4.0\n\nRelevant coursework:\n\nDigital Marketing Strategies\n\nData Analytics in Marketing\n\nConsumer Behaviour\n\nSEO & Content Marketing (elective)\n\n\ud83d\udcbc Experience\nSEO Intern\nGrowthRocket Agency, Remote | Jan 2025 \u2013 Apr 2025\n\nConducted technical SEO audits for 10+ client websites using tools like Screaming Frog, Ahrefs, and Google Search Console.\n\nImplemented structured data (Schema.org) to improve click-through rates in search results.\n\nOptimized on-page elements such as meta titles, descriptions, H1-H3 tags, internal linking, and image alt text.\n\nCollaborated with the content team to develop keyword-rich blog content and updated outdated pages.\n\nImproved page speed performance using tools like PageSpeed Insights and GTmetrix.\n\nFreelance SEO Consultant\nSelf-Employed | May 2024 \u2013 Present\n\nHelped 3 small local businesses optimize their websites for search engines, increasing organic traffic by 30\u201370% within 3 months.\n\nConducted keyword research and competitive analysis to guide content creation.\n\nSet up Google Analytics 4 and Google Search Console for performance monitoring.\n\n\ud83d\udee0 Skills\nSEO Tools: Google Search Console, GA4, Ahrefs, Screaming Frog, SEMrush, Yoast SEO\nCMS: WordPress, Wix\nTechnical SEO: Site audits, page speed optimization, canonical tags, indexing & crawling\nOn-Page SEO: Meta tags, internal linking, content structure, image optimization\nSoft Skills: Communication, problem-solving, attention to detail, teamwork\n\n\ud83d\udcda Certifications\nGoogle Analytics Certification \u2013 Google\n\nSEO Fundamentals \u2013 Semrush Academy\n\nTechnical SEO Certification \u2013 Moz (or any other you\u2019ve done)"
            },
            {
              "content": "Please return JSON data structured the following way:\n{\n\"cover_letter\": \"\"\n}",
              "role": "assistant"
            }
          ]
        },
        "simplify": false,
        "jsonOutput": true,
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        1640,
        0
      ],
      "id": "3a151c6e-d7d2-4a0d-bef7-8c7a4865e4e4",
      "name": "OpenAI2",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "gpt-4o-mini",
          "mode": "list",
          "cachedResultName": "GPT-4O-MINI"
        },
        "messages": {
          "values": [
            {
              "content": "You're an intelligent bot rating how closely a job listing is to a candidates skill set, on a score of 5.\nGive the following points:\na) 3 points for skills matching, 1 point for mostly matching\nb) 1 point for it being the right experience level\nc) 1 point for it being a remote position\nd) 1 point if past job experience matches the job role\ne) 1 point if the skills on the resume align with the job\nf) 3 points if I meet the job qualifications posted based on my resume",
              "role": "system"
            },
            {
              "content": "=Here's the job listing details:\n{{ $('HTTP Request').item.json.data }}\n\nHere is the candidates skill set:\n\ud83d\udcc4 SAMPLE RESUME\n\nAlex Morgan\n\ud83d\udccd Toronto, ON, Canada | \ud83d\udce7 alex.morgan@email.com | \ud83d\udcde (123) 456-7890 | \ud83c\udf10 linkedin.com/in/alexmorgan | github.com/alexmseo (optional if portfolio on GitHub)\n\n\ud83c\udf93 Education\nBachelor of Business Administration \u2013 Marketing\nUniversity of Toronto, Toronto, ON\nGraduated: April 2025 | GPA: 3.7/4.0\n\nRelevant coursework:\n\nDigital Marketing Strategies\n\nData Analytics in Marketing\n\nConsumer Behaviour\n\nSEO & Content Marketing (elective)\n\n\ud83d\udcbc Experience\nSEO Intern\nGrowthRocket Agency, Remote | Jan 2025 \u2013 Apr 2025\n\nConducted technical SEO audits for 10+ client websites using tools like Screaming Frog, Ahrefs, and Google Search Console.\n\nImplemented structured data (Schema.org) to improve click-through rates in search results.\n\nOptimized on-page elements such as meta titles, descriptions, H1-H3 tags, internal linking, and image alt text.\n\nCollaborated with the content team to develop keyword-rich blog content and updated outdated pages.\n\nImproved page speed performance using tools like PageSpeed Insights and GTmetrix.\n\nFreelance SEO Consultant\nSelf-Employed | May 2024 \u2013 Present\n\nHelped 3 small local businesses optimize their websites for search engines, increasing organic traffic by 30\u201370% within 3 months.\n\nConducted keyword research and competitive analysis to guide content creation.\n\nSet up Google Analytics 4 and Google Search Console for performance monitoring.\n\n\ud83d\udee0 Skills\nSEO Tools: Google Search Console, GA4, Ahrefs, Screaming Frog, SEMrush, Yoast SEO\nCMS: WordPress, Wix\nTechnical SEO: Site audits, page speed optimization, canonical tags, indexing & crawling\nOn-Page SEO: Meta tags, internal linking, content structure, image optimization\nSoft Skills: Communication, problem-solving, attention to detail, teamwork\n\n\ud83d\udcda Certifications\nGoogle Analytics Certification \u2013 Google\n\nSEO Fundamentals \u2013 Semrush Academy\n\nTechnical SEO Certification \u2013 Moz (or any other you\u2019ve done)"
            },
            {
              "content": "Please return JSON data structured the following way:\n{\n\"score\": \"\"\n}",
              "role": "assistant"
            }
          ]
        },
        "simplify": false,
        "jsonOutput": true,
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        1260,
        0
      ],
      "id": "12e09fd7-69d8-4877-8ab6-1382c0b16f8b",
      "name": "OpenAI1",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "maxItems": 3
      },
      "type": "n8n-nodes-base.limit",
      "typeVersion": 1,
      "position": [
        440,
        0
      ],
      "id": "756431ae-9a71-45c9-877a-0d7936dfb493",
      "name": "Limit"
    },
    {
      "parameters": {
        "url": "https://rss.app/feeds/eLi2CzXTaHeeHkNE.xml",
        "options": {}
      },
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.1,
      "position": [
        1880,
        -600
      ],
      "id": "9d71a010-6e33-4be6-af68-89cc327c513b",
      "name": "RSS Read1"
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        1200,
        -600
      ],
      "id": "880cdba7-9edc-4c1d-a8b9-c11badc6eb6b",
      "name": "Schedule Trigger1"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "993ff775-0e35-4844-8b30-6d19f605cbfa",
              "name": "RSS feeds",
              "value": "[\"https://rss.app/feeds/eLi2CzXTaHeeHkNE.xml\", \"https://rss.app/feeds/eLi2CzXTaHeeHkNE.xml\"]",
              "type": "array"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1420,
        -600
      ],
      "id": "be3d2736-2c5b-4a7d-9242-af1e6e20ce4c",
      "name": "Edit Fields"
    },
    {
      "parameters": {
        "fieldToSplitOut": "['RSS feeds']",
        "options": {}
      },
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        1640,
        -600
      ],
      "id": "334a89b0-205f-4553-a0ac-a2cf77c0f5fb",
      "name": "Split Out"
    }
  ],
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "RSS Read",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Read": {
      "main": [
        [
          {
            "node": "Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI": {
      "main": [
        [
          {
            "node": "OpenAI1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI1": {
      "main": [
        [
          {
            "node": "OpenAI2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI2": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger1": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "RSS Read1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e287db00-0893-4a6b-9b7e-9d93b417f882",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "19IYicaNGbj5isMV",
  "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

How this works

This workflow automates job hunting by scanning RSS feeds from job boards like Indeed or LinkedIn, extracting new postings, and using OpenAI to generate personalised cover letters and summarise opportunities tailored to your skills. It's ideal for professionals actively seeking roles in competitive markets, saving hours of manual searching and application prep each week. The key step involves AI analysis of job descriptions to match them against your profile stored in Google Sheets, ensuring only relevant positions trigger notifications or automated submissions.

Use this when you're job searching consistently but lack time to monitor multiple sources daily, especially for targeted industries with frequent postings. Avoid it for one-off applications or if you prefer full control over customising every response, as the AI outputs may need tweaks. Common variations include adding email alerts via integrations or filtering by location and salary thresholds in the Google Sheets setup.

About this workflow

Job Seeking. Uses scheduleTrigger, rssFeedRead, googleSheets, httpRequest. Scheduled trigger; 12 nodes.

Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

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

General

RoboNuggets - Faceless POV AI Machine (R24). Uses scheduleTrigger, googleSheets, chainLlm, lmChatOpenAi. Scheduled trigger; 31 nodes.

Google Sheets, Chain Llm, OpenAI Chat +5
General

Video Automation (images only). Uses chainLlm, lmChatOpenAi, outputParserStructured, splitOut. Scheduled trigger; 28 nodes.

Chain Llm, OpenAI Chat, Output Parser Structured +4
General

Finance Alert. Uses rssFeedRead, openAi, httpRequest. Scheduled trigger; 11 nodes.

RSS Feed Read, OpenAI, HTTP Request
General

PPC Thievery. Uses manualTrigger, googleDrive, stickyNote, httpRequest. Event-driven trigger; 28 nodes.

Google Drive, HTTP Request, OpenAI +1
General

AI Facebook Ad Spy Tool. Uses manualTrigger, httpRequest, googleDrive, splitInBatches. Event-driven trigger; 25 nodes.

HTTP Request, Google Drive, OpenAI +1