AutomationFlowsAI & RAG › Auto-generate & Polish Professional Bios with Gpt-5 and Google Docs

Auto-generate & Polish Professional Bios with Gpt-5 and Google Docs

ByAsfandyar Malik @asfandyar-malik on n8n.io

Automatically create, evaluate, and optimize professional biographies with the Bio-Graphy Agent. This workflow uses a multi-agent system powered by GPT-5 to write, review, and enhance bios — then saves the final version directly to Google Docs.

Chat trigger trigger★★★★☆ complexityAI-powered17 nodesChat TriggerAgentGoogle DocsOpenAI Chat
AI & RAG Trigger: Chat trigger Nodes: 17 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9930 — we link there as the canonical source.

This workflow follows the Agent → Chat Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "5rGmxFRzepAKlIKd",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Biography Agent",
  "tags": [],
  "nodes": [
    {
      "id": "c6a5af04-2ac6-4808-810d-9537343e8759",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -864,
        400
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "fe5152d2-635d-4a4e-86a1-89345b6598b1",
      "name": "Biography Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -544,
        400
      ],
      "parameters": {
        "options": {
          "systemMessage": "=# Overview\nYou are an expert biography writer. You will receive information about a person, and your job is to create an entire profile using the information they give you. You are allowed to be creative."
        }
      },
      "typeVersion": 1.7
    },
    {
      "id": "e1776bea-6a0e-4842-9a1d-6ab7576872ca",
      "name": "Evaluator Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -80,
        400
      ],
      "parameters": {
        "text": "=Here is the biography:\n{{ $json.bio }}",
        "options": {
          "systemMessage": "=## Overview\nYou are an expert biography evaluator. Your job is to provide feedback on the biography.\n\n## Criteria\n- Make sure the biography includes a quote from the person. This could be their favorite saying or a piece of advice. It is essential that every biography has a quote.\n- Make sure the biography is light and humorous.\n- Make sure the biography has NO emojis.\n\n## Output\nYou only need to output feedback. If the biography is finished and all the criteria are met, simply output \"Finished\"."
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "216da347-3a94-42d1-b65e-3ae8e1d30a3d",
      "name": "Evaluate",
      "type": "n8n-nodes-base.if",
      "position": [
        240,
        400
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "8d931f3d-b391-4be9-a50a-cc4a73c31b71",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.output }}",
              "rightValue": "Finished"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "5f0e5c45-6ce1-476e-a0cf-0ef3b7190217",
      "name": "Optimizer Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        464,
        720
      ],
      "parameters": {
        "text": "=Biography: {{ $('Set Bio').item.json.bio }}\n\nFeedback: {{ $('Evaluator Agent').item.json.output }}",
        "options": {
          "systemMessage": "=# Overview\nYou are an expert biography revisor. Your job is to take the biography and optimize it based on the feedback."
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "c4f6ba91-8f5f-49da-9dfb-5590d38930f0",
      "name": "Push to Docs",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        496,
        336
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "text": "={{ $('Set Bio').item.json.bio }}",
              "action": "insert"
            }
          ]
        },
        "operation": "update",
        "documentURL": "Add your document URL"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "e11a6bbc-4e5d-4b55-8dd1-5af4adb49998",
      "name": "Set Bio",
      "type": "n8n-nodes-base.set",
      "position": [
        -240,
        400
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "adf17d4d-a89e-4f97-9d31-5e74834428fc",
              "name": "bio",
              "type": "string",
              "value": "={{ $json.output }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "df68bca8-f356-4bd5-8487-acf7a28a3eaa",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        32
      ],
      "parameters": {
        "color": 5,
        "width": 1236,
        "height": 112,
        "content": "# Bio-Graphy Agent \u2014 Auto-Generate & Polish Personal Bios with GPT-5"
      },
      "typeVersion": 1
    },
    {
      "id": "b86d5e02-c7c4-417d-bf0e-ef8f07fd4cbf",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -944,
        192
      ],
      "parameters": {
        "color": 6,
        "width": 352,
        "height": 432,
        "content": "### \ud83d\udfe9 This node triggers the workflow when a user submits their:\n1- name\n2- role\n3- personal info. \n\nYou can also connect this to a Google Form, Notion, or Webhook for automation."
      },
      "typeVersion": 1
    },
    {
      "id": "194d38b1-4f52-4862-9a26-daaf62197b9a",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -576,
        208
      ],
      "parameters": {
        "width": 256,
        "height": 432,
        "content": "### \ud83d\udfe9 Here we clean and structure the input text (remove extra spaces, fix case, etc.) before sending it to GPT-5."
      },
      "typeVersion": 1
    },
    {
      "id": "d96244ce-1254-4363-90b4-d7a65a2f1781",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        224
      ],
      "parameters": {
        "color": 3,
        "width": 496,
        "height": 432,
        "content": "## Provide feedback on the biography.\n\nCreates the first version of the user\u2019s bio using the structured input. The tone and style are adjusted based on the role and platform type (LinkedIn, portfolio, etc.)."
      },
      "typeVersion": 1
    },
    {
      "id": "57bd7e84-76de-46ea-9636-ebb7bca97a19",
      "name": "GPT-5",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        128,
        768
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d060485b-1878-4dc3-8524-cced926eb90b",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        416,
        224
      ],
      "parameters": {
        "width": 304,
        "height": 304,
        "content": "## Save the document to Google Docs"
      },
      "typeVersion": 1
    },
    {
      "id": "b96d506b-6be0-461d-80cf-9ff842b65ead",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        560
      ],
      "parameters": {
        "color": 5,
        "width": 384,
        "height": 400,
        "content": "## Optimize the Biography\n\nRefines the generated bio to make it sound more natural, polished, and professional. Adds structure and removes redundancy."
      },
      "typeVersion": 1
    },
    {
      "id": "8ecca430-0176-4678-b599-5de32cc21b69",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -32,
        688
      ],
      "parameters": {
        "color": 4,
        "width": 400,
        "height": 224,
        "content": "## GPT-5 Chat Model"
      },
      "typeVersion": 1
    },
    {
      "id": "f0436e15-da3d-4104-8503-4de94e5b0a88",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1776,
        192
      ],
      "parameters": {
        "width": 800,
        "height": 1040,
        "content": "# \ud83d\udfe8 Workflow Overview\n\nThis workflow automatically generates and refines personal bios using GPT-5. It takes input from a form or webhook, structures it, and produces a polished, professional bio ready to share on LinkedIn, websites, or portfolios.\n\n# \ud83e\udde9 Sticky Notes Summary\n\n## \ud83d\udfe9 Trigger \u2014 Webhook / Manual Input\n\nStarts the workflow when a user submits their details (like name, profession, and skills). You can connect it to any input source \u2014 form, Notion, or Typeform.\n\n## \ud83d\udfe9 Data Clean-Up Node\n\nFormats and organizes raw input (e.g., removes extra spaces, corrects capitalization) before sending to GPT-5 for better results.\n\n## \ud83d\udfe9 GPT-5: Generate Bio Draft\n\nCreates the first version of the user\u2019s bio using the structured input. The tone and style are adjusted based on the role and platform type (LinkedIn, portfolio, etc.).\n\n## \ud83d\udfe9 GPT-5: Polish & Improve Bio\n\nRefines the generated bio to make it sound more natural, polished, and professional. Adds structure and removes redundancy.\n\n## \ud83d\udfe9 Output Node \u2014 Email / Notion / Google Docs\n\nSends the final version of the bio to your preferred destination. Ideal for quick publishing or saving for review.\n\n## \ud83d\udfe9 Optional: Log to Google Sheets\n\nStores generated bios with timestamps and input data for future reference or analytics.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c03c6f54-61e7-416f-9df8-df1edbe7ed86",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -944,
        704
      ],
      "parameters": {
        "color": 4,
        "width": 880,
        "height": 560,
        "content": "# \ud83e\udde0 Who It\u2019s For\n\n## Freelancers and creators building personal brands\n\n## Agencies managing client portfolios\n\n## HR or marketing professionals polishing team bios\n\n# \u2699\ufe0f Requirements\n\n## OpenAI GPT-5 (or GPT-4) credentials\n\n## n8n Cloud or self-hosted setup\n\n## Optional: Google Sheets / Notion account for storage"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "287f5ee0-48bf-4271-90ea-f0e9a08e0f53",
  "connections": {
    "GPT-5": {
      "ai_languageModel": [
        [
          {
            "node": "Biography Agent",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Evaluator Agent",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Optimizer Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Set Bio": {
      "main": [
        [
          {
            "node": "Evaluator Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Evaluate": {
      "main": [
        [
          {
            "node": "Push to Docs",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Optimizer Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Biography Agent": {
      "main": [
        [
          {
            "node": "Set Bio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Evaluator Agent": {
      "main": [
        [
          {
            "node": "Evaluate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Optimizer Agent": {
      "main": [
        [
          {
            "node": "Set Bio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "Biography Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Automatically create, evaluate, and optimize professional biographies with the Bio-Graphy Agent. This workflow uses a multi-agent system powered by GPT-5 to write, review, and enhance bios — then saves the final version directly to Google Docs.

Source: https://n8n.io/workflows/9930/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

Perfect for educators, consultants, and content creators who record sessions and want to repurpose them into social media posts, videos, and images without manual work. Chat interface triggers the AI

Chat Trigger, OpenAI Chat, Memory Buffer Window +9
AI & RAG

Summarize YouTube Videos & Chat About Content with GPT-4o-mini via Telegram. Uses splitOut, lmChatOpenAi, chainLlm, summarize. Chat trigger; 22 nodes.

OpenAI Chat, Chain Llm, Chat Trigger +7
AI & RAG

**This n8n workflow leverages an agentic AI solution, where multiple AI agents collaborate to process and generate tailored job application assets.

Chat Trigger, @Brightdata/N8N Nodes Brightdata, Google Sheets +5
AI & RAG

This n8n workflow automates the process of summarizing YouTube video transcripts and enables users to interact with the content through AI-powered question answering via Telegram. It leverages the GPT

OpenAI Chat, Chain Llm, Chat Trigger +7
AI & RAG

🤖🧠 AI Agent Chatbot + LONG TERM Memory + Note Storage + Telegram. Uses chatTrigger, stickyNote, lmChatOpenAi, memoryBufferWindow. Chat trigger; 21 nodes.

Chat Trigger, OpenAI Chat, Memory Buffer Window +4