by Panth1823
Stop manually checking dozens of career pages. This workflow runs every morning, hits the public APIs of 8+ ATS platforms and job boards, normalizes every listing into a single clean schema, and syncs everything to Supabase and Google Sheets deduplicated and ready to query. Who it's for Job seekers, recruiters, or career platforms that want a consolidated, up-to-date feed of openings from specific companies without scraping, without API keys, and without paying for a jobs aggregator. How it works A Schedule Trigger fires daily at 8 AM IST A Company List code node defines all sources grouped by ATS type (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, RemoteOK, and board APIs like Remotive, Himalayas, Arbeitnow, Jobicy) A Prepare Request node builds the correct API URL and headers for each source, including multi-page pagination for SmartRecruiters (up to 500 jobs via offset) and Himalayas (up to 500 via page param) An HTTP Request node fetches all sources in batches of 5 A Parse + Enrich + Filter node normalizes all divergent JSON structures into a unified schema — resolving ISO country codes, Indian city detection, salary parsing across all formats, and domain-based filtering Deduplicated results are upserted to a Supabase (Postgres) table and written to Google Sheets ATS platforms supported Greenhouse, Lever, Ashby, Workable, SmartRecruiters, RemoteOK, Remotive, Himalayas, Arbeitnow, Jobicy Normalized output schema job_id, title, company, location, country, salary, job_type, apply_url, posted_at, source_ats Setup Open the Company List node and edit the sources array — add or remove companies and their ATS slugs Update ALLOWED_DOMAINS in the Parse node to filter by location or job type relevant to you Add your Supabase credentials in the Postgres node and confirm your table name and schema match the output fields Connect your Google Sheets credentials and set the target spreadsheet and sheet ID (Optional) Adjust pagination limits per source in the Prepare Request node Requirements Self-hosted or cloud n8n instance Supabase project with a jobs table Google Sheets with headers matching the normalized schema No external API keys required — all sources use public endpoints
by Redowan Ahmed Farhan
How it works User submits a form with a LinkedIn profile URL and number of posts to scrape Apify's LinkedIn Post Scraper actor fetches posts (no cookies required, ~$1 per 1,000 posts) Posts are looped one at a time for AI processing Groq AI verifies each post's authenticity and quality Authentic posts are rewritten by OpenAI in a fresh, engaging style Results (author, original post, rewritten post) are logged to Google Sheets Set up steps Estimated time: ~10 minutes Connect Apify via OAuth2 (requires an Apify account) Add your Groq API key in the Groq Chat Model node Add your OpenAI API key in the OpenAI Chat Model node Connect Google Sheets via OAuth2 and select your posts tracker spreadsheet Use responsibly and in accordance with LinkedIn's Terms of Service
by JJ Tham
Automate Google Ads Search Term Analysis and Send Insights to Slack Stop manually digging through endless Google Ads search term reports! 📊 This workflow puts your brand campaign analysis on autopilot, acting as an AI-powered performance marketer that works for you 24/7. This template fetches your recent search term data, uses AI to identify wasted ad spend and new keyword opportunities, and delivers a concise, actionable report directly to your Slack channel—complete with buttons to approve the changes. ⚙️ How it works This workflow connects to your Google Ads account to pull search term data from your brand campaigns. It then feeds this data to Google Gemini with a specific prompt to: Identify Non-Brand Keywords: Isolate all search terms that are not related to your brand. Calculate Wasted Spend: Find terms with zero conversions and sum up the total cost. Flag Opportunities: Highlight non-brand terms that are converting for manual review. Send to Slack: Format the findings into a beautiful, easy-to-read Slack message with interactive buttons to approve adding the wasteful terms as negative keywords. 👥 Who’s it for? PPC & SEM Managers: Save hours each week by automating the search query mining process. Performance Marketers: Instantly spot and plug budget leaks in your brand campaigns. Digital Marketing Agencies: Provide proactive, data-driven insights to clients with zero manual effort. 🛠️ How to set up This is an advanced workflow that requires several connection points. Setup involves connecting your Google Ads account, providing your Manager and Client IDs, specifying which campaign and brand terms to analyze, configuring the direct API call with your developer token, and finally connecting your Slack workspace. 👉 For a detailed, step-by-step guide, please refer to the yellow sticky note inside the workflow.
by Abelion Lavv
What this workflow does Transform YouTube videos into structured Active Learning study sheets using AI. This workflow extracts video metadata, transcribes audio with Google Gemini, applies the ICAP Framework (Interactive, Constructive, Active, Passive) for deep learning, and generates micro-goals, Cornell notes, Feynman explanations, and practice tasks—all automatically formatted in Notion. Perfect for students, educators, and lifelong learners who want to maximize retention from video content. How it works Submit YouTube URL - User enters video URL via form Extract metadata - Retrieves title, channel, publish date, and thumbnail Download & transcribe - Gets audio via RapidAPI and transcribes with Google Gemini AI analysis - Applies Active Learning framework to generate structured study content Create Notion page - Builds formatted page with all learning materials Setup requirements Credentials needed: YouTube Data API (OAuth2) Google Gemini API key RapidAPI key (YouTube Downloader API) Notion API integration Before running: Duplicate the Notion database template (link in workflow sticky note) Share database with your Notion integration Configure credentials in n8n Add your RapidAPI key in the HTTP node Add your Notion Database ID in the Build Page Structure node All configuration points are clearly marked with sticky notes in the workflow.
by Hassan
Quick Overview This workflow collects a blog brief via an n8n form, uses Anthropic Claude to generate an outline and write each section, saves both outline and article as formatted Google Docs in Google Drive, then creates a Contentful entry and posts the links to Google Sheets and Slack. How it works Receives a blog brief submission from an n8n Form Trigger with title, word count, keywords, links, and extra instructions. Normalizes the submission into a structured brief and appends it to a Google Sheets tracker. Calls the Anthropic Messages API (Claude) to generate a markdown outline, creates a dedicated Google Drive folder, and saves the outline as a formatted Google Doc. Splits the outline into H2 sections and calls Anthropic Claude once per section to write markdown content that incorporates the provided keywords and internal/external links. Aggregates all sections, assembles the full markdown article (title + intro + sections), and saves it as a formatted Google Doc in the same Google Drive folder. Uses Anthropic Claude to choose a short category, converts the markdown to Contentful Rich Text via a Google Cloud Function, and creates a new blogPost entry in Contentful. Updates the original Google Sheets row with the blog URL plus the Google Docs links, then sends a Slack message with the article details and links. Setup Connect credentials for Google Sheets and Google Drive, and update the target spreadsheet ID/sheet name and the parent Google Drive folder ID. Add an Anthropic (Claude) API key as an HTTP Header Auth credential and ensure the workflow can reach the Anthropic Messages API. Deploy/configure the Google Cloud Function endpoint that converts Markdown to Contentful Rich Text (or replace it with your own converter) and update the URL. Add Contentful Management API credentials, then replace CONTENTFUL_SPACE_ID_PLACEHOLDER (and environment if needed) and confirm the Contentful content type is named blogPost. Add Slack credentials and set SLACK_CHANNEL_ID_PLACEHOLDER to the channel where notifications should be posted.
by Felix
How it works I wanted to avoid the rush at end of month to log expenses. I tried existing expense apps but found them either too expensive for what they offer, or frustrating with inconsistent extraction results. That is why I built my own Telegram expense bot that: Lets users send receipt photos or PDFs via Telegram Automatically extracts vendor, amount, date, and category using AI Applies expense rules like partial reimbursement rates (for example, 80% for phone bills) Organizes expenses into monthly Google Sheets tabs Asks for clarification when the category is unclear Supports flexible descriptions via Telegram caption Sends a confirmation message with expense details The whole extraction process takes about 10 seconds and is fully GDPR compliant. No coding. No manual typing. Just snap and send. Step-by-step guide Initial Setup Import the JSON workflow Sign up and log in to easybits at https://extractor.easybits.tech Create a pipeline by uploading an example receipt and mapping the fields you want to extract: -- vendor_name -- total_amount -- currency -- transaction_date -- category -- extraction_confidence For more details, visit our Quick Start Guide Get Your easybits Credentials Once you have finalized your pipeline, go back to your dashboard and click Pipelines in the left sidebar Click View Pipeline on the pipeline you want to connect On the Pipeline Details page, you will find: API URL:** https://extractor.easybits.tech/api/pipelines/[YOUR_PIPELINE_ID] API Key:** Your unique authentication token Copy both values and integrate them into the "Extract with easybits" HTTP Request node To keep in mind: Each pipeline has its own API Key and Pipeline ID. If you have multiple pipelines (for example, one for receipts and one for invoices), you will need separate credentials for each. Important: To integrate your API Key, make sure to set it up in the following format: > Bearer [YOUR_API_KEY] Set Up Telegram Bot Open Telegram and search for @BotFather Send /newbot and follow the prompts Copy your Bot Token and add it to the Telegram credentials in n8n Connect Google Sheets Create a new spreadsheet for expenses Copy the Spreadsheet ID from the URL Update the Google Sheets nodes with your Spreadsheet ID Go Live Activate the workflow and send your first receipt photo to your Telegram bot
by Rapiwa
Who is this for? This workflow is for Shopify store owners, customer success, and marketing teams who want to automatically check customers’ WhatsApp numbers and send personalized messages with discount codes for canceled orders. It helps recover lost sales by reaching out with special offers. What This Workflow Does Automatically checks for canceled orders on a schedule Fetches canceled orders from Shopify Creates personalized recovery messages based on customer data Verifies customers’ WhatsApp numbers via Rapiwa Logs results in Google Sheets: “Verified & Sent” for successful messages, “Unverified & Not Sent” for unverified numbers Requirements Shopify store with API access enabled Shopify API credentials with access to orders and customer data Rapiwa account and a valid Bearer token Google account with Sheets access and OAuth2 credentials Setup plan Add your credentials Rapiwa: Create an HTTP Bearer credential in n8n and paste your token (example name: Rapiwa Bearer Auth). Google Sheets: Add an OAuth2 credential (example name: Google Sheets). Set up Shopify Replace your_shopify_domain with your real Shopify domain. Replace your_shop_access-token with your actual Shopify API token. Set up Google Sheets Update the example spreadsheet ID and sheet gid with your own. Make sure your sheet’s column headers match the mapping keys exactly—same spelling, case, and no extra spaces. Configure the Schedule Trigger Choose how often you want the workflow to check for canceled orders (daily, weekly, etc.). Check the HTTP Request nodes Verify endpoint: Should call Rapiwa’s verifyWhatsAppNumber. Send endpoint: Should use Rapiwa’s send-message API with your template (includes customer name, reorder link, discount code). Google Sheet Column Structure The Google Sheets nodes in the flow append rows with these column. Make sure the sheet headers match exactly. A Google Sheet formatted like this ➤ sample | Name | Number | Item Name | Coupon | Item Link | Validity | Status | | ------------ | ------------- | ------------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ---------- | ------ | | Abdul Mannan | 8801322827799 | Samsung Galaxy S24 Ultra 5G 256GB-512GB-1TB | REORDER5 | Re-order Link | verified | sent | | Abdul Mannan | 8801322827790 | Samsung Galaxy S24 Ultra 5G 256GB-512GB-1TB | REORDER5 | Re-order Link | unverified | not sent | Important Notes Do not hard-code API keys or tokens; always use n8n credentials. Google Sheets column header names must match the mapping keys used in the nodes. Trailing spaces are common accidental problems — trim them in the spreadsheet or adjust the mapping. Message templates reference - update templates if you need to reference different data. The workflow processes cancelled orders in batches to avoid rate limits. Adjust the batch size if needed. Useful Links Install Rapiwa**: How to install Rapiwa Dashboard:** https://app.rapiwa.com Official Website:** https://rapiwa.com Documentation:** https://docs.rapiwa.com Shopify API Documentation:** https://shopify.dev/docs/admin-api Support & Help WhatsApp**: Chat on WhatsApp Discord**: SpaGreen Community Facebook Group**: SpaGreen Support Website**: https://spagreen.net Developer Portfolio**: Codecanyon SpaGreen
by Davide
This workflow automates the process of converting delivery addresses into geographic coordinates and optimizes delivery routes for each carrier using Google Maps. Finally, the workflow outputs an optimized circular route that starts and ends at the base location. This workflow is particularly useful for: Logistics companies Courier services Delivery businesses Field service operations Fleet management teams It enables faster route planning, improves delivery efficiency, and provides a low-code automation solution that integrates directly with existing operational spreadsheets. Key Advantages 1. ✅ Automated Address Geocoding The workflow automatically converts delivery addresses into precise GPS coordinates using Google Maps APIs, eliminating manual data entry and reducing human errors. 2. ✅ Delivery Route Optimization By calculating the most efficient delivery order, the workflow helps drivers reduce travel time, fuel consumption, and operational costs. 3. ✅ Seamless Google Sheets Integration All delivery data is managed directly inside Google Sheets, making the system easy to use for logistics teams without requiring additional software. 4. ✅ Carrier-Based Delivery Grouping Deliveries are automatically grouped by carrier, allowing each driver or logistics operator to receive a dedicated optimized route. 5. ✅ Real-Time Data Processing The workflow dynamically processes only the deliveries scheduled for the current day, ensuring routes are always updated and relevant. 6. ✅ Scalable and Flexible The solution can easily scale to handle larger delivery volumes and can be adapted for different logistics operations, territories, or business models. 7. ✅ Reduced Operational Costs Optimized routes reduce unnecessary mileage, helping companies lower fuel expenses, vehicle wear, and delivery times. 8. ✅ Intelligent Distance Calculation The workflow uses Google Routes API for accurate driving distances and includes fallback logic to ensure continuity even if API responses fail. 9. ✅ Fully Automated Workflow Once configured, the entire process runs automatically with minimal manual intervention, improving productivity and operational reliability. 10. ✅ Easy Customization The workflow can be customized to support: Multiple warehouses Dynamic starting points Additional delivery constraints Traffic-aware routing Advanced optimization strategies How it works Manual trigger The workflow starts manually by clicking "Execute workflow". Fetch today’s deliveries Reads from a Google Sheet. Filters rows where DATE DELIVERY equals today’s date. Geocode each delivery address Loops through each delivery row. Calls the Google Maps Places API (textsearch) to get latitude and longitude. Updates the sheet’s LANG and LONG columns. Marks DONE = "x" to avoid reprocessing. Get start address location A fixed start address (e.g., warehouse) is geocoded once. Stores START ADDRESS, START LAT, START LNG. Filter already processed deliveries Reads the sheet again, filtering for today’s date and DONE = "x". These are fully geocoded deliveries ready for routing. Group deliveries by carrier Groups all delivery rows by NAME CARRIER. Optimize route for each carrier Runs a custom JavaScript routing algorithm: Uses Google Routes API for real driving distances. Implements a nearest neighbor heuristic + 2-opt optimization. Computes a circular route starting/ending at the warehouse. Outputs an ordered list of stops including the warehouse as start and end. Return optimized route The final route is returned as structured JSON. Can be further used for writing back to Sheets or displaying. Set up steps Google Sheets setup Create a Google Sheet with columns: row_number, NAME CARRIER, DATE DELIVERY, ADDRESS, LANG, LONG, DONE. Clone the example sheet. Note the documentId from the sheet’s URL. Google Sheets OAuth2 credentials In n8n, add a Google Sheets OAuth2 API credential. Use the same email that owns/edits the sheet. Google Maps API credentials Enable Places API and Routes API in Google Cloud Console. Create an API key with no restrictions or restrict it to the required APIs. In n8n, add an HTTP Query Auth credential: Key: key Value: your Google Maps API key. Update workflow configuration In the Google Sheets nodes (Get date delivery, Update Lat and Lng, Get addresses), replace the documentId with your own sheet ID. Ensure the sheet name (Foglio1 or gid=0) matches. Set start address In the Start address node (n8n-nodes-base.set), edit the START ADDRESS assignment to your warehouse/starting location. Adjust wait time The Wait node is set to 10 seconds to respect Google Maps API rate limits. Adjust if needed. Run the workflow Click "When clicking ‘Execute workflow’" button in n8n. The workflow geocodes new addresses, updates the sheet, and outputs an optimized route per carrier. 👉 Subscribe to my new YouTube channel. Here I’ll share videos and Shorts with practical tutorials and FREE templates for n8n. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by Yves Tkaczyk
Automated image processing for e-commerce product catalog Use cases Monitor a Google Drive folder, process each image based on the prompt defined in Workflow Configuration and save the new image to the specified output Google Drive folder. Maintain a processing log in Google Sheets. 👍 This use case can be extended to any scenario requiring batch image processing, for example, unifying the look and feel of team photos on a company website. How it works Trigger: Watches a Google Drive folder for new or updated files. Downloads the image, processes it using Google Gemini (Nano Banana), and uploads the new image to the specified output folder. How to use Google Drive and Google Sheets nodes: Create Google credentials with access to Google Drive and Google Sheets. Read more about Google Credentials. Update all Google Drive and Google Sheets nodes (6 nodes total) to use these credentials Gemini AI node: Create Google Gemini(PaLM) Api credentials. Read more about Google Gemini(PaLM) credentials. Update the Edit Image node to use the Gemini Api credentials. Create a Google Sheets spreadsheet following the steps in Google Sheets Configuration (see right ➡️). Ensure the spreadsheet can be accessed as Editor by the account used for the Google Credentials. Create input and output directories in Google Drive. Ensure these directories are accessible by the account used for the credentials. Update the File Created, File Updated and Workflow Configuration node following the steps in the green Notes (see right ➡️). Requirements Google account with Google API access Google AI Studio account with ability to create a Google Gemini API key. Basic n8n knowledge: understanding of triggers, expressions, and credential management Who’s it for Anyone wanting to batch process images for product catalog. Other use cases are applicable. Please reach out reach out if you need help customizing this workflow. 🔒 Security All credentials are stored securely using n8n's credential system. The only potentially sensitive information stored in the workflow is the Google Drive folder and Sheet IDs. These should be secured according to your organization’s needs. Need Help? Reach out on LinkedIn or Ask in the Forum!
by Yaron Been
Amazon Competitive Gap & Assortment Intelligence Workflow Description This workflow automatically scrapes competitor product data from Amazon and identifies gaps in your assortment, pricing, and positioning. It helps merchandising and product teams spot opportunities they are missing before competitors fill them. Overview This workflow uses Bright Data to scrape Amazon product pages, then normalizes the data and feeds it to AI for competitive gap analysis. It identifies: Missing product variants Bundle expansion ideas Positioning gaps Pricing weaknesses Each opportunity is scored and prioritized — high-impact gaps are routed to dedicated sheets, while standard opportunities are logged separately. All results are sent to Google Sheets dashboards for structured decision-making. Tools Used n8n**: Automation platform that orchestrates the workflow Bright Data**: Scrapes Amazon product data at scale without getting blocked OpenRouter**: AI-powered competitive clustering, gap detection, and opportunity scoring Google Sheets**: Logs missing variants, bundle opportunities, pricing gaps, and errors How to Install 1. Import the Workflow Download the .json file and import it into your n8n instance. 2. Configure Bright Data Add your Bright Data API credentials to the Bright Data node. 3. Configure OpenRouter Add your OpenRouter API key for AI competitive analysis. 4. Set Up Google Sheets Create a spreadsheet following the "Google Sheets Setup" sticky note inside the workflow. Connect each Google Sheets node to your document. 5. Customize Edit the configuration node to define: Target Amazon product URL Category scope Competitive depth Opportunity scoring thresholds Use Cases Merchandising Teams Discover product variants competitors carry that are missing from your catalog. Pricing Analysts Detect pricing gaps and positioning weaknesses relative to competitors in your category. Product Managers Find bundle and cross-sell opportunities based on real competitive data. Category Managers Track assortment gaps across an entire product category to prioritize expansion. Ecommerce Strategy Build a data-driven competitive intelligence layer for smarter assortment and pricing decisions. Connect with Me Website: https://www.nofluff.online YouTube: https://www.youtube.com/@YaronBeen/videos LinkedIn: https://www.linkedin.com/in/yaronbeen/ Get Bright Data: https://get.brightdata.com/1tndi4600b25 (Using this link supports my free workflows with a small commission) Tags #n8n #automation #brightdata #webscraping #competitiveanalysis #pricingintelligence #assortmentplanning #ecommerce #amazondata #productgaps #pricingstrategy #competitortracking #merchandising #bundleopportunities #n8nworkflow #workflow #nocode #businessintelligence #marketresearch #pricingoptimization #categorymanagement #retailintelligence #competitivelandscape #productexpansion #ecommerceautomation
by TAKUTO ISHIKAWA
Judge AI math RPG answers and update quest status in Google Sheets Who it's for This template is for educators, parents, or self-learners who want to gamify their study routines. This is Part 2 of the "AI Math RPG" system. It handles the quiz judgment and status updates without using expensive AI tokens for basic math checks. How it works When a user submits their answer via an n8n Form, this workflow searches Google Sheets for their pending quest. It uses a fast and reliable IF node to check if the user's answer matches the correct answer generated previously. If correct, it updates the quest status to solved in Google Sheets to prevent infinite EXP farming, and then uses a Basic LLM Chain to generate an enthusiastic, RPG-style victory fanfare. If incorrect, it returns a friendly "try again" message. How to set up Ensure you have set up Part 1 of this system (Generate AI math RPG quests from study logs). Connect your Google Sheets credential and replace ENTER_YOUR_SPREADSHEET_ID_HERE with your actual Sheet ID. Connect your OpenAI or OpenRouter credential in the LLM node. Open the "Quiz Answer Form" and enter your user ID and answer to test the battle! Requirements A Google account (for Google Sheets) An OpenAI or OpenRouter API key How to customize the workflow You can easily customize the "Generate Victory Message" prompt to match different themes, like a sci-fi battle, a magic school, or historical events!
by Kanishka Shrivastava
Quick overview This workflow receives a goal via webhook, generates three prompt candidates using Google Gemini, OpenRouter, and Groq, has Cohere evaluate and select the best prompt, then returns the result to the caller and stores the goal and winning prompt in Supabase. How it works Receives a POST webhook request containing a JSON body with a goal value. Sends the goal to three parallel prompt-engineering agents backed by Google Gemini, OpenRouter, and Groq to generate creative, marketing, and technical prompt candidates. Combines the three generated prompt candidates into a single structured payload. Uses a Cohere-powered evaluator to compare the candidates and return the best prompt (and a reason) as JSON. Responds to the webhook caller with the evaluator output. Creates a new row in a Supabase prompts table, saving the original goal and the selected best prompt. Setup Add credentials for Google Gemini (PaLM), OpenRouter, Groq, and Cohere so the agents and evaluator can run. Add your Supabase API credentials and ensure a prompts table exists with fields/columns for goal and best_prompt. Copy the production webhook URL and send POST requests with { "goal": "..." } from your client or source app.