Skip to main content

Automate AI Upwork proposal generation with Apify, Google Gemini & sheets

Workflow preview

Workflow preview
100%
Automate AI Upwork proposal generation with Apify, Google Gemini & sheets preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Disclaimer Community nodes are used, and template can only be used on self hosted n8n instances. This n8n template from Intuz provides ...

Best for

  • Lead Nurturing automation workflows
  • AI Chatbot automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.manualtrigger, @apify/n8n-nodes-apify.apify, n8n-nodes-base.googlesheets, n8n-nodes-base.summarize, n8n-nodes-base.gmail, n8n-nodes-base.stickynote, n8n-nodes-base.if, @n8n/n8n-nodes-langchain.lmchatgooglegemini

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Intuz .

Original n8n.io source

1.1 Workflow description

Title
Automate AI Upwork proposal generation with Apify, Google Gemini & sheets
Workflow name
Automate AI Upwork proposal generation with Apify, Google Gemini & sheets

Disclaimer

Community nodes are used, and template can only be used on self-hosted n8n instances.

This n8n template from Intuz provides a complete and automated solution for finding relevant Upwork jobs and generating highly-personalized, knowledge-base-driven proposals using AI.

This workflow acts as an autonomous agent, handling everything from job discovery to drafting the final proposal text, ready for you to review and submit.

Who's this workflow for?

  • Freelancers & Consultants
  • Digital Agencies
  • Business Development Teams
  • Sales Professionals

How it works

1. Scrape Upwork for New Jobs: The workflow starts by running an Apify actor to scrape Upwork based on your defined criteria (keywords, categories, payment verification, etc.).

2. Log Jobs to Google Sheets: The newly found job opportunities are automatically saved as new rows in a Google Sheet, creating a central dashboard for tracking. A notification is sent confirming the new jobs found.

3. Trigger AI Proposal Generation: The workflow then reads the new jobs from the sheet and, for each one that hasn't been applied for, triggers the AI.

4. Craft a Knowledge-Based Proposal: It sends the job details to a Google Gemini AI model. The AI uses a detailed, built-in "Company Knowledge Base" (which you can customize) to write a comprehensive and relevant proposal. It addresses client questions, highlights relevant experience, and suggests a timeline.

5. Save the Proposal Draft: The AI-generated proposal is saved back into the Google Sheet in the corresponding job row.

6. Final Notification: A final email is sent to notify you that the proposals are ready, including a link to the sheet for final review and submission on Upwork.

Setup Instructions

1. Apify Configuration:

  • In the Run Upwork Actor... node, connect your Apify account.
  • We have used this apify scrapper- Upwork Extractor
  • In the Custom Body field, customize the search parameters (like category, search.any keywords) to match the jobs you are looking for.

2. Google Gemini AI Configuration:

  • In the Google Gemini Chat Model node, connect your Google Gemini (PaLM) API account.
  • Crucially: In the Proposal Crafting node, edit the prompt to replace the "Company Knowledge Base" with your own company's details, services, and project examples. This is essential for personalizing the proposals.

3. Google Sheets Setup:

  • Connect your Google Sheets account.
  • In all three Google Sheets nodes, select your credentials and update the Document ID and Sheet Name to point to your Upwork tracking sheet.

4. Gmail Configuration:

  • In both Gmail nodes, connect your account and update the sendTo email address to your own.

5. Execute the Workflow:

  • Click "Execute workflow" to run the entire job scraping and proposal generation process.

Key Requirements to Use This Template

  • n8n Instance: An active n8n account (Cloud or self-hosted).
  • Apify Account: An active Apify account with an API key and sufficient credits/subscription to run the "Upwork Extractor" actor.
  • Google Account & Sheet: A pre-made Google Sheet with columns for Title, URL, Description, Skills, Questions, Applied, and Proposal Template.
  • Google Gemini AI Account: A Google Cloud account with the Vertex AI API (for Gemini models) enabled and an associated API Key.
  • Gmail Account: A Gmail account to send and receive notifications about the workflow's progress.

Connect with us

For Custom Workflow Automation

Click here- Get Started

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - When clicking ‘Execute workflow’

Type / Role
n8n-nodes-base.manualTrigger - manualTrigger
Config choices
Version 1

Block 2 - Run Upwork Actor for Listed Jobs

Type / Role
@apify/n8n-nodes-apify.apify - apify
Config choices
Version 1

Block 3 - Get the Dataset from Upwork Actor

Type / Role
@apify/n8n-nodes-apify.apify - apify
Config choices
Version 1

Block 4 - Add the Extracted Data in Sheets

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.6

Block 5 - Count the New Jobs

Type / Role
n8n-nodes-base.summarize - summarize
Config choices
Version 1.1

Block 6 - Send Email Notification

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 7 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 8 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 9 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 10 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 11 - If

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 12 - Google Gemini Chat Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatGoogleGemini - lmChatGoogleGemini
Config choices
Version 1

Block 13 - Structured Output Parser

Type / Role
@n8n/n8n-nodes-langchain.outputParserStructured - outputParserStructured
Config choices
Version 1.3

Block 14 - Get row(s) in sheet

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.6

Block 15 - Edit Fields

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 16 - Send a message

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 17 - Summarize

Type / Role
n8n-nodes-base.summarize - summarize
Config choices
Version 1.1

Block 18 - Append or update row in sheet

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.6

Block 19 - Sticky Note4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 20 - Sticky Note5

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 21 - Proposal Crafting

Type / Role
@n8n/n8n-nodes-langchain.chainLlm - chainLlm
Config choices
Version 1.7

Block 22 - Sticky Note6

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 23 - Sticky Note7

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 24 - Sticky Note8

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Showing the first 24 of 25 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Automate AI Upwork proposal generation with Apify, Google Gemini & sheets
Complexity advanced
Nodes 25
Categories Lead Nurturing, AI Chatbot
Author Intuz
Published 29 Aug 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/8015/8015.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Automate AI Upwork proposal generation with Apify, Google Gemini & sheets do?

Disclaimer Community nodes are used, and template can only be used on self hosted n8n instances. This n8n template from Intuz provides ...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Lead Nurturing, AI Chatbot use case.