by Hemanth Arety
Automatically fetch, curate, and distribute Reddit content digests using AI-powered filtering. This workflow monitors multiple subreddits, ranks posts by relevance, removes spam and duplicates, then delivers beautifully formatted digests to Telegram, Discord, or Slack. Who's it for Perfect for content creators tracking trends, marketers monitoring discussions, researchers following specific topics, and community managers staying informed. Anyone who wants high-quality Reddit updates without manually browsing multiple subreddits. How it works The workflow fetches top posts from your chosen subreddits using Reddit's JSON API (no authentication required). Posts are cleaned, deduplicated, and filtered by upvote threshold and custom keywords. An AI model (Google Gemini, OpenAI, or Claude) then ranks remaining posts by relevance, filters out low-quality content, and generates a formatted digest. The final output is delivered to your preferred messaging platform on a schedule or on-demand. Setup requirements n8n version 1.0+ AI provider API key (Google Gemini recommended - has free tier) At least one messaging platform configured: Telegram bot token + chat ID Discord webhook URL Slack OAuth token + channel access How to set up Open the Configuration node and edit subreddit list, post counts, and keywords Configure the Schedule Trigger or use manual execution Add your AI provider credentials in the AI Content Curator node Enable and configure your preferred delivery platform (Telegram/Discord/Slack) Test with manual execution, then activate the workflow Customization options Subreddits**: Add unlimited subreddits to monitor (comma-separated) Time filters**: Choose from hour, day, week, month, year, or all-time top posts Keywords**: Set focus keywords to prioritize and exclude keywords to filter out Post count**: Adjust how many posts to fetch vs. how many appear in final digest AI prompt**: Customize ranking criteria and output format in the AI node Schedule**: Use cron expressions for hourly, daily, or weekly digests Output format**: Modify the formatting code to match your brand style Add email notifications, database storage, or RSS feed generation by extending the workflow with additional nodes.
by Mark Ma
How it works This workflow is your personal CEO Brain. Every Saturday night, it automatically collects the past week’s activity across: 📩 Gmail: filters out spam, promos, receipts, etc. 📅 Google Calendar: grabs past week and upcoming month 🗒️ Notion Weekly Plan: pulls and analyzes a photo of your weekly plan (e.g., taken from a paper planner/notebook) using GPT-4o 🎯 Notion OKRs: fetches quarterly OKRs and formats them for summary It sends all the data to GPT-4.1, which generates a smart weekly report — including progress check, misalignments, overdue follow-ups, and next steps — then emails it to you as a Weekly OKR Report. Set up steps 🧠 Add your Gmail, Google Calendar, Notion, and OpenAI credentials 📅 The Notion Weekly Plan should have a date property and an image field that holds a photo of your planner/notebook page 🎯 The Notion OKR database should include objective, key result, and status fields 🔁 Schedule is preset to every Saturday at 20:30 HK time (cron 0 30 20 * * 6). Also set the workflow timezone in n8n and, if self-hosting, the server/container TZ (e.g., TZ=Asia/Hong_Kong) to ensure correct triggering 💬 You can modify the AI prompts inside the LLM nodes for more customized outputs
by Avkash Kakdiya
How it works This workflow starts whenever a new lead is submitted through Typeform. It cleans and stores the raw lead data, checks if the email is business-related (not Gmail), and then uses AI to enrich the lead with company details. After enrichment, the workflow scores the lead with AI, updates your HubSpot CRM, and saves everything neatly into Google Sheets for tracking and reporting. Step-by-step Capture New Lead Triggered by a new Typeform submission. Collects basic details: Name, Email, Phone, and Message. Saves raw lead data into a Google Sheet for backup. Stores the basic info in Airtable (avoids duplicates by email). Format & Filter Leads Formats the incoming data into a clean structure. Filters out non-business emails (e.g., Gmail) so only qualified leads continue. Enrich Company Information Uses AI (GPT-4o-mini) to enrich the lead’s company data based on email domain. Returns details like: Company Name, Industry, Headquarters, Employee Count, Website, LinkedIn, and Description. Merges this information with the original lead profile and adds metadata (timestamp, workflow ID). Score the Lead AI analyzes the enriched profile and assigns a lead score (1–10). Scoring considers industry fit, company size, contact source, and domain reputation. Update CRM & Sheets Sends the enriched lead with score to HubSpot CRM. Updates company details, contact info, and custom properties (lead_score, LinkedIn, description). Logs the fully enriched lead in a Google Sheet for tracking. Why use this? Automatically enriches and scores every incoming lead. Filters out low-value (non-business) emails before wasting CRM space. Keeps HubSpot CRM up to date with the latest company and contact info. Maintains both raw and enriched lead data in Google Sheets for easy reporting. Saves your team hours of manual research and ensures consistent, AI-driven lead qualification.
by Bilel Aroua
👥 Who is this for? Creators, marketers, and brands that want to turn a single product photo into premium motion clips, then optionally publish to Instagram/TikTok/YouTube via LATE. No editing skills required. ❓ What problem does it solve? Producing short vertical ads from a static packshot takes time (retouching, motion design, soundtrack, publishing). This workflow automates the entire process: image enhancement → cinematic motion → optional upscale → soundtrack → share. 🛠️ What this workflow does Collects a product photo via Telegram. Generates two refined edit prompts + two motion prompts using multi-agent Gemini orchestration. Creates two edited images with Fal.ai Gemini-Flash (image edit). Renders two 5s vertical videos with Kling (via fal.run queue). Auto-stitches them (FFmpeg API) and optionally upscales with Topaz. Generates a clean ambient soundtrack with MMAudio. Sends previews + final links back on Telegram. Optionally publishes to Instagram, TikTok, YouTube Shorts, and more via LATE. ⚡ Setup Telegram**: Bot token (Telegram node). Fal.ai**: HTTP Header Auth (Authorization: Bearer <FAL_API_KEY>) for Gemini-Flash edit, Kling queue, FFmpeg compose, Topaz upscale, and MMAudio. Google Gemini** (PaLM credential) for AI agents. ImgBB**: API key for uploading original/edited images. LATE: create an account at **getlate.dev and use your API key for publishing (optional). ▶️ How to use Start the workflow and DM your bot a clear product photo (jpg/jpeg/webp). Approve the two still concepts when prompted in Telegram. The orchestrator generates cinematic motion prompts and queues Kling renders. Receive two motion previews, then a stitched final (upscaled + soundtrack). Choose to auto-publish to Instagram/TikTok/YouTube via LATE (optional). 🎨 How to customize Art Direction** → tweak the “Art Director” system message (lighting, backgrounds, grading). Motion Flavor** → adjust the “Motion Designer” vocabulary for different camera moves/dynamics. Durations/Aspect** → default is 9:16, 5s; you can change Kling duration. Soundtrack** → edit the MMAudio prompt to reflect your brand’s sonic identity. Publishing** → enable/disable LATE targets; customize captions/hashtags. ✅ Prerequisites A Telegram bot created via @BotFather. A Fal.ai account + API key. An ImgBB account + API key. (Optional) a LATE account with connected social profiles — sign up at getlate.dev. 💡 Detailed technical notes, architecture, and step-by-step flow explanation are included as sticky notes inside this workflow. 🆘 Support If you need help setting up or customizing this workflow: 📧 Email: bilsimaging@gmail.com 🌐 Website: bilsimaging.com I can provide guidance, troubleshooting, or custom extra workflow adaptations.
by Rahul Joshi
Description Automates daily EOD summaries from Jira issues into an Excel sheet, then compiles a weekly summary using Azure OpenAI (GPT-4o-mini) and delivers it to stakeholders via email. Gain consistent reporting, clear insights, and hands-free delivery. ✨📧 What This Template Does Fetches Jira issues and extracts key fields. 🧩 Generates End‑of‑Day summaries and stores them in Excel daily. 📄 Aggregates the week’s EOD data from Excel. 📚 Creates a weekly summary using Azure OpenAI (GPT-4o-mini). 🤖 Delivers the weekly report to stakeholders via email. 📬 Key Benefits Saves time with fully automated daily and weekly reporting. ⏱️ Ensures consistent, structured summaries every time. 📏 Improves clarity for stakeholders with readable insights. 🪄 Produces mobile-friendly email summaries for quick consumption. 📱 No-code customization inside n8n. 🛠 Features Jira issue ingestion and transformation. Daily EOD summary generation and Excel storage. Weekly AI summarization with Azure OpenAI (GPT-4o-mini). Styled HTML email output to stakeholders. Scheduling for hands-free execution. Requirements An n8n instance (cloud or self-hosted). Jira access to read issues. Azure OpenAI (GPT-4o-mini) for weekly AI summarization. Email service (Gmail/SMTP) configured in n8n credentials. Excel/Sheet storage set up to append and read daily EOD entries. Target Audience Engineering and product teams needing routine summaries. Project managers tracking daily progress. Operations teams consolidating weekly reporting. Stakeholders who prefer clean email digests. Step-by-Step Setup Instructions Jira: Connect your Jira credentials and confirm issue read access. Azure OpenAI: Deploy GPT-4o-mini and add Azure OpenAI credentials in n8n. Gmail/SMTP: Connect your email account in n8n Credentials and authorize sending. Excel/Sheet: Configure the sheet used to store daily EOD summaries. Import the workflow, assign credentials to nodes, replace placeholders, then run and schedule. Security Best Practices Use scoped API tokens for Jira with read-only permissions. 🔐 Store Azure OpenAI and email credentials in n8n’s encrypted credentials manager. 🧯 Limit email recipients to approved stakeholder lists. 🚦 Review logs regularly and rotate credentials on a schedule. ♻
by Typhoon Team
This n8n template demonstrates how to use Typhoon OCR + LLM to digitize business cards, enrich the extracted details, and save them directly into Google Sheets or any CRM. It works with both Thai and English business cards and even includes an optional step to draft greeting emails automatically. Use cases: Automatically capture leads at events, enrich contact details before saving them into your CRM, or simply keep a structured database of your professional network. Good to know Two versions of the workflow are provided: 🟢 Without Search API → cost-free option using only Typhoon OCR + LLM 🔵 With Search API → adds Google Search enrichment for richer profiles (may incur API costs via SerpAPI) The Send Email step is optional — include it if you want to follow up instantly, or disable it if not needed. Typhoon provides a free API for anyone to sign up and use → opentyphoon.ai How it works A form submission triggers the workflow with a business card image (JPG/PNG). Typhoon OCR extracts text from the card (supports Thai & English). Typhoon LLM parses the extracted text into structured JSON fields (e.g., name, job title, organization, email). Depending on your chosen path: Version 1: Typhoon LLM enriches the record with job type, level, and sector. Version 2: The workflow calls the Search API (via SerpAPI) to add a profile/company summary. The cleaned and enriched contact is saved to Google Sheets (can be swapped with your preferred CRM or database). (Optional) Typhoon LLM drafts a short, friendly greeting email, which can be sent automatically via Gmail. How to use The included form trigger is just one example. You can replace it with: A webhook for uploads A file drop in cloud storage Or even a manual trigger for testing You can easily change the destination from Google Sheets to HubSpot, Notion, Airtable, or Salesforce. The enrichment prompt is customizable — adjust it to classify contacts based on your organization’s needs. Requirements Typhoon API key Google Sheets API credentials + a prepared spreadsheet (Optional) Gmail API credentials for sending emails (Optional) SerpAPI key for the Search API enrichment path Customising this workflow This AI-powered business card reader can be adapted to many scenarios: Event lead capture: Collect cards at conferences and sync them to your CRM automatically. Sales enablement: Draft instant greeting emails for new contacts. Networking: Keep a clean and enriched database of your professional connections.
by Harry Siggins
This n8n template automatically processes your industry newsletters and creates AI-powered intelligence briefs that filter signal from noise. Perfect for busy professionals who need to stay informed without information overload, it delivers structured insights directly to Slack while optionally saving content questions to Notion. Who's it for Busy executives, product managers, and content creators at growing companies who subscribe to multiple industry newsletters but lack time to read them all. Ideal for teams that need to spot trends, generate content ideas, and share curated insights without drowning in information. How it works The workflow runs daily to fetch labeled emails from Gmail, combines all newsletter content, and sends it to an AI agent for intelligent analysis. The AI filters developments through your specific business lens, identifies only operationally relevant insights, and generates thought-provoking questions for content creation. Results are formatted as rich Slack messages using Block Kit, with optional Notion integration for tracking content ideas. Requirements Gmail account with newsletter labeling system OpenRouter API key for AI analysis (costs approximately $0.01-0.05 per run) or API key for a specific LLM Slack workspace with bot permissions for message posting Notion account with database setup (optional, for content question tracking) Perplexity API key (optional, for additional AI research capabilities) How to set up 1 Connect your Gmail, OpenRouter, and Slack credentials through n8n's secure credential system. Create a Gmail label for newsletters you want analyzed and setup in the "Get Labeled Newsletters" node. Update the Slack channel ID in the "Send to Slack" node. The template comes pre-configured with sample settings for tech companies, so you can run it immediately after credential setup. How to customize the workflow Edit the "Configuration" node to match your industry and audience - change the 13 pre-defined fields including target audience, business context, relevance filters, and content pillars. Adjust the cron expression in the trigger node for your timezone. Modify the Slack formatting code to change output appearance, or add additional destination nodes for email, Teams, or Discord. Remove Notion nodes if you only need Slack output. The AI analysis framework is fully customizable through the Configuration node, allowing you to adapt from the default tech company focus to any industry including healthcare, finance, marketing, or consulting.
by Tsubasa Shukuwa
How it works This workflow automatically fetches the latest public grant information from the Ministry of Health, Labour and Welfare (MHLW) RSS feed. It uses AI to summarize and structure each grant post into a clear format, stores the results in Google Sheets, and sends a formatted HTML summary via Gmail. Workflow summary Schedule Trigger – Runs the flow daily or weekly. RSS Feed Reader – Fetches the latest MHLW news and updates. Text Classifier (AI) – Categorizes the item as “Grant/Subsidy”, “Labor-related”, or “Other”. AI Agent – Extracts structured data such as title, summary, deadline, amount, target, and URL. Google Sheets – Appends or updates the database using the grant title as the key. Code Node – Builds an HTML report summarizing new entries. Gmail – Sends a daily digest email to your inbox. Setup steps Add your OpenRouter API key as a credential (used in the AI Agent). Replace the Google Sheets ID and sheet name with your own. Update the recipient email address in the Gmail node. Adjust the schedule trigger to match your preferred frequency. (Optional) Add more RSS feeds if you want to monitor other sources. Ideal for Consultants or administrators tracking subsidy and grant programs Small business owners who want automatic updates Anyone who wants a daily AI-summarized government grant digest ⚙️ Note: Detailed explanations and setup hints are included as Sticky Notes above each node inside the workflow.
by Rapiwa
Who Is This For? This n8n automation workflow is designed for sales teams, client managers, consultants, or anyone who regularly schedules and follows up on meetings — and wants to save time doing it. If you often find yourself juggling between Google Sheets, Google Calendar, email, and WhatsApp just to manage your meetings, confirmations, and follow-ups — this workflow is for you. What This Workflow Does This workflow is structured into two main, independently scheduled branches: 1. Create Event (Schedule Meetings) Trigger:** Starts automatically on a schedule (e.g., every minute). Data Source:* Fetches new meeting data from a *Google Sheet**. Event Creation:* Creates a new event in *Google Calendar** using the data. Confirmation:* Sends a confirmation message via *WhatsApp (Rapiwa)* and *Email (Gmail)**. Status Update:* Updates the source *Google Sheet** to mark the meeting as 'sent'. 2. Reminder Event (Schedule Follow-ups) Trigger:** Starts automatically on a schedule (e.g., every minute). Past Events:* Retrieves recent past events from *Google Calendar**. Deduplication:** Uses a "Mark as Seen" node to prevent processing the same event multiple times. Filtering:** Filters for specific events that require a follow-up ("Only Follow Ups" node). AI Follow-up:* An *AI Meeting Agent (using Gemini/LLM)* uses the details of the past meeting and the Calendar's *Availability** tool to find and suggest open slots for a future meeting. Communication:* Sends a message with the suggested slots via *WhatsApp (Rapiwa)* and *Email (Gmail)**. Key Features Scheduled Automation:** Both event creation and follow-up scheduling run on a recurring schedule. Data Synchronization:* Reads meeting details from and updates a *Google Sheet**. Google Calendar Integration:** Creates events and checks calendar availability. Multi-Channel Communication:* Sends confirmations/follow-ups via *WhatsApp (Rapiwa)* and *Email (Gmail)**. AI-Powered Follow-up:* Uses an *AI Agent (Gemini)** to intelligently find and format available slots for the next meeting, considering the details of the past meeting (day, time, duration). Idempotency:** The "Mark as Seen" node prevents duplicate follow-up attempts for the same event. Requirements n8n instance with nodes: Schedule Trigger, Google Sheets, Split In Batches, Date & Time, Code, Google Calendar, Rapiwa, Gmail, Filter, Agent (LangChain), LLM Chat (Google Gemini), Structured Output Parser (LangChain), Set, Remove Duplicates, Wait. Google Calendar** with an available calendar for event creation and availability checks. Google Sheets** for storing meeting details. Rapiwa** (WhatsApp API) account credentials. Gmail** account credentials. Google Gemini (PaLM) API** credentials for the AI agent. How to Use — Step-by-Step Setup Credentials Setup Google Sheets OAuth2: Configure to allow the workflow to read from and write to your Sheet. Google Calendar OAuth2: Configure to allow event creation and availability checks. Rapiwa API: Set up credentials for sending WhatsApp messages. Gmail OAuth2: Set up credentials for sending email confirmations/follow-ups. Google Gemini(PaLM) API: Set up credentials for the AI agent functionality. Configure "Create Event" Branch Get in sheet: Update the Document ID and Sheet Name to point to your meeting data spreadsheet. The node is set to filter by a status column. Create an event: Verify the correct Calendar ID is selected. The end time is dynamically generated by the previous Code node. Rapiwa / Send a message1: Update the recipient number/email address and customize the message templates. Update status in sheet: Ensure the correct Document ID, Sheet Name, and matching column (row\_number) are configured to update the status to "sent". Configure "Reminder Event" Branch Get Past Events: Verify the correct Calendar ID is selected. Only Follow Ups: Customize the filter condition if only a subset of past meetings needs follow-up (e.g., if you have a "Follow-up Status" column to check). Meeting Agent: Review the System Message to ensure the AI's logic for finding slots matches your business rules (e.g., preferred working hours, look-ahead period). Generate Message: Customize the message template, which formats the AI-suggested slots. Rapiwa1 / Send a message: Update the recipient number/email address for the follow-up messages. Google Sheet Required Columns The workflow expects a Google Sheet with meeting data to have at least the following columns: A Google Sheet formatted like this ➤ Sample Sheet | title | description | location | color_number | start time | end time | reminder status | status | | :-------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------- | :----------- | :----------------- | :----------------- | :-------------- | :------ | | 2025 Personal Planner & Events Calendar | Stay organized and never miss an important date! This calendar helps........ | Dhaka, Bangladesh | 4 | 10/28/2025 3:50:00 | 10/29/2025 5:30:00 | sent | checked | | 2026 Personal Planner & Events Calendar | Stay organized and never miss an important date! This calendar helps........ | Dhaka, Bangladesh | 2 | 10/29/2025 3:50:00 | 10/30/2025 5:30:00 | sent | checked | Useful Links Dashboard:** https://app.rapiwa.com Official Website:** https://rapiwa.com Documentation:** https://docs.rapiwa.com Support & Help WhatsApp**: Chat on WhatsApp Discord**: SpaGreen Community Facebook Group**: SpaGreen Support Website**: https://spagreen.net Developer Portfolio**: Codecanyon SpaGreen
by gclbck
Analyze YouTube videos for virality with an AI-powered report This workflow automates the discovery and analysis of potentially viral YouTube videos. It searches for recent, popular videos based on a keyword, calculates a unique "Algorithmic Lift Score" to measure virality, and uses an AI agent to generate an insightful summary report that is sent directly to your email. What it does This workflow identifies videos that are outperforming their channel's baseline, a key indicator of viral potential. It operates in several stages: Searches YouTube: It finds recent, top-performing videos based on your specified keyword and timeframe. Gathers Data: For each video found, it fetches detailed statistics for both the video (views, likes, comments) and its channel (subscriber count, total views). Calculates Virality Score: It calculates an "Algorithmic Lift Score" for each video. This custom metric prioritizes videos that achieve high view counts and engagement relative to their channel's subscriber base. Analyzes with AI: The top 5 videos, sorted by their virality score, are sent to an AI agent (pre-configured for OpenAI). The AI generates a concise summary highlighting trends, top performers, and other noteworthy patterns. Sends Email Report: The final AI-generated analysis is converted to HTML and emailed to you, providing a ready-to-read report on what's trending in your niche. Who it's for This workflow is perfect for: Content Creators** looking for trending topics and content ideas. Digital Marketers** conducting competitor analysis or market research. Social Media Managers** wanting to understand what content resonates on YouTube. Data Analysts** who need to automate the collection and analysis of YouTube trends. Requirements A Google API Key with the "YouTube Data API v3" enabled. An OpenAI API Key (or another compatible AI model credential). A connected Gmail account in n8n to send the final report. How to set up Configure the Setup Node: Click on the "Setup" node and fill in the values: query: The keyword you want to search for (e.g., "AI tools"). GoogleAPIkey: Your Google API key. daysback: How many days in the past to search for new videos. maxResult: The number of videos to analyze (e.g., 20). email: The email address where the report will be sent. Set AI Credentials: Click the "OpenAI Chat Model" node and add your OpenAI API key to the credentials. Set Gmail Credentials: Click the "Send_Report" node and connect your Gmail account to the credentials.
by Dean Pike
LinkedIn URL → Scrape → Match → Screen → Decide, all automated This workflow automatically processes candidate LinkedIn profiles shared via Telegram, intelligently matches them to job descriptions, performs AI-powered screening analysis, and sends actionable summaries to your team in Telegram. Good to know Handles LinkedIn profile scraping via Apify API (extracts full profile data including experience, education, skills) Built-in spam prevention: limits users to 3 LinkedIn profile submissions Two-stage JD matching: prioritizes role mentioned in candidate's Telegram message, falls back to LinkedIn profile analysis if needed Uses Google Gemini API for AI screening (generous free tier and rate limits, typically enough to avoid paying for API requests - check latest pricing at Google AI Pricing and rate limits documentation) Automatic polling mechanism checks Apify extraction status up to 10 times (15-second intervals) Complete audit trail logged in Google Sheets with unique submission IDs Who's it for Hiring teams and recruiters who want to streamline first-round screening for candidates who share LinkedIn profiles directly. Perfect for companies accepting applications via messaging platforms (Telegram, WhatsApp, etc.), especially useful fortech-savvy audiences and remote/global hiring. How it works Telegram bot receives message containing LinkedIn profile URL from candidate Validates URL format and checks spam prevention (max 3 submissions per Telegram username) Sends confirmation message to candidate and notifies internal talent team via Telegram group Extracts clean LinkedIn URL and initiates Apify scraping job Polls Apify API up to 10 times (15-second intervals) until profile extraction completes AI agent matches candidate to best-fit job description by analyzing Telegram message context first (if candidate mentioned a role), or LinkedIn profile content as fallback (selects up to 3 potential JD matches) If multiple JDs matched, second AI agent selects the single best fit based on detailed profile analysis AI recruiter agent analyzes LinkedIn profile against selected JD and generates structured screening report (strengths, weaknesses, risk/reward factors, overall fit score 0-10 with justification) Logs complete analysis to Google Sheets tracker with unique submission ID Sends formatted summary to Telegram group with candidate details, matched JD, and overall fit score Requirements Telegram Bot Token (Create bot via @BotFather) Apify account with API token (Sign up for free tier) Google Drive account (OAuth2) Google Sheets account (OAuth2) Google Gemini API key (Get free key here) Google Drive folder for Job Descriptions (as PDFs or Google Docs) Telegram group for internal talent team notifications How to set up Create Telegram bot and internal Telegram chat group with new bot: Message @BotFather on Telegram Send /newbot and follow instructions to create your bot Save the API token provided Create Telegram group chat and invite your new bot + invite the @GetIDs bot Note down the group chat ID (How to get group chat ID) Setup Apify: Sign up at Apify Get your API token from Settings Note: Free tier includes sufficient scraping credits for testing and production ($0.01 per successful LinkedIn profile enriched, a free monthly limit of $5.00) - LinkedIn profile scraper "actor" details Create Google Sheet: Create new sheet named "LinkedIn Profile AI Candidate Screening" Add columns: Submission ID, Date, LinkedIn Profile URL, First Name, Last Name, Email (if known), Telegram Username, Strengths, Weaknesses, Risk Factor, Reward Factor, JD Match, Overall Fit, Justification Copy the spreadsheet ID from URL Setup Google Drive folder: Create folder named "Job Descriptions" Upload your JD files (PDFs or Google Docs) with clear, descriptive filenames Copy the folder ID from URL Configure workflow nodes: In "Receive Telegram Msg to Recruiter Bot" node: Add Telegram API credentials In "Extract LinkedIn Profile Information" node: Replace YOUR_APIFY_API_TOKEN with your Apify token In "Check LinkedIn Profile Extraction Status" node: Replace YOUR_APIFY_API_TOKEN with your Apify token In "Get Fully Extracted LinkedIn Profile Data" node: Replace YOUR_APIFY_API_TOKEN with your Apify token In "Access JD Files" node: Update folder ID to your "Job Descriptions" folder In "Get All Rows Matching Telegram Username" node: Select your Google Sheet In "Add Candidate Analysis in GSheet" node: Select your Google Sheet and verify column mappings In "Send Msg to Internal Talent Group" node: Update chat ID to your Telegram group chat ID In "Send Review Completed Msg to Talent Group" node: Update chat ID and Google Sheet URL Add your company description: In "JD Matching Agent" system message: Replace company description with your details In "Detailed JD Matching Agent" system message: Replace company description with your details In "Recruiter Scoring Agent" system message: Update company description Test the workflow: Send a LinkedIn profile URL to your bot from Telegram Monitor execution to ensure all nodes run successfully Check Google Sheets for logged results Activate workflow Customizing this workflow Change spam limits: Edit "Spam Check: Sent <4 LinkedIn Profiles?" node to adjust maximum submissions (currently 3) Adjust polling attempts: Edit "Checked 10x for LinkedIn Profile Data?" node to change maximum polling attempts (currently 10) or modify wait time in "Wait for LinkedIn Profile" node (currently 15 seconds) Change JD matching logic: Edit "JD Matching Agent" node prompt to adjust how LinkedIn profiles are matched to roles (e.g., weight current role vs. overall experience) Modify screening criteria: Edit "Recruiter Scoring Agent" node system message to focus on specific qualities (culture fit, leadership potential, technical depth, industry experience, etc.) Add more messaging platforms: Add nodes to support WhatsApp, Discord, or other messaging platforms using similar URL-based triggers Customize Telegram messages: Edit notification nodes to change formatting, add emojis, or include additional candidate data Auto-proceed logic: Add IF node after screening to auto-proceed candidates with fit score above threshold (e.g., 8+/10) and trigger different notification paths Add candidate responses: Connect nodes to automatically message candidates back via Telegram (confirmation, rejection, interview invite) Add interview scheduling: For approved candidates, send Telegram message with Cal.com or Calendly link so they can book their interview Enrich with additional data: Add nodes to cross-reference candidate data with other sources (GitHub, Twitter/X, company websites) Multi-language support: Add translation nodes to support candidates submitting profiles in different languages Add human approval step: Create buttons in Telegram group messages for instant Approve/Reject decisions that update Google Sheets Pro tip: Add your Telegram bot to your company's careers page with instructions like: "Want fast-track screening? Share your LinkedIn profile with our AI recruiter: @YourBotName" Troubleshooting Telegram bot not responding: Ensure bot token is correct in "Receive Telegram Msg to Recruiter Bot" node, and users have sent /start to your bot at least once "LinkedIn profile URL invalid" error: Check that candidates are sending full URLs in format https://www.linkedin.com/in/username (not shortened links or text without URL) Apify extraction failing: Verify Apify API token is correctly set in all three HTTP Request nodes ("Extract LinkedIn Profile Information", "Check LinkedIn Profile Extraction Status", "Get Fully Extracted LinkedIn Profile Data") LinkedIn extraction timeout: Increase polling attempts in "Checked 10x for LinkedIn Profile Data?" node (currently 10) or increase wait time in "Wait for LinkedIn Profile" node (currently 15 seconds) Spam check blocking valid users: Check "Get All Rows Matching Telegram Username" node is pointing to correct Google Sheet, and adjust limit in "Spam Check: Sent <4 LinkedIn Profiles?" node if needed JD matching returns no results: Check "Access JD Files" node folder ID points to your Job Descriptions folder, and JD files are named clearly (e.g., "Marketing Director JD.pdf") JD matching is not relevant for my company: Update the "Company Description" in the System Messages in all three AI agent nodes ("JD Matching Agent", "Detailed JD Matching Agent", "Recruiter Scoring Agent") "Can't find matching JD": Ensure candidate's Telegram message mentions role name OR their LinkedIn profile clearly indicates relevant experience for available JDs Google Sheets errors: Verify sheet name is "LinkedIn Profile AI Candidate Screening" and column headers exactly match workflow expectations (Submission ID, Date, LinkedIn Profile URL, First Name, Last Name, etc.) Telegram group notifications not appearing: Verify chat ID is correct in "Send Msg to Internal Talent Group" and "Send Review Completed Msg to Talent Group" nodes (use negative number for group chats, e.g., -4954246611) Missing candidate data in Google Sheets: LinkedIn profile may be incomplete - verify Apify successfully extracted data by checking "Get Fully Extracted LinkedIn Profile Data" node output Loop counter not working: Check "Restore Loop Counter" code node references correct node names ("Checked 10x for LinkedIn Profile Data?" and "Initialize Loop Counter to Poll for Completion") 401/403 API errors: Re-authorize all OAuth2 credentials (Google Drive, Google Sheets) and verify Apify and Telegram API tokens are valid AI analysis quality issues: Edit system prompts in "JD Matching Agent", "Detailed JD Matching Agent", and "Recruiter Scoring Agent" nodes to refine screening criteria and provide more context about your hiring needs Gemini API rate limit errors: Check your usage at Google AI Studio and consider upgrading to paid tier if exceeding free tier limits (see rate limits documentation) Sample Outputs Google Sheets - LinkedIn AI Candidate Screening - sample Telegram messages between AI recruiter bot and job applicant Telegram messages from AI recruiter bot in internal group chat
by Mahmoud Shrouf
Overview Automate your personal productivity with this intelligent n8n workflow that integrates Telegram, Google Sheets, and OpenAI (GPT-4o). This system uses multiple AI agents to manage work hours, tasks, finances, and emails—all through natural language commands sent via Telegram. Every action is synced to Google Sheets for persistent, structured data storage. What This Template Does This automation system deploys several specialized AI agents: 📊 Work Hours Analyzer**: Analyzes work logs from Google Sheets, calculates total hours by workplace, and generates detailed monthly reports in Arabic. 🛠️ Work Tracking Agent**: Handles start/end work commands, calculates total hours, and updates Google Sheets. 📋 Task Manager Agent**: Manages to-do lists—adding, listing, updating, completing, and deleting tasks—with real-time sync to Google Sheets. 💰 Finance Agent**: Tracks income and expenses in multiple currencies, summarizes daily financial activity, and maintains a full transaction history. 📧 Email Analysis Agent**: Processes incoming Gmail messages, generates AI-powered summaries in Arabic with priority, sentiment, and recommended actions. 📅 Monthly Report Generator**: Automatically triggers at the start of each month to compile a professional PDF report of work hours and sends it to a Telegram topic. Prerequisites & Setup Required Accounts & API Keys Before setup, ensure you have: Telegram Bot Token – from @BotFather OpenAI API Key – with access to gpt-4o-mini or gpt-3.5-turbo Google Sheets API – OAuth2 credentials enabled Gmail Account (Optional) – for email analysis n8n Instance – self-hosted or cloud Google Sheets Structure Create a Google Sheet with the following sheets and columns: Sheet: work Date start at end at place note Total hours Sheet: task Task Status Created At Due Date Notes Sheet: Expenses id Amount Currency Note Type (debit/credit) Date Time Sheet: email name email Step-by-Step Setup Step 1: Import the Workflow In n8n, go to Workflows > Import from file Upload the JSON template Open the canvas and verify all nodes are connected Step 2: Configure Credentials Telegram: Add your bot token under "Telegram account" OpenAI: Enter your API key in "OpenAi account" Google Sheets: Connect using OAuth2 under "Google Sheets account" Gmail (Optional): Set up if using email analysis Step 3: Link Google Sheets Share your Google Sheet with the service account email (if using service account) Copy the Document ID from the sheet URL Update all Google Sheets nodes with the correct sheet names and IDs Ensure column names match exactly Step 4: Set Up Telegram Start a chat with your bot Use /start to initialize Ensure chatId and message_thread_id in Telegram nodes match your group/topic Test sending a message like "Start work at the factory" Step 5: Test the Agents Try these sample commands via Telegram: "Start work at the factory" → Logs start time "Finished work" → Logs end time and calculates hours "Add task: pay the bill" → Adds a new task "How much did I spend today?" → Shows today’s expenses "Send last month's report" → Triggers monthly PDF report (on the first of the month) Key Features Smart Work Tracking Automatic time calculation Query by date, place, or period Real-time Google Sheets sync Task Management Add, list, update, complete, delete tasks Friendly, conversational responses Daily summaries of completed and upcoming tasks Financial Tracking Supports multiple currencies (JOD, USD, ILS, etc.) Daily income/expense summaries Full transaction history Arabic-language responses Email Intelligence AI-powered email summaries Priority, sentiment, and action recommendations Plain-text output in Arabic No JSON or code blocks Automated Monthly Reports Triggered on the 1st of each month Generates detailed work hour reports by workplace Outputs clean, formatted PDF Sends directly to Telegram topic Customization Options Modify AI Prompts Edit the systemMessage in any AI agent node to: Change tone (formal, friendly, concise) Add new response formats Support additional commands or languages Extend Functionality Add daily reminders using Schedule Trigger Implement budget alerts when expenses exceed a threshold Add weekly summaries for tasks or work hours Support multi-currency conversion Enhance Telegram Interaction Add inline buttons for quick actions Create shortcuts like /work, /tasks, /finance Use message_thread_id to organize topics Troubleshooting | Issue | Solution | |------|----------| | Bot not responding | Check webhook URL, bot token, and chatId | | Google Sheets not updating | Verify OAuth2 permissions and sheet sharing | | AI not understanding commands | Review prompt clarity and test input phrasing | | Monthly report not sending | Confirm Schedule Trigger timezone and execution time | Benefits ✅ Full automation with minimal user input 📱 Control everything from Telegram 📊 Data stored securely in Google Sheets 📄 Professional PDF reports generated automatically 💬 Natural, friendly Arabic responses 🔁 Seamless sync across all components This template transforms personal productivity by combining AI intelligence with powerful automation—turning simple Telegram messages into structured data, actionable insights, and professional reports.