Block 1 - Overview
- Type / Role
- n8n-nodes-base.stickyNote - stickyNote
- Config choices
- Version 1
CV Keyword Optimizer An AI powered n8n workflow that automatically tailors your resume to any job description by injecting relevant keywords — without touching your formatting, layout, or design...
n8n-nodes-base.stickynote, n8n-nodes-base.formtrigger, n8n-nodes-base.code, n8n-nodes-base.googledocs, n8n-nodes-base.httprequest, n8n-nodes-base.if, n8n-nodes-base.googledrive, n8n-nodes-base.respondtowebhook
This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Rishi.
Original n8n.io sourceAn AI-powered n8n workflow that automatically tailors your resume to any job description by injecting relevant keywords — without touching your formatting, layout, or design.
┌─────────────────────────────────────────────────────────────────┐
│ User Input (Form) │
│ CV Google Docs Link + Job URL or Pasted JD │
└──────────────────────────┬──────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ 1. Read CV from Google Docs API │
│ 2. Extract full CV text (handles tables, paragraphs, etc.) │
└──────────────────────────┬───────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ 3. Get Job Description │
│ ├── URL provided? → Scrape job page, strip HTML to text │
│ │ └── Scrape failed? → Fall back to manual JD │
│ └── No URL? → Use manually pasted JD directly │
└──────────────────────────┬───────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ 4. 🏠 Local Ollama (llama3.1:8b) │
│ Analyzes JD + CV → Extracts & ranks 10-20 ATS keywords │
│ Output: keyword, priority, target bullet, reason │
└──────────────────────────┬───────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ 5. ☁️ Groq API (Llama 3.3 70B) │
│ Takes ranked keywords + CV → Produces find/replace pairs │
│ Naturally weaves keywords into experience bullet points │
└──────────────────────────┬───────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ 6. Copy original CV via Google Drive API │
│ (preserves ALL formatting, tables, styles) │
│ │
│ 7. Apply replacements via Google Docs batchUpdate API │
│ (replaceAllText — formatting stays intact) │
└──────────────────────────┬───────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ 8. Output │
│ ✅ New Google Doc link │
│ 📋 Changelog: original text → updated text + keywords added │
└──────────────────────────────────────────────────────────────────┘
| Step | Model | Why |
|---|---|---|
| Keyword Extraction | Ollama llama3.1:8b (local) |
Free, private, no API costs. Reasoning about which keywords actually matter for ATS |
| Text Rewriting | Groq llama-3.3-70b-versatile (cloud) |
Larger model = better at natural language. Produces find/replace pairs that read naturally |
The workflow copies your original Google Doc (not recreates it), then uses replaceAllText to swap text in-place. This means:
# macOS
brew install ollama
# Start the Ollama server
ollama serve
# Pull the model (in another terminal)
ollama pull llama3.1:8b
Verify it's running:
curl http://localhost:11434/api/tags
gsk_...)cd cv-generator
# Create .env from template
cp .env.example .env
# Edit .env and add your Groq key
# GROQ_API_KEY=gsk_your_key_here
docker compose up -d
n8n will be available at http://localhost:5678
Default credentials:
adminchangeme> ⚠️ Change these in docker-compose.yml for production use.
http://localhost:5678cv-keyword-optimizer.jsonhttps://www.googleapis.com/auth/documentshttps://www.googleapis.com/auth/drivehttp://localhost:5678/form/cv-keyword-optimizer-form)cv-generator/
├── cv-keyword-optimizer.json # n8n workflow definition
├── docker-compose.yml # n8n container config
├── .env # Environment variables (not committed)
├── .env.example # Template for .env
├── .gitignore # Ignores .env
└── README.md # This file
| Issue | Solution |
|---|---|
| Ollama connection refused | Make sure ollama serve is running. n8n reaches it via host.docker.internal:11434 |
| Groq 429 rate limit | Free tier has limits. Wait a minute and retry |
| Scraping fails on LinkedIn | LinkedIn blocks scrapers. Paste the JD manually instead |
| Google Docs auth error | Re-check OAuth2 credentials in n8n. Ensure correct scopes |
| Replacements don't apply | The AI's "find" text must exactly match the CV. Check the Changes Summary for what was attempted |
| Empty response from Ollama | Model may still be loading. First run takes longer. Timeout is set to 5 min |
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.
Showing the first 24 of 31 workflow blocks. Download the JSON for the full node graph.
| Workflow | Tailor your Google Docs CV to any job using Ollama and Groq |
|---|---|
| Complexity | advanced |
| Nodes | 31 |
| Categories | HR, AI Summarization |
| Author | Rishi |
| Published | 10 May 2026 |
Use the JSON export at /data/workflows/15585/15585.json as the source template for this automation.
Open n8n, import the downloaded JSON, and review each node before activating the workflow.
Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.
Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.
Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.
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.
CV Keyword Optimizer An AI powered n8n workflow that automatically tailors your resume to any job description by injecting relevant keywords — without touching your formatting, layout, or design...
Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.
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 HR, AI Summarization use case.