Skip to main content

Turn your portfolio into an AI assistant with OpenAI, Claude, Pinecone and Gmail

Workflow preview

Workflow preview
100%
Turn your portfolio into an AI assistant with OpenAI, Claude, Pinecone and Gmail preview
Open on n8n.io

1. Workflow Overview

Deploy a personal AI assistant that answers recruiter questions about your skills and projects, then automatically emails your CV as a PDF attachment when requested. Upload your portfolio documents...

Best for

  • Internal Wiki automation workflows
  • AI RAG automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.stickynote, n8n-nodes-base.googledrivetrigger, n8n-nodes-base.googledrive, n8n-nodes-base.set, @n8n/n8n-nodes-langchain.vectorstorepinecone, @n8n/n8n-nodes-langchain.embeddingsopenai, @n8n/n8n-nodes-langchain.documentdefaultdataloader, @n8n/n8n-nodes-langchain.textsplitterrecursivecharactertextsplitter

Source and attribution

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

Original n8n.io source

1.1 Workflow description

Title
Turn your portfolio into an AI assistant with OpenAI, Claude, Pinecone and Gmail
Workflow name
Turn your portfolio into an AI assistant with OpenAI, Claude, Pinecone and Gmail

Deploy a personal AI assistant that answers recruiter questions about your skills and projects, then automatically emails your CV as a PDF attachment when requested. Upload your portfolio documents (resume, project writeups, case studies) to a Google Drive folder — the workflow chunks them into 600-character segments, embeds them with OpenAI, and stores them in Pinecone. A webhook-powered AI Agent (Claude Sonnet 4.5) retrieves the most relevant evidence using Pinecone + Cohere reranking, detects CV requests via structured output parsing, and sends your resume file via Gmail — all without any manual intervention.

How it works

Ingestion pipeline:

  1. Two Google Drive poll triggers fire every minute, detecting newly created or updated files in your monitored portfolio folder
  2. Files are downloaded and enriched with metadata (source filename and upload timestamp)
  3. The Default Data Loader extracts text from the binary file, the Recursive Character Text Splitter chunks it at 600 characters with 100-character overlap, and OpenAI text-embedding-3-small produces 1536-dimension vectors
  4. Vectors are upserted into the portfolio-docs Pinecone index

Chat agent pipeline:

  1. A webhook at POST /webhook/portfolio-query receives { "chatInput": "...", "sessionId": "...", "email": "..." }
  2. Claude Sonnet 4.5 is instructed to call the portfolio_knowledge tool (a Vector Store Tool backed by Pinecone) before answering — every response is grounded in retrieved evidence
  3. Cohere rerank-v3.5 reranks the top-5 Pinecone results to top-3 before they reach the LLM
  4. A Structured Output Parser enforces { "answer": "...", "cvRequested": false } — the cvRequested boolean is set by the LLM when it detects recruiter intent
  5. An IF node branches on cvRequested: true → download CV PDF from Drive → Gmail attachment → respond { answer, cvSent: true }; false → respond { answer, cvSent: false } immediately
  6. Buffer Window Memory retains the last 10 messages per sessionId for multi-turn conversations

Error handling: An Error Trigger catches any node failure and extracts error_message, failed_node, workflow_name, and execution_url into a clean object — ready to forward to Slack, email, or any alerting webhook.

Use cases

  • Job seekers & freelancers — A 24/7 recruiter-ready assistant that answers questions about your experience and sends your CV on request, even while you sleep
  • Portfolio websites — A backend API endpoint that powers intelligent Q&A on your personal site without building custom infrastructure
  • Consultants & agencies — Adapt the ingestion pipeline for a client-facing knowledge base; swap Gmail for any email or messaging node

Setup

Prerequisites

  • A Pinecone account with an index named portfolio-docs (dimension: 1536, metric: cosine, pod or serverless)
  • A Google Drive folder containing your portfolio documents (PDF, DOCX, or plain text)
  • Your CV stored as a PDF in Google Drive (note its file ID)
  • n8n instance with the six credentials below configured

Step 1 — Configure credentials

In n8n → Settings → Credentials, create one credential for each service:

Credential name Service
Google Drive OAuth2 Google Drive OAuth2
OpenAI API OpenAI
Pinecone API Pinecone
Anthropic API Anthropic
Cohere API Cohere
Gmail OAuth2 Gmail OAuth2

Step 2 — Set your Google Drive folder ID

Open File Created Trigger and File Updated Trigger (do both). In the Folder to Watch field, switch to ID mode and paste your folder ID.

> Find your folder ID in the Drive URL: https://drive.google.com/drive/folders/YOUR_FOLDER_ID

Step 3 — Set your CV file ID

Open Download CV PDF. In the File field, switch to ID mode and paste your CV file ID.

> Find the file ID in: https://drive.google.com/file/d/YOUR_FILE_ID/view

Step 4 — Personalize the system prompt

Open Portfolio AI Agent and edit the system message:

  • Replace the generic role description with your name and specialization
  • Adjust the tone (formal/casual) to match how you want to present yourself
  • Update the call-to-action line to reference your actual contact details

Step 5 — Ingest your documents

Move or upload your portfolio files into the monitored Drive folder. The ingestion pipeline will trigger automatically within one minute and populate Pinecone.

To verify ingestion: check your Pinecone index vector count — it should increase after each file is processed.

Step 6 — Test the chat endpoint

Send a POST request to your webhook URL:

curl -X POST https://your-n8n-instance/webhook/portfolio-query \
 -H "Content-Type: application/json" \
 -d '{"chatInput": "What are your main technical skills?", "sessionId": "test-1"}'

Expected response:

{ "answer": "...", "cvSent": false }

To test CV delivery, include "email": "[email protected]" and ask: "Can you send me the CV?".

Workflow details

  • Nodes: 25 functional nodes + 4 documentation sticky notes
  • Triggers: 4 (2 Google Drive poll triggers, 1 Webhook, 1 Error Trigger)
  • AI components: Claude Sonnet 4.5 (×2 — agent + retrieval), OpenAI text-embedding-3-small (×2 — ingest + retrieval), Cohere rerank-v3.5, Pinecone Vector Store (×2 — insert + retrieve), Structured Output Parser, Buffer Window Memory
  • Canvas layout: Three clearly labelled sections with grey sticky note backgrounds — Ingestion pipeline, AI Agent pipeline, Error Handling

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 - Overview

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

Block 2 - Section 1 Background

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

Block 3 - File Created Trigger

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

Block 4 - File Updated Trigger

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

Block 5 - Download File

Type / Role
n8n-nodes-base.googleDrive - googleDrive
Config choices
Version 3

Block 6 - Enrich Metadata

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

Block 7 - Pinecone Insert

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

Block 8 - OpenAI Embeddings

Type / Role
@n8n/n8n-nodes-langchain.embeddingsOpenAi - embeddingsOpenAi
Config choices
Version 1.2

Block 9 - Document Loader

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

Block 10 - Text Splitter

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

Block 11 - Section 2 Background

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

Block 12 - Chat Webhook

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

Block 13 - Portfolio AI Agent

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

Block 14 - Claude Sonnet 4.5

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

Block 15 - Chat Memory

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

Block 16 - Structured Output Parser

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

Block 17 - Portfolio Vector Tool

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

Block 18 - Claude Retrieval Model

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

Block 19 - Pinecone Retrieval

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

Block 20 - Cohere Reranker

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

Block 21 - OpenAI Embeddings Retrieval

Type / Role
@n8n/n8n-nodes-langchain.embeddingsOpenAi - embeddingsOpenAi
Config choices
Version 1.2

Block 22 - Check CV Request

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

Block 23 - Download CV PDF

Type / Role
n8n-nodes-base.googleDrive - googleDrive
Config choices
Version 3

Block 24 - Send CV Email

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

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

3. Summary Table

Workflow Turn your portfolio into an AI assistant with OpenAI, Claude, Pinecone and Gmail
Complexity advanced
Nodes 29
Categories Internal Wiki, AI RAG
Author Surya Vardhan Yalavarthi
Published 15 Feb 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/13408/13408.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 Turn your portfolio into an AI assistant with OpenAI, Claude, Pinecone and Gmail do?

Deploy a personal AI assistant that answers recruiter questions about your skills and projects, then automatically emails your CV as a PDF attachment when requested. Upload your portfolio documents...

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 Internal Wiki, AI RAG use case.