Apply to jobs automatically from Google Sheets with status tracking Who's it for Job seekers who want to streamline their application process, save time on repetitive tasks, and never miss following up on applications. Perfect for anyone managing multiple job applications across different platforms. What it does This workflow automatically applies to jobs from a Google Sheet, tracks application status, and keeps you updated with notifications. It handles the entire application lifecycle from submission to status monitoring. Key features: Reads job listings from Google Sheets with filtering by priority and status Automatically applies to jobs on LinkedIn, Indeed, and other platforms Updates application status in real-time Checks application status every 2 days and notifies you of changes Sends email notifications for successful applications and status updates Prevents duplicate applications and manages rate limiting How it works The workflow runs on two main schedules: Daily Application Process (9 AM, weekdays): 1. Reads your job list from Google Sheets 2. Filters for jobs marked as "Not Applied" with Medium/High priority 3. Processes each job individually to prevent rate limiting 4. Applies to jobs using platform-specific APIs (LinkedIn, Indeed, etc.) 5. Updates the sheet with application status and reference ID 6. Sends confirmation email for each application Status Monitoring (Every 2 days at 10 AM): 1. Checks all jobs with "Applied" status 2. Queries job platforms for application status updates 3. Updates the sheet if status has changed 4. Sends notification emails for status changes (interviews, rejections, etc.) Requirements Google account with Google Sheets access Gmail account for notifications Resume stored online (Google Drive, Dropbox, etc.) API access to job platforms (LinkedIn, Indeed) - optional for basic version n8n instance (self-hosted or cloud) How to set up Step 1: Create Your Job Tracking Sheet Create a Google Sheet with these exact column headers: | Job_ID | Company | Position | Status | Applied_Date | Last_Checked | Application_ID | Notes | Job_URL | Priority | |--------|---------|----------|--------|--------------|--------------|----------------|-------|---------|----------| | JOB001 | Google | Software Engineer | Not Applied | | | | | https://careers.google.com/jobs/123 | High | | JOB002 | Microsoft | Product Manager | Not Applied | | | | | https://careers.microsoft.com/jobs/456 | Medium | Column explanations: Job_ID: Unique identifier (JOB001, JOB002, etc.) Company: Company name Position: Job title Status: Not Applied, Applied, Under Review, Interview Scheduled, Rejected, Offer Applied_Date: Auto-filled when application is submitted Last_Checked: Auto-updated during status checks Application_ID: Platform reference ID (auto-generated) Notes: Additional information or application notes Job_URL: Direct link to job posting Priority: High, Medium, Low (Low priority jobs are skipped) Step 2: Configure Google Sheets Access 1. In n8n, go to Credentials → Add Credential 2. Select Google Sheets OAuth2 API 3. Follow the OAuth setup process to authorize n8n 4. Test the connection with your job tracking sheet Step 3: Set Up Gmail Notifications 1. Add another credential for Gmail OAuth2 API 2. Authorize n8n to send emails from your Gmail account 3. Test by sending a sample email Step 4: Update Workflow Configuration In the "Set Configuration" node, update these values: spreadsheetId: Your Google Sheet ID (found in the URL) resumeUrl: Direct link to your resume (make sure it's publicly accessible) yourEmail: Your email address for notifications coverLetterTemplate: Customize your cover letter template Step 5: Customize Application Logic For basic version (no API access): The workflow includes placeholder HTTP requests that you can replace with actual job platform integrations. For advanced version (with API access): Replace LinkedIn/Indeed HTTP nodes with actual API calls Add your API credentials to n8n's credential store Update the platform detection logic for additional job boards Step 6: Test and Activate 1. Add 1-2 test jobs to your sheet with "Not Applied" status 2. Run the workflow manually to test 3. Check that the sheet gets updated and you receive notifications 4. Activate the workflow to run automatically How to customize the workflow Adding New Job Platforms 1. Update Platform Detection: Modify the "Check Platform Type" node to recognize new job board URLs 2. Add New Application Node: Create HTTP request nodes for new platforms 3. Update Status Checking: Add status check logic for the new platform Customizing Application Strategy Rate Limiting: Add "Wait" nodes between applications (recommended: 5-10 minutes) Application Timing: Modify the cron schedule to apply during optimal hours Priority Filtering: Adjust the filter conditions to match your criteria Multiple Resumes: Use conditional logic to select different resumes based on job type Enhanced Notifications Slack Integration: Replace Gmail nodes with Slack for team notifications Discord Webhooks: Send updates to Discord channels SMS Notifications: Use Twilio for urgent status updates Dashboard Updates: Connect to Notion, Airtable, or other productivity tools Advanced Features AI-Powered Personalization: Use OpenAI to generate custom cover letters Job Scoring: Implement scoring logic based on job requirements vs. your skills Interview Scheduling: Auto-schedule interviews when status changes Follow-up Automation: Send follow-up emails after specific time periods Important Notes Platform Compliance Always respect rate limits to avoid being blocked Follow each platform's Terms of Service Use official APIs when available instead of web scraping Don't spam job boards with excessive applications Data Privacy Store credentials securely using n8n's credential store Don't hardcode API keys or personal information in nodes Regularly review and clean up old application data Ensure your resume link is secure but accessible Quality Control Start with a small number of jobs to test the workflow Review application success rates and adjust strategy Monitor for errors and set up proper error handling Keep your job list updated and remove expired postings This workflow transforms job searching from a manual, time-consuming process into an automated system that maximizes your application efficiency while maintaining quality and compliance.
Who this is for This workflow is for digital marketing agencies or sales teams who want to automatically find business leads based on industry & location, gather their contact details, and send personalized cold emails — all from one form submission. --- What this workflow does This workflow starts every time someone submits the Lead Machine Form. It then: Scrapes business data (company name, website, phone, address, category) using Apify based on business type & location. Extracts the best email address from each business website using Google Gemini AI. Stores valid leads in Google Sheets. Generates cold email content (subject + body) with AI based on your preferred tone (Friendly, Professional, Simple). Sends the cold email via Gmail. Updates the sheet with send status & timestamp. --- Setup To set this workflow up: 1. Form Trigger – Customize the “Lead Machine” form fields if needed (Business Type, Location, Lead Number, Email Style). 2. Apify API – Add your Apify Actor Endpoint URL in the HTTP Request node. 3. Google Gemini – Add credentials for extracting email addresses. 4. Google Sheets – Connect your sheet for storing leads & email status. 5. OpenAI – Add your credentials for cold email generation. 6. Gmail – Connect your Gmail account for sending cold emails. --- How to customize this workflow to your needs Change the AI email prompt to reflect your brand’s voice and offer. Add filters to only target leads that meet specific criteria (e.g., website must exist, email must be verified). Modify the Google Sheets structure to track extra info like “Follow-up Date” or “Lead Source”. Switch Gmail to another email provider if preferred. ---
Who’s it for This template is designed for anyone who wants to use Telegram as a personal AI assistant hub. If you often juggle tasks, emails, calendars, and expenses across multiple tools, this workflow consolidates everything into one seamless AI-powered agent. What it does Jarvis listens to your Telegram messages (text or audio) and processes them with OpenAI. Based on your request, it can: Manage tasks (create, complete, or delete) Handle calendar events (schedule, reschedule, or check availability) Send, draft, or fetch emails with Gmail Retrieve Google Contacts Log and track expenses All responses are returned directly to Telegram, giving you a unified command center. How to set up 1. Clone this template into your n8n workspace. 2. Connect your accounts (Telegram, Gmail, Google Calendar, Contacts, etc.). 3. Add your OpenAI API key in the Credentials section. 4. Test by sending a Telegram message like “Create a meeting tomorrow at 3pm” or “Add expense $50 for lunch.” or "Draft a reply with a project proposal to that email from Steve" Requirements n8n instance (cloud or self-hosted) Telegram Bot API credentials Gmail, Google Calendar, and Google Contacts credentials (optional, if using those features) OpenAI API key ElevenLabs API Key (optional, if you need audio note support) How to customize Swap Gmail with another email provider by replacing the Gmail MCP node. Add additional MCP integrations (e.g., Notion, Slack, CRM tools). Adjust memory length to control how much context Jarvis remembers. With this template, you can transform Telegram into your all-in-one AI assistant, simplifying workflows and saving hours every week.
How it works The automation loads rows from a Google Sheet of leads that you want to contact. It makes a Google search via Apify for LinkedIn links based on the First name / Last name / Company. Another Apify actor fetches the right LinkedIn profile based on the first profile which is retuned The same process is done for the company that the lead works for, giving extra context. If the lead has a current company listed on their LinkedIn, we use that URL to do the lookup, rather than doing a separate Google search. A call is made to OpenRouter to get an LLM to generate an email based on a prompt designed to do personalized outreach. An email is sent via a Gmail node. Set up steps Connect your Google Sheets + Gmail accounts to use these APIs. Make an account with Apify and enter your credentials. Set your details in the "Set My Data" node to customize the workflow to revolve around your company + value proposition. I would recommend changing the prompt in the "Generate Personalized Email" node to match the tone of voice that you want your agent to have. You can change the guidelines to e.g. change whether the agent introduces itself, and give more examples in the style you want to make the output better.
Who it's for This workflow is for professionals and small business owners who receive a high volume of emails and want to automate triage, labeling, and draft reply generation — without losing the human touch before sending. How it works 1. A Gmail trigger polls the inbox every minute for new unread emails and retrieves the current date. 2. The full email message is fetched, and any existing processing labels are stripped from the thread. 3. A Gemini 2.5 Pro AI Agent reads the email (and the full thread via a Gmail Thread tool), checks Google Calendar for availability, then classifies the email into one of six categories (Urgent, Reply, Read, Notification, Newsletter, Invoice) and drafts an HTML reply when needed. 4. A Switch node routes the output: emails requiring a reply (Urgent or Reply) pass through a JavaScript node that appends an HTML signature before saving the message as a Gmail draft. 5. All paths converge to fetch the matching Gmail label, filter for validity, apply it to the thread, and mark the message as unread so it surfaces for human review. How to set up [ ] Connect a Gmail OAuth2 credential to all Gmail nodes (trigger, fetch, remove label, draft, label, mark unread) [ ] Connect a Google Gemini (PaLM) API credential to the Gemini Chat Model node [ ] Connect a Google Calendar OAuth2 credential to the Google Calendar Tool node [ ] Configure the Gmail Trigger label/filter to match your inbox setup [ ] Update the label IDs in Remove Label from Thread, Get label for response, and Labelliser to match your Gmail labels [ ] Customize the HTML signature in the Build HTML Signature code node Requirements Gmail account with OAuth2 access Google Gemini (PaLM) API key Google Calendar account How to customize Adjust the AI Agent's system prompt to change tone, add new label categories, or modify the reply structure. Extend the Switch node with additional branches (e.g., forward to a team member, archive automatically, create a CRM task). Replace the Gmail draft step with a direct send for fully automated responses on low-risk categories like Notifications.
Quick overview This workflow runs hourly to collect campaign spend, clicks, and impressions from Meta (Facebook), Google Ads, TikTok Ads, and Taboola, then upserts the metrics into Airtable and creates a time-stamped snapshot record for Meta campaigns. Get Implementation help via https://nocode.expert How it works 1. Runs every 60 minutes on a schedule. 2. Builds today’s date values (including a sheet-friendly format and PST-adjusted dates) for use in API queries and Airtable filters. 3. Pulls ACTIVE and PAUSED campaign lists from up to four Meta ad accounts and searches Airtable for existing rows matching today’s date. 4. Matches Meta campaigns to Airtable records by Campaign ID, fetches Meta Insights for each campaign for today, and keeps only campaigns with non-zero spend. 5. Upserts the Meta campaign metrics into the Airtable “Daily Ad Spend” table and creates a separate time-slot snapshot row in a second Airtable table. 6. Retrieves today’s performance data from Taboola (via OAuth token), Google Ads (GAQL query), and TikTok Ads (integrated report), then normalizes the results into a single campaign list. 7. Filters out non-spending campaigns and upserts the remaining Google, Taboola, and TikTok campaign metrics into the same Airtable “Daily Ad Spend” table. Setup 1. Create an Airtable personal access token connection and set your Airtable Base ID and both Table IDs for the “Daily Ad Spend” and “Daily Snapshot” tables. 2. Replace the placeholder Meta ad account IDs and add a valid Meta Graph API access token in the Meta campaign and insights request URLs. 3. Add Google Ads OAuth2 credentials in n8n and set your Google customer ID, login-customer-id, and developer token headers for the Google Ads API request. 4. Add your TikTok access token and advertiser ID, and add your Taboola client ID/secret and account name in the Taboola token and report requests. 5. Ensure your Airtable “Daily Ad Spend” table includes fields matching the mapped columns (for example Date, Spend, Clicks, Impressions, Campaign ID, Campaign Name, Source, and Ad Account) so the upserts succeed. Requirements Accounts and API access for Meta Graph API, Google Ads API, TikTok Business API, Taboola Backstage API, and an Airtable base Customization change the schedule from hourly to daily, or narrow the campaign-name keyword filter to only the campaigns you want tracked