workflows.fit
Back to n8n workflows
n8n templateFreeBy Surya Vardhan Yalavarthi

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 wr...

Data & StorageCommunicationHITLAILangchainDevelopmentCore NodesUtility
Loading interactive preview...

Template notes

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 portfolioknowledge 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 errormessage, failednode, workflowname, and executionurl 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