{"workflow":{"id":14063,"name":"Automate job applications with Telegram, SerpAPI, and OpenAI","views":131,"recentViews":4,"totalViews":131,"createdAt":"2026-03-15T13:52:35.728Z","description":"## Who is this for?\n\nThis workflow is for job seekers who want to automate their entire application pipeline — from discovering job postings to generating personalized cover letters, CVs, and organizing everything in Google Drive and Google Sheets. It is especially useful for professionals applying to many roles in parallel and who want a Telegram-based mobile-first experience.\n\n## What this workflow does\n\nThis n8n workflow turns your Telegram bot into a fully automated job application machine. It supports two input modes:\n\n- **URL mode**: Send a job posting URL via Telegram. An AI Agent (OpenAI with web search) visits the page, extracts structured job data (title, company, location, salary, description, language), and kicks off the document generation pipeline.\n- **Keyword mode**: Send a search keyword (e.g. \"Data Analyst\") via Telegram. The workflow queries Google Jobs via SerpAPI, parses the results, filters out irrelevant roles (internships, part-time, student jobs, etc.), and lets you approve or reject each match directly in Telegram.\n\nFor every approved job, the workflow:\n\n1. **Logs all job details** (title, company, links, salary, description) in a Google Sheets tracker\n2. **Generates a localized cover letter** as a styled PDF using an HTML-to-PDF API\n3. **Generates a personalized CV** as a styled PDF, dynamically tagged with the target position and company\n4. **Uploads both documents** to Google Drive into a dedicated folder per application\n5. **Updates the Google Sheets row** with the Drive folder link\n6. **Sends a confirmation** back to Telegram when done\n\n## How to set up\n\n1. **Import the workflow** into your n8n instance\n2. **Configure credentials** for:\n   - Telegram Bot API (create a bot via BotFather)\n   - OpenAI API (GPT model with web search capability)\n   - SerpAPI (for Google Jobs search)\n   - Google Sheets OAuth2\n   - Google Drive OAuth2\n   - HTML CSS to PDF API ([htmlcsstopdf.com](https://htmlcsstopdf.com))\n3. **Create a Google Sheet** with the following columns: `via`, `title`, `job_id`, `location`, `posted_at`, `salary`, `type`, `share_link`, `description`, `company`, `link1`–`link10`, `application_platform_1`–`application_platform_10`, `link_drive_ornder`, `status`, `Status-tracking`\n4. **Create a root folder** in Google Drive for all your job application subfolders\n5. **Update the Google Sheets document ID** and **Google Drive folder ID** in the relevant nodes (search for `YOUR_GOOGLE_SHEETS_ID` and `YOUR_GOOGLE_DRIVE_FOLDER_ID`)\n6. **Update the Telegram user ID** in the Telegram Trigger node to restrict access to your account\n7. **Customize the HTML templates** in the cover letter and CV nodes with your own personal information, experience, and styling\n\n## Requirements\n\n- n8n instance (self-hosted or cloud)\n- Telegram Bot (via BotFather)\n- OpenAI API key\n- SerpAPI key\n- Google Sheets & Google Drive OAuth2 credentials\n- HTML CSS to PDF API account (community node: `n8n-nodes-htmlcsstopdf`)\n\n**Note:** This workflow uses the community node `n8n-nodes-htmlcsstopdf`. It works on self-hosted n8n instances only. Install it via: Settings &gt; Community Nodes &gt; `n8n-nodes-htmlcsstopdf`.\n\n## How to customize\n\n- **Cover letter text**: Edit the HTML content in the cover letter nodes to match your writing style and experience\n- **CV content**: Edit the HTML in the CV nodes with your own work history, skills, certifications, and education\n- **Filter criteria**: Adjust the filter node to change which job types are filtered out (currently filters internships, part-time, student jobs, freelance, etc.)\n- **Language detection**: Copy the paths of steps 4 & 5 in different language\n- **Styling**: Modify the CSS in the HTML-to-PDF nodes to change the visual design of your cover letter and CV\n","workflow":{"id":"XVOX4SIp4BzcfpNs","meta":{"instanceId":"c000a2799023e596f7ce282858563b91e619d5adf24129f1308c87834a19b2c2"},"name":"Automate job applications with Telegram, SerpAPI, and OpenAI","tags":[{"id":"0f9SAyGcLm0ORsVP","name":"telegram","createdAt":"2025-11-13T18:01:50.147Z","updatedAt":"2025-11-13T18:01:50.147Z"},{"id":"Mef3Bfa6ka4NeYPU","name":"messenger","createdAt":"2026-03-20T21:16:09.503Z","updatedAt":"2026-03-20T21:16:09.503Z"},{"id":"HP4DHZ39Ro9hcp28","name":"cv","createdAt":"2025-12-26T18:00:49.562Z","updatedAt":"2025-12-26T18:00:49.562Z"},{"id":"IpgAKzog3drfAEtk","name":"application","createdAt":"2025-12-26T18:00:42.473Z","updatedAt":"2025-12-26T18:00:42.473Z"},{"id":"Tn6IgIGKc7IYO0gi","name":"teams","createdAt":"2025-12-26T18:01:13.573Z","updatedAt":"2025-12-26T18:01:13.573Z"},{"id":"UuJEZh1xyaeiFwva","name":"cover letter","createdAt":"2025-12-26T18:00:53.840Z","updatedAt":"2025-12-26T18:00:53.840Z"},{"id":"XYTdN8U3IPUGzNaj","name":"automation","createdAt":"2025-12-26T18:01:00.673Z","updatedAt":"2025-12-26T18:01:00.673Z"},{"id":"oGLByJdC8wyqSWDN","name":"job","createdAt":"2025-12-26T18:00:44.367Z","updatedAt":"2025-12-26T18:00:44.367Z"},{"id":"qoHYK3nc9zpxkc5O","name":"slack","createdAt":"2025-12-26T18:01:15.019Z","updatedAt":"2025-12-26T18:01:15.019Z"}],"nodes":[{"id":"08a69784-6434-4570-90b6-26143ee4536f","name":"Telegram Trigger","type":"n8n-nodes-base.telegramTrigger","position":[-1312,720],"webhookId":"00000000-0000-0000-0000-000000000000","parameters":{"updates":["message"],"additionalFields":{"userIds":"YOUR_TELEGRAM_USER_ID"}},"credentials":{"telegramApi":{"id":"735YApMmIUZwPVXi","name":"Telegram account"}},"typeVersion":1.2},{"id":"77bf0cb3-bcaa-4396-a361-a394cc543f78","name":"No Operation, do nothing","type":"n8n-nodes-base.noOp","position":[-192,560],"parameters":{},"typeVersion":1},{"id":"4dd0352e-185c-4436-a4a8-85a8d92ee3be","name":"No Operation, do nothing1","type":"n8n-nodes-base.noOp","position":[544,976],"parameters":{},"typeVersion":1},{"id":"07a9ae87-18a5-464e-ae9a-e1d39c9c212e","name":"Extract Job results from SERP-API response","type":"n8n-nodes-base.code","position":[-640,928],"parameters":{"jsCode":"\nconst inputs = $input.all();\nconst out = [];\n\nfor (const i of inputs) {\n  const jobs = i.json.jobs_results || [];\n  for (const j of jobs) {\n    const dext = j.detected_extensions || {};\n    const apply = Array.isArray(j.apply_options) ? j.apply_options : [];\n\n    const a0 = apply[0] || {};\n    const a1 = apply[1] || {};\n    const a2 = apply[2] || {};\n    const a3 = apply[3] || {};\n    const a4 = apply[4] || {};\n    const a5 = apply[5] || {};\n    const a6 = apply[6] || {};\n    const a7 = apply[7] || {};\n    const a8 = apply[8] || {};\n    const a9 = apply[9] || {};\n    const a10 = apply[10] || {};\n\n    out.push({\n      json: {\n        via: j.via ?? null,\n        title: j.title ?? null,\n        job_id: j.job_id ?? null,\n        location: j.location ?? null,\n        posted_at: dext.posted_at ?? j.posted_at ?? null,\n        salary: j.salary ?? dext.salary ?? null,\n        type: dext.schedule_type ?? j.schedule_type ?? null,\n        share_link: j.share_link ?? null,\n        description: j.description ?? null,\n        company: j.company_name ?? j.company ?? null,\n\n        link1: a0.link ?? null,\n        application_platform_1: a0.title ?? null,\n        link2: a1.link ?? null,\n        application_platform_2: a1.title ?? null,\n        link3: a2.link ?? null,\n        application_platform_3: a2.title ?? null,\n        link4: a3.link ?? null,\n        application_platform_4: a3.title ?? null,\n        link5: a4.link ?? null,\n        application_platform_5: a4.title ?? null,\n        link6: a5.link ?? null,\n        application_platform_6: a5.title ?? null,\n        link7: a6.link ?? null,\n        application_platform_7: a6.title ?? null,\n        link8: a7.link ?? null,\n        application_platform_8: a7.title ?? null,\n        link9: a8.link ?? null,\n        application_platform_9: a8.title ?? null,\n        link10: a9.link ?? null,\n        application_platform_10: a9.title ?? null,\n        link11: a10.link ?? null,\n        application_platform_11: a10.title ?? null,\n      }\n    });\n  }\n}\n\nreturn out;\n"},"typeVersion":2},{"id":"ed5f295b-90a9-4149-b8c8-2ff9f95c5aeb","name":"Search google jobs listings with SERP-API","type":"n8n-nodes-serpapi.serpApi","position":[-864,928],"parameters":{"q":"={{ $json.message.text }}","operation":"google_jobs","requestOptions":{},"additionalFields":{"gl":"us","location":"united states"}},"typeVersion":1},{"id":"908b1a93-8a68-4775-85db-e804bfae2159","name":"Filter unwanted results based on your criteria","type":"n8n-nodes-base.if","position":[-416,928],"parameters":{"options":{"ignoreCase":true},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":false,"typeValidation":"strict"},"combinator":"or","conditions":[{"id":"c7896112-6d44-45df-a837-1d58b9dbccc5","operator":{"type":"string","operation":"contains"},"leftValue":"={{ $('Extract Job results from SERP-API response').item.json.title }}","rightValue":"student"},{"id":"71698759-9966-4fb9-9304-5819576901e5","operator":{"type":"string","operation":"contains"},"leftValue":"={{ $('Extract Job results from SERP-API response').item.json.title }}","rightValue":"intern"},{"id":"a0828b1c-4923-4d4d-a181-d0d9b0882f7e","operator":{"type":"string","operation":"contains"},"leftValue":"={{ $('Extract Job results from SERP-API response').item.json.title }}","rightValue":"freelance"},{"id":"f3f0efa2-f449-40de-95c1-e951a6e55be8","operator":{"type":"string","operation":"contains"},"leftValue":"={{ $('Extract Job results from SERP-API response').item.json.title }}","rightValue":"temporary"},{"id":"3ef31078-948d-4f97-8c88-0d08fac89cef","operator":{"type":"string","operation":"contains"},"leftValue":"={{ $('Extract Job results from SERP-API response').item.json.title }}","rightValue":"=internship"},{"id":"0bcb62ef-8310-4004-aad5-cffbb1462432","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $('Extract Job results from SERP-API response').item.json.type }}","rightValue":"internship"},{"id":"c6c43c25-3db0-4137-bb62-8f4933a75bcf","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $('Extract Job results from SERP-API response').item.json.type }}","rightValue":"part-time"},{"id":"2295d117-f4cb-4425-bfcf-7ff6982af2b9","operator":{"type":"string","operation":"contains"},"leftValue":"={{ $('Extract Job results from SERP-API response').item.json.title }}","rightValue":"your_excluded_term"}]}},"typeVersion":2.3},{"id":"ae1e2e3a-f98b-4127-8cd8-6af0baf7b6bc","name":"Loop Over Items","type":"n8n-nodes-base.splitInBatches","position":[-192,1024],"parameters":{"options":{}},"typeVersion":3},{"id":"6c0901f5-b24f-4748-8729-4056c33110d2","name":"Send Telegram message & approval card for each job","type":"n8n-nodes-base.telegram","onError":"continueRegularOutput","position":[176,1072],"webhookId":"00000000-0000-0000-0000-000000000000","parameters":{"chatId":"={{ $('Telegram Trigger').item.json.message.chat.id }}","message":"={{\n(() => {\n  const LIMIT = 4000;\n\n  const title = $json.title ?? '';\n  const company = $json.company ?? '';\n  const location = $json.location ?? '';\n  const salary = $json.salary ?? '';\n  const description = $json.description ?? '';\n\n  // Build hyperlinks (Markdown with URL sanitization)\n  const links = [];\n  for (let i = 1; i <= 10; i++) {\n    const rawLink = $json[`link${i}`] ?? null;\n    const platform = $json[`application_platform_${i}`] ?? null;\n    if (rawLink && platform) {\n      try {\n        // Prevent broken links from special characters\n        const safeLink = encodeURI(rawLink.trim());\n        links.push(`[${i}. ${platform}](${safeLink})`);\n      } catch (e) {\n        // Fallback: output as plain text\n        links.push(`${i}. ${platform}: ${rawLink}`);\n      }\n    }\n  }\n\n  const build = (desc) => {\n    return [title, company, location, salary, desc, links.join('\\n')]\n      .map(v => v ?? '')\n      .join('\\n')\n      .replace(/\\n{2,}/g, '\\n')\n      .trim();\n  };\n\n  // Try building message with description\n  let msg = build(description);\n  if (msg.length <= LIMIT) return msg;\n\n  // Drop description if too long\n  msg = build('');\n  if (msg.length > LIMIT) {\n    msg = msg.slice(0, LIMIT - 3) + '...';\n  }\n  return msg;\n})()\n}}\n","options":{},"operation":"sendAndWait","approvalOptions":{"values":{"approvalType":"double"}}},"credentials":{"telegramApi":{"id":"735YApMmIUZwPVXi","name":"Telegram account"}},"typeVersion":1.2},{"id":"7b724308-45a0-411f-b810-bed5848de31c","name":"Check if job was approved","type":"n8n-nodes-base.if","position":[176,864],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"9e6bd3a4-7e3a-4e67-9960-9ef51bb76cf2","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $('Send Telegram message & approval card for each job').item.json.data.approved }}","rightValue":false}]}},"typeVersion":2.2},{"id":"7158bce9-51d8-4166-8e3b-3c8fe84a49c2","name":"Notify user about end of the loop","type":"n8n-nodes-base.telegram","position":[768,672],"webhookId":"00000000-0000-0000-0000-000000000000","parameters":{"text":"All done for now — your documents are being prepared!","chatId":"={{ $('Telegram Trigger').item.json.message.chat.id }}","additionalFields":{}},"credentials":{"telegramApi":{"id":"735YApMmIUZwPVXi","name":"Telegram account"}},"typeVersion":1.2},{"id":"dd55233d-67d6-4834-9238-c9b2a913eba7","name":"Create customized cover letter","type":"n8n-nodes-htmlcsstopdf.htmlcsstopdf","position":[768,864],"parameters":{"css_content":":root {     --primary: #0f172a;     --accent: #38bdf8;     --text-white: #f8fafc;     --text-dim: #94a3b8;     --bg-page: #f1f5f9;     --card-bg: #ffffff;     --text-main: #334155;          /* Compact sizing for single-page layout */     --radius: 12px;     --shadow: 0 15px 40px -10px rgba(0,0,0,0.2); }  * { box-sizing: border-box; margin: 0; padding: 0; }  body {     font-family: 'Inter', sans-serif;     background-color: var(--bg-page);     color: var(--text-main);     display: flex;     justify-content: center;     padding: 20px; /* Less outer margin */     min-height: 100vh;     line-height: 1.5; /* Slightly tighter line height */     -webkit-font-smoothing: antialiased; }  .page {     background: var(--card-bg);     width: 100%;     max-width: 820px;     border-radius: var(--radius);     box-shadow: var(--shadow);     overflow: hidden;     position: relative;     /* Optional: force fixed height if desired, but auto is safer */     height: auto;  }  /* --- KOMPAKTER HEADER --- */ .header {     background-color: var(--primary);     color: var(--text-white);     padding: 30px 40px; /* Much less padding */     display: flex;     flex-direction: column;     gap: 25px; /* Less spacing between sections */ }  /* Identity and contact in one row */ .header-top {     display: flex;     justify-content: space-between;     align-items: center;     gap: 20px; }  /* Left: image and name */ .identity-group {     display: flex;     align-items: center;     gap: 18px;     text-align: left; }  .profile-photo {     width: 75px; /* Smaller */     height: 75px;     border-radius: 50%;     object-fit: cover;     border: 2px solid rgba(255,255,255,0.1); }  .name-block .name {     font-size: 1.8rem; /* Smaller than before (2.2rem) */     font-weight: 700;     line-height: 1;     color: #fff;     margin-bottom: 5px; }  .name-block .role {     font-size: 0.9rem;     color: var(--accent);     text-transform: uppercase;     letter-spacing: 0.05em;     font-weight: 500; }  /* Right: contact */ .contact-column {     display: flex;     flex-direction: column;     gap: 8px; /* Very compact */     align-items: flex-end; }  .contact-item {     display: flex;     align-items: center;     gap: 10px;     color: var(--text-white);     text-decoration: none;     font-size: 0.85rem; /* Smaller for space */     font-weight: 400;     opacity: 0.9; }  .contact-item svg { width: 16px; height: 16px; color: var(--accent); }  /* Header Bottom: Badges */ .header-bottom {     border-top: 1px solid rgba(255,255,255,0.15);     padding-top: 15px;     display: flex;     align-items: center;     gap: 15px; }  .section-label {     font-size: 0.7rem;     text-transform: uppercase;     color: var(--text-dim);     font-weight: 700;     letter-spacing: 0.05em;     white-space: nowrap;     margin-right: 5px; }  .badges-row {     display: flex;     flex-wrap: wrap;     gap: 8px; }  .badge-item {     display: inline-flex;     align-items: center;     gap: 6px;     background: rgba(255, 255, 255, 0.08);     border: 1px solid rgba(255, 255, 255, 0.1);     padding: 5px 12px; /* Smaller buttons */     border-radius: 4px;     color: #e2e8f0;     font-size: 0.75rem; /* Smaller font */     text-decoration: none; }  .badge-item svg { width: 14px; height: 14px; }  /* --- MAIN CONTENT (Space-efficient) --- */ main {     padding: 35px 40px; /* Less inner padding */ }  .recipient-block {     margin-bottom: 25px; /* Less spacing */     display: flex;     justify-content: space-between;     align-items: flex-end;     font-size: 0.9rem;     color: #64748b;     border-bottom: 1px solid #e2e8f0;     padding-bottom: 10px; }  .subject {     font-size: 1.2rem;     font-weight: 700;     color: var(--primary);     margin-bottom: 20px; }  .highlight-text { font-weight: 600; color: var(--primary); }  .content {     font-size: 0.925rem; /* Key for single page: slightly smaller text */     color: var(--text-main);     line-height: 1.55; }  .content p {     margin-bottom: 1rem; /* More compact paragraphs */     text-align: justify; }  .greeting { margin-top: 2rem; } .signature { font-weight: 700; font-size: 1.1rem; color: var(--primary); margin-top: 5px; }  /* Print optimization (PDF) */ @media print {     body { padding: 0; background: white; }     .page { box-shadow: none; border-radius: 0; max-width: 100%; width: 100%; }     /* Force background colors when printing */     .header { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }  /* Mobile Adjustments */ @media (max-width: 600px) {     .header { padding: 20px; }     .header-top { flex-direction: column; align-items: flex-start; }     .contact-column { align-items: flex-start; margin-top: 10px; }     .header-bottom { flex-direction: column; align-items: flex-start; gap: 10px; }     main { padding: 25px; } }","html_content":"=<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Cover Letter - Your Name</title>\n    <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"style_one_page.css\">\n</head>\n<body>\n\n    <div class=\"page\">\n        \n        <header class=\"header\">\n            \n            <div class=\"header-top\">\n                <div class=\"identity-group\">\n                    <img src=\"https://example.com/your-profile-photo.jpg\" alt=\"Your Name\" class=\"profile-photo\">\n                    <div class=\"name-block\">\n                        <h1 class=\"name\">Your Name</h1>\n                        <h2 class=\"role\">Your Job Title</h2>\n                    </div>\n                </div>\n\n                <div class=\"contact-column\">\n                    <a href=\"mailto:your.email@example.com\" class=\"contact-item\">\n                        your.email@example.com\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                            <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"/>\n                            <polyline points=\"22,6 12,13 2,6\"/>\n                        </svg>\n                    </a>\n                    <a href=\"tel:+49XXXXXXXXXX\" class=\"contact-item\">\n                        +49 XXX XXXX XXXX\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                            <path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z\"/>\n                        </svg>\n                    </a>\n                    <div class=\"contact-item\">\n                        Your City, Country\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                            <path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"/>\n                            <circle cx=\"12\" cy=\"10\" r=\"3\"/>\n                        </svg>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"header-bottom\">\n                <span class=\"section-label\">Certificates & Portfolio:</span>\n                <div class=\"badges-row\">\n                    <a href=\"https://www.linkedin.com/in/yourprofile/\" target=\"_blank\" class=\"badge-item\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"/><rect x=\"2\" y=\"9\" width=\"4\" height=\"12\"/><circle cx=\"4\" cy=\"4\" r=\"2\"/></svg>\n                        LinkedIn\n                    </a>\n                    <a href=\"https://n8n.io/creators/yourprofile/\" target=\"_blank\" class=\"badge-item\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5\"/></svg>\n                        n8n Creator\n                    </a>\n                    <a href=\"https://example.com/your-certificate-1\" target=\"_blank\" class=\"badge-item\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"8\" r=\"7\" /><polyline points=\"8.21 13.89 7 23 12 20 17 23 15.79 13.88\" /></svg>\n                        IBM AI Developer\n                    </a>\n                    <a href=\"https://example.com/your-certificate-2\" target=\"_blank\" class=\"badge-item\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 15l-2 5l2 2l2 -2l-2 -5z\"/><circle cx=\"12\" cy=\"9\" r=\"7\"/><path d=\"M12 6v6\"/><path d=\"M9 9h6\"/></svg>\n                        AI for Business\n                    </a>\n                </div>\n            </div>\n\n        </header>\n\n        <main>\n            <section class=\"recipient-block\">\n                <div class=\"address\">\n                    To: <span class=\"highlight-text\">{{ $('Document job results in Google sheet').item.json.company }}</span>\n                </div>\n                <div class=\"date\">\n                    Your City, <span id=\"current-date\"></span>\n                </div>\n            </section>\n\n            <div class=\"subject\">\n                Application as <span class=\"highlight-text\"> {{ $('Document job results in Google sheet').item.json.title }} </span>\n            </div>\n\n            <div class=\"content\">\n                <p>Dear {{ $('Document job results in Google sheet').item.json.company }} Team,</p>\n\n                <p>The advertised position appeals to me strongly, and I would like to apply for it.</p>\n\n                <p>[Describe your relevant experience and key achievements. Mention specific tools, projects, or results that demonstrate your qualifications.]</p>\n\n                <p>I would be delighted to discuss the concrete AI/automation use cases I have implemented and explore potential collaboration.</p>\n\n                <p class=\"greeting\">Best regards,</p>\n                <div class=\"signature\">Your Name</div>\n            </div>\n        </main>\n\n    </div>\n\n    <script>\n        const dateElement = document.getElementById('current-date');\n        const today = new Date();\n        \n        const options = { year: 'numeric', month: 'long', day: 'numeric' };\n        dateElement.textContent = today.toLocaleDateString('en-US', options);\n    </script>\n</body>\n</html>","output_format":"file"},"typeVersion":1},{"id":"e1a7d39d-574b-414c-b72f-7f6b6fe6a02a","name":"Upload cover letter to Drive","type":"n8n-nodes-base.googleDrive","position":[992,864],"parameters":{"name":"=YourName_CoverLetter_{{ $('Document job results in Google sheet').item.json.company}}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultUrl":"https://drive.google.com/drive/folders/YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultName":"Job_applications"}},"typeVersion":3},{"id":"d857bb90-49c7-4e56-b032-bbdb9dcc1e60","name":"Create folder for attachments","type":"n8n-nodes-base.googleDrive","position":[1216,864],"parameters":{"name":"={{ $('Document job results in Google sheet').item.json.title }}_{{ $('Document job results in Google sheet').item.json.company }}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultUrl":"https://drive.google.com/drive/folders/YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultName":"Job_applications"},"resource":"folder"},"typeVersion":3},{"id":"e2050764-092b-44fe-af19-c47493387ce9","name":"Move cover letter to attachments folder","type":"n8n-nodes-base.googleDrive","position":[1440,864],"parameters":{"fileId":{"__rl":true,"mode":"id","value":"={{ $('Upload cover letter to Drive').item.json.id }}"},"driveId":{"__rl":true,"mode":"list","value":"My Drive"},"folderId":{"__rl":true,"mode":"id","value":"={{ $json.id }}"},"operation":"move"},"typeVersion":3},{"id":"9bb3bc59-25a0-41d0-a08c-281c63a4e20a","name":"Create customized CV","type":"n8n-nodes-htmlcsstopdf.htmlcsstopdf","position":[1664,864],"parameters":{"css_content":":root {     /* Same color palette as cover letter */     --primary: #0f172a;       /* Deep Navy */     --accent: #38bdf8;        /* Sky Blue */     --text-white: #f8fafc;     --text-dim: #94a3b8;     --bg-page: #f1f5f9;     --card-bg: #ffffff;     --text-main: #334155;     --text-light: #64748b;          --radius: 12px;     --shadow: 0 15px 40px -10px rgba(0,0,0,0.2); }  * { box-sizing: border-box; margin: 0; padding: 0; }  body {     font-family: 'Inter', sans-serif;     background-color: var(--bg-page);     color: var(--text-main);     display: flex;     justify-content: center;     padding: 20px;     min-height: 100vh;     line-height: 1.5;     -webkit-font-smoothing: antialiased; }  .page {     background: var(--card-bg);     width: 100%;     max-width: 900px; /* Slightly wider for CV */     border-radius: var(--radius);     box-shadow: var(--shadow);     overflow: hidden;     position: relative; }  /* --- HEADER (matches cover letter) --- */ .header {     background-color: var(--primary);     color: var(--text-white);     padding: 30px 40px;     display: flex;     flex-direction: column;     gap: 20px; }  .header-top {     display: flex;     justify-content: space-between;     align-items: center; }  .identity-group {     display: flex;     align-items: center;     gap: 20px; }  .profile-photo {     width: 80px;     height: 80px;     border-radius: 50%;     object-fit: cover;     border: 3px solid rgba(255,255,255,0.1); }  .name-block .name {     font-size: 2rem;     font-weight: 700;     line-height: 1;     color: #fff;     margin-bottom: 5px; }  .name-block .role {     font-size: 1rem;     color: var(--accent);     font-weight: 500; }  /* Header Contact Row */ .header-contact {     display: flex;     flex-wrap: wrap;     gap: 15px;     font-size: 0.85rem;     color: var(--text-dim);     padding-top: 15px;     border-top: 1px solid rgba(255,255,255,0.1); }  .contact-item {     display: flex;     align-items: center;     gap: 6px;     color: var(--text-white);     text-decoration: none;     transition: color 0.2s; }  .contact-item:hover { color: var(--accent); } .contact-item svg { width: 14px; height: 14px; color: var(--accent); }  /* --- GRID LAYOUT --- */ .cv-grid {     display: grid;     grid-template-columns: 2fr 1fr; /* 2/3 Main, 1/3 Sidebar */     min-height: 800px; }  /* --- LEFT COLUMN (Experience) --- */ .main-column {     padding: 35px 40px; }  .section-title {     font-size: 0.85rem;     text-transform: uppercase;     letter-spacing: 0.1em;     color: var(--text-light);     font-weight: 700;     margin-bottom: 20px;     display: flex;     align-items: center;     gap: 10px; }  .section-title::after {     content: '';     flex: 1;     height: 1px;     background: #e2e8f0; }  .section-title svg { width: 16px; height: 16px; color: var(--primary); }  /* Job Items */ .job-item {     margin-bottom: 25px;     position: relative;     padding-left: 20px;     border-left: 2px solid #e2e8f0; }  .job-item::before {     content: '';     position: absolute;     left: -6px;     top: 0;     width: 10px;     height: 10px;     border-radius: 50%;     background: var(--bg-page);     border: 2px solid var(--accent); }  .job-header {     margin-bottom: 8px; }  .job-title {     font-size: 1rem;     font-weight: 700;     color: var(--primary); }  .job-company {     font-size: 0.9rem;     font-weight: 600;     color: var(--text-main); }  .job-meta {     font-size: 0.8rem;     color: var(--text-light);     margin-top: 2px; }  .job-desc {     font-size: 0.9rem;     color: var(--text-main);     line-height: 1.5; }  .job-desc ul {     list-style-type: none;     padding-left: 0; }  .job-desc li {     position: relative;     padding-left: 15px;     margin-bottom: 4px; }  .job-desc li::before {     content: '•';     position: absolute;     left: 0;     color: var(--accent);     font-weight: bold; }  /* --- RIGHT COLUMN (Sidebar) --- */ .sidebar-column {     background-color: #f8fafc; /* Very light grey */     padding: 35px 30px;     border-left: 1px solid #e2e8f0; }  .sidebar-section {     margin-bottom: 30px; }  .sidebar-title {     font-size: 0.8rem;     text-transform: uppercase;     font-weight: 700;     color: var(--primary);     margin-bottom: 15px;     letter-spacing: 0.05em; }  /* Skills Tags */ .skill-tags {     display: flex;     flex-wrap: wrap;     gap: 8px; }  .tag {     background: #fff;     border: 1px solid #cbd5e1;     padding: 4px 10px;     border-radius: 6px;     font-size: 0.8rem;     font-weight: 500;     color: var(--text-main); }  .tag.highlight {     background: rgba(56, 189, 248, 0.1);     border-color: var(--accent);     color: var(--primary); }  /* List Items (Languages, Certs) */ .info-list {     list-style: none;     font-size: 0.9rem; }  .info-list li {     margin-bottom: 10px; }  .info-label {     display: block;     font-weight: 600;     color: var(--text-main); }  .info-detail {     display: block;     font-size: 0.85rem;     color: var(--text-light); }  /* Mobile */ @media (max-width: 700px) {     .cv-grid { grid-template-columns: 1fr; }     .sidebar-column { border-left: none; border-top: 1px solid #e2e8f0; background: #fff; }     .header { padding: 25px; }     .header-top { flex-direction: column; align-items: flex-start; gap: 20px; } }  @media print {     body { padding: 0; background: white; }     .page { box-shadow: none; max-width: 100%; border-radius: 0; }     .header { -webkit-print-color-adjust: exact; print-color-adjust: exact; }     .tag.highlight { -webkit-print-color-adjust: exact; print-color-adjust: exact; }     /* Page break control */     .job-item { break-inside: avoid; } }","html_content":"=<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>CV - Your Name</title>\n    <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n    <style>\n        :root {\n            --primary: #0f172a;       /* Deep Navy */\n            --accent: #2563eb;        /* Stronger blue for links */\n            --text-white: #f8fafc;\n            --text-dim: #94a3b8;\n            --bg-page: #f1f5f9;\n            --card-bg: #ffffff;\n            --text-main: #334155;\n            --text-light: #64748b;\n            --a4-width: 210mm;\n            --a4-height: 296mm;\n        }\n\n        * { box-sizing: border-box; margin: 0; padding: 0; }\n\n        body {\n            font-family: 'Inter', sans-serif;\n            background-color: #555; \n            color: var(--text-main);\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            padding: 20px;\n            gap: 20px;\n            -webkit-font-smoothing: antialiased;\n        }\n\n        .page {\n            background: var(--card-bg);\n            width: var(--a4-width);\n            min-height: var(--a4-height);\n            box-shadow: 0 10px 30px rgba(0,0,0,0.3);\n            overflow: hidden;\n            position: relative;\n            display: flex;\n            flex-direction: column;\n        }\n\n        /* --- HEADER --- */\n        .header {\n            background-color: var(--primary);\n            color: var(--text-white);\n            padding: 35px 40px;\n            display: flex;\n            flex-direction: column;\n            gap: 20px;\n        }\n\n        .header-top { display: flex; justify-content: space-between; align-items: center; }\n        .identity-group { display: flex; align-items: center; gap: 20px; }\n        \n        .profile-photo {\n            width: 85px; height: 85px; border-radius: 50%;\n            object-fit: cover; border: 3px solid rgba(255,255,255,0.1);\n        }\n\n        .name-block .name { font-size: 2.2rem; font-weight: 700; line-height: 1; color: #fff; margin-bottom: 5px; }\n        .name-block .role { font-size: 1.1rem; color: #60a5fa; font-weight: 500; }\n\n        .dynamic-tag {\n            background: rgba(255,255,255,0.1);\n            padding: 5px 12px; border-radius: 4px;\n            font-size: 0.85rem; color: #cbd5e1;\n            display: inline-block; margin-top: 10px;\n            border: 1px solid rgba(255,255,255,0.15);\n        }\n\n        /* Fixed Hover Effect */\n        .header-contact {\n            display: flex; flex-wrap: wrap; gap: 20px;\n            font-size: 0.9rem; color: var(--text-dim);\n            padding-top: 20px; border-top: 1px solid rgba(255,255,255,0.1);\n        }\n        \n        /* Specific selector to prevent group hovering */\n        .contact-item { \n            display: flex; align-items: center; gap: 8px; \n            color: var(--text-white); text-decoration: none; \n            transition: color 0.2s ease;\n        }\n        .contact-item svg { \n            width: 16px; height: 16px; color: #60a5fa; \n            transition: color 0.2s ease;\n        }\n        \n        /* Only affect the specific hovered item */\n        .contact-item:hover { color: #60a5fa; }\n        .contact-item:hover svg { color: #fff; }\n\n        /* --- CONTENT GRID --- */\n        .cv-grid {\n            display: grid; grid-template-columns: 68% 32%;\n            flex-grow: 1;\n        }\n\n        .main-column { padding: 40px; }\n        .sidebar-column { background-color: #f8fafc; padding: 40px 30px; border-left: 1px solid #e2e8f0; }\n\n        .section-title {\n            font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.1em;\n            color: var(--text-light); font-weight: 700; margin-bottom: 25px;\n            display: flex; align-items: center; gap: 10px;\n        }\n        .section-title svg { width: 18px; height: 18px; color: var(--primary); }\n        .section-title::after { flex: 1; height: 1px; background: #e2e8f0; content: ''; }\n\n        /* --- HYPERLINKS --- */\n        .link-highlight {\n            display: inline-flex; align-items: center; gap: 6px;\n            color: var(--accent); font-weight: 600; text-decoration: none;\n            background: rgba(37, 99, 235, 0.05); padding: 2px 8px;\n            border-radius: 4px; transition: all 0.2s; border: 1px solid transparent;\n        }\n        .link-highlight:hover {\n            background: rgba(37, 99, 235, 0.1); border-color: rgba(37, 99, 235, 0.2);\n        }\n        .link-highlight svg { width: 12px; height: 12px; flex-shrink: 0; }\n\n        /* --- TIMELINE --- */\n        .company-group { margin-bottom: 30px; }\n        .company-header { display: flex; align-items: baseline; gap: 8px; margin-bottom: 10px; }\n        .company-name { font-size: 1.15rem; font-weight: 700; color: var(--primary); }\n        .company-loc { font-size: 0.9rem; color: var(--text-light); }\n\n        .role-item, .job-item {\n            position: relative; padding-left: 20px; border-left: 2px solid #e2e8f0; padding-bottom: 20px;\n        }\n        .role-item:last-child { border-left-color: transparent; padding-bottom: 0; }\n        \n        .role-item::before, .job-item::before {\n            content: ''; position: absolute; left: -6px; top: 5px;\n            width: 10px; height: 10px; border-radius: 50%;\n            background: #fff; border: 2px solid var(--accent); z-index: 1;\n        }\n        .job-item::before { border-color: var(--text-light); } \n\n        .role-title, .job-title { font-size: 1rem; font-weight: 600; color: var(--text-main); }\n        .role-meta, .job-meta { font-size: 0.85rem; color: var(--text-light); margin-bottom: 6px; display: block; }\n        \n        ul { list-style: none; padding-left: 0; margin-top: 5px; }\n        li { position: relative; padding-left: 15px; margin-bottom: 4px; font-size: 0.95rem; color: var(--text-main); line-height: 1.5; }\n        li::before { content: '•'; position: absolute; left: 0; color: var(--accent); font-weight: bold; }\n\n        /* Sidebar Elements */\n        .sidebar-section { margin-bottom: 40px; }\n        .sidebar-title { font-size: 0.85rem; font-weight: 700; color: var(--primary); margin-bottom: 15px; text-transform: uppercase; }\n        \n        .skill-tags { display: flex; flex-wrap: wrap; gap: 8px; }\n        .tag {\n            background: #fff; border: 1px solid #cbd5e1; padding: 4px 10px;\n            border-radius: 4px; font-size: 0.85rem; font-weight: 500; color: var(--text-main);\n        }\n        .tag.highlight { background: #eff6ff; border-color: var(--accent); color: var(--accent); }\n\n        /* Sidebar Links (Certifications) */\n        .info-link { text-decoration: none; display: block; }\n        .info-link:hover .info-label { color: var(--accent); }\n\n        /* Mini Header Page 2 */\n        .header-mini {\n            background-color: var(--primary); color: var(--text-white);\n            padding: 15px 40px; display: flex; justify-content: space-between;\n            align-items: center; font-size: 0.9rem; color: var(--text-dim);\n        }\n        .header-mini strong { color: #fff; }\n\n        @media print {\n            body { background: white; padding: 0; gap: 0; }\n            .page { width: 100%; height: auto; box-shadow: none; margin: 0; page-break-after: always; }\n            .page:last-child { page-break-after: auto; }\n            .header, .header-mini { -webkit-print-color-adjust: exact; print-color-adjust: exact; }\n            .tag.highlight { -webkit-print-color-adjust: exact; print-color-adjust: exact; }\n            .link-highlight { border: 1px solid #e2e8f0; }\n        }\n    </style>\n</head>\n<body>\n\n    <div class=\"page\">\n        \n        <header class=\"header\">\n            <div class=\"header-top\">\n                <div class=\"identity-group\">\n                    <img src=\"https://example.com/your-profile-photo.jpg\" alt=\"Your Name\" class=\"profile-photo\">\n                    <div class=\"name-block\">\n                        <h1 class=\"name\">Your Name</h1>\n                        <h2 class=\"role\">Your Job Title</h2>\n                        <div class=\"dynamic-tag\">\n                            Tailored for <strong>{{ $('AI Agent').item.json.output.position }}</strong> at <strong>{{ $('AI Agent').item.json.output.company }}</strong>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"header-contact\">\n                <a href=\"mailto:your.email@example.com\" class=\"contact-item\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"/><polyline points=\"22,6 12,13 2,6\"/></svg>\n                    your.email@example.com\n                </a>\n                <span class=\"contact-item\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z\"/></svg>\n                    +49 XXX XXXX XXXX\n                </a>\n                <a href=\"https://www.linkedin.com/in/yourprofile/\" target=\"_blank\" class=\"contact-item\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"/><rect x=\"2\" y=\"9\" width=\"4\" height=\"12\"/><circle cx=\"4\" cy=\"4\" r=\"2\"/></svg>\n                    linkedin.com/in/yourprofile\n                </a>\n                <span class=\"contact-item\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"/><circle cx=\"12\" cy=\"10\" r=\"3\"/></svg>\n                    Your City\n                </span>\n            </div>\n        </header>\n\n        <div class=\"cv-grid\">\n            <div class=\"main-column\">\n                <div class=\"section-title\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"></rect><path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"></path></svg>\n                    Professional Experience\n                </div>\n\n                <div class=\"company-group\">\n                    <div class=\"company-header\">\n                        <span class=\"company-name\">Company A</span>\n                        <span class=\"company-loc\">| Your City</span>\n                    </div>\n                    <div class=\"role-item\">\n                        <div class=\"role-title\">Your Current Role Title</div>\n                        <span class=\"role-meta\">Apr 2025 – Present</span>\n                        <ul>\n                            <li><strong>AI Rollout:</strong> Integration and Administration of AI Tools (Langdock & OpenAI).</li>\n                            <li><strong>Automation:</strong> Building n8n , Langdock & Zapier workflows.</li>\n                            <li><strong>Market Research:</strong> C-Level compensation analysis & working on Executive Search projects.</li>\n                        </ul>\n                    </div>\n                    <div class=\"role-item\">\n                        <div class=\"role-title\">Market Analyst</div>\n                        <span class=\"role-meta\">Oct 2021 – Mar 2025</span>\n                        <ul>\n                            <li>Market research for executive search; competitor intelligence.</li>\n                            <li>Data Analytics & BI project evaluations (Power BI, Excel).</li>\n                        </ul>\n                    </div>\n                </div>\n\n                <div class=\"company-group\" style=\"margin-bottom:0;\">\n                    <div class=\"company-header\">\n                        <span class=\"company-name\">Company B</span>\n                        <span class=\"company-loc\">| Your City</span>\n                    </div>\n                    <div class=\"role-item\">\n                        <div class=\"role-title\">Market Research Project Manager</div>\n                        <span class=\"role-meta\">Apr 2021 – Sep 2021</span>\n                        <ul>\n                            <li>Management of international market research projects & Key Accounts.</li>\n                        </ul>\n                    </div>\n                    <div class=\"role-item\" style=\"border-left:none; padding-bottom:0;\">\n                        <div class=\"role-title\">Market Research Associate</div>\n                        <span class=\"role-meta\">Dec 2019 – Apr 2021</span>\n                        <ul>\n                            <li>Selection & training of interviewers; quality management.</li>\n                        </ul>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"sidebar-column\">\n                \n                <div class=\"sidebar-section\">\n                    <div class=\"sidebar-title\">AI, Automation & Data</div>\n                    <div class=\"skill-tags\">\n                        <span class=\"tag highlight\">n8n</span>\n                        <span class=\"tag highlight\">Langdock</span>\n                        <span class=\"tag highlight\">OpenAI API</span>\n                        <span class=\"tag highlight\">Generative AI</span>\n                        <span class=\"tag\">Zapier</span>\n                        <span class=\"tag\">Google Vertex</span>\n                        <span class=\"tag\">Prompt Eng.</span>\n                        <span class=\"tag\">Power BI</span>\n                        <span class=\"tag\">Excel (Adv.)</span>\n                        <span class=\"tag\">Project Mgmt</span>\n                    </div>\n                </div>\n\n                <div class=\"sidebar-section\">\n                    <div class=\"sidebar-title\">Certifications</div>\n                    <div style=\"display:flex; flex-direction:column; gap:12px;\">\n                        <div>\n                            <div style=\"font-weight:600; font-size:0.9rem; margin-bottom:4px;\">IBM AI Developer</div>\n                            <a href=\"https://example.com/your-certificate-1\" target=\"_blank\" class=\"link-highlight\" style=\"font-size:0.8rem;\">\n                                View Certificate\n                                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                            </a>\n                        </div>\n                        <div>\n                            <div style=\"font-weight:600; font-size:0.9rem; margin-bottom:4px;\">AI for Business</div>\n                            <a href=\"https://example.com/your-certificate-2\" target=\"_blank\" class=\"link-highlight\" style=\"font-size:0.8rem;\">\n                                View Certificate\n                                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                            </a>\n                        </div>\n                        <div>\n                            <div style=\"font-weight:600; font-size:0.9rem; margin-bottom:4px;\">n8n Creator</div>\n                            <a href=\"https://n8n.io/creators/yourprofile/\" target=\"_blank\" class=\"link-highlight\" style=\"font-size:0.8rem;\">\n                                View Profile\n                                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                            </a>\n                        </div>\n                    </div>\n                </div>\n\n            </div>\n        </div>\n    </div>\n\n    <div class=\"page\">\n        <div class=\"header-mini\">\n            <span><strong>Your Name</strong> - CV Continued</span>\n            <span>Page 2 / 2</span>\n        </div>\n\n        <div class=\"cv-grid\">\n            <div class=\"main-column\">\n                \n                <div class=\"section-title\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 20h9\"></path><path d=\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"></path></svg>\n                    Previous Roles\n                </div>\n\n                <div class=\"job-item\">\n                    <div class=\"job-title\">Research Assistant</div>\n                    <div class=\"company-name\" style=\"font-size:1rem;\">Company</div>\n                    <span class=\"job-meta\">Jun 2018 – Mar 2019</span>\n                    <ul><li>Literature research, data processing & teaching support.</li></ul>\n                </div>\n\n                <div class=\"job-item\">\n                    <div class=\"job-title\">Housing Policy Intern</div>\n                    <div class=\"company-name\" style=\"font-size:1rem;\">Company</div>\n                    <span class=\"job-meta\">Aug 2017 – Sep 2017</span>\n                </div>\n\n                <div class=\"job-item\">\n                    <div class=\"job-title\">Management Assistant</div>\n                    <div class=\"company-name\" style=\"font-size:1rem;\">Company</div>\n                    <span class=\"job-meta\">May 2017 – Aug 2017</span>\n                </div>\n\n                <div class=\"job-item\">\n                    <div class=\"job-title\">Program Coordinator & Trainer</div>\n                    <div class=\"company-name\" style=\"font-size:1rem;\">Company</div>\n                    <span class=\"job-meta\">2013 – 2015</span>\n                    <ul><li>Disaster Management & Team Lead (20 FTEs).</li></ul>\n                </div>\n\n                <div class=\"section-title\" style=\"margin-top:40px;\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path><polyline points=\"14 2 14 8 20 8\"></polyline><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line><polyline points=\"10 9 9 9 8 9\"></polyline></svg>\n                    Publications\n                </div>\n                <div style=\"font-size:0.9rem; display:flex; flex-direction:column; gap:12px;\">\n                    <div>\n                        <a href=\"https://example.com/your-publication-1\" target=\"_blank\" class=\"link-highlight\">\n                            Publication Title 1\n                            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                        </a>\n                    </div>\n                    <div>\n                        <a href=\"https://example.com/your-publication-2\" target=\"_blank\" class=\"link-highlight\">\n                            Publication Title 2\n                            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                        </a>\n                    </div>\n                    <div>\n                        <a href=\"https://example.com/your-publication-3\" target=\"_blank\" class=\"link-highlight\">\n                            Publication Title 3\n                            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                        </a>\n                    </div>\n                    <div>\n                        <a href=\"https://example.com/your-publication-4\" target=\"_blank\" class=\"link-highlight\">\n                            Publication Title 4\n                            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                        </a>\n                        <div style=\"font-size:0.85rem; color:var(--text-light); margin-top:4px; padding-left:4px;\">\n                            <em>Publication Subtitle.</em> (2020)\n                        </div>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"sidebar-column\">\n                \n                <div class=\"sidebar-section\">\n                    <div class=\"sidebar-title\">Education</div>\n                    <div style=\"margin-bottom:15px;\">\n                        <div style=\"font-weight:600;\">Your Degree (M.Sc.)</div>\n                        <div style=\"font-size:0.85rem; color:#64748b;\">Your University</div>\n                        <div style=\"font-size:0.85rem; color:#94a3b8;\">2017 – 2019</div>\n                    </div>\n                    <div>\n                        <div style=\"font-weight:600;\">Your Degree (B.A.)</div>\n                        <div style=\"font-size:0.85rem; color:#64748b;\">Your University</div>\n                        <div style=\"font-size:0.85rem; color:#94a3b8;\">2014</div>\n                    </div>\n                </div>\n\n                <div class=\"sidebar-section\">\n                    <div class=\"sidebar-title\">Languages</div>\n                    <div style=\"display:flex; flex-direction:column; gap:10px;\">\n                        <div>\n                            <div style=\"font-weight:600; font-size:0.9rem;\">German</div>\n                            <div style=\"font-size:0.85rem; color:#64748b;\">Full Professional</div>\n                        </div>\n                        <div>\n                            <div style=\"font-weight:600; font-size:0.9rem;\">English</div>\n                            <div style=\"font-size:0.85rem; color:#64748b;\">Professional Working</div>\n                        </div>\n                        <div>\n                            <div style=\"font-weight:600; font-size:0.9rem;\">Arabic</div>\n                            <div style=\"font-size:0.85rem; color:#64748b;\">Native</div>\n                        </div>\n                    </div>\n                </div>\n\n            </div>\n        </div>\n    </div>\n\n</body>\n</html>","output_format":"file"},"typeVersion":1},{"id":"421d58f8-3993-4929-89fb-12f7a5b7d035","name":"Upload customized CV","type":"n8n-nodes-base.googleDrive","position":[1888,864],"parameters":{"name":"=YourName_CV_for_{{ $('Document job results in Google sheet').item.json.company}}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultUrl":"https://drive.google.com/drive/folders/YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultName":"Job_applications"}},"typeVersion":3},{"id":"7cd4cf9b-4382-48e8-8d13-afc09a0d0c8c","name":"Move CV to attachments folder","type":"n8n-nodes-base.googleDrive","position":[2112,864],"parameters":{"fileId":{"__rl":true,"mode":"id","value":"={{ $('Upload customized CV').item.json.id }}"},"driveId":{"__rl":true,"mode":"list","value":"My Drive"},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create folder for attachments').item.json.id }}"},"operation":"move"},"typeVersion":3},{"id":"9c78ad96-06de-40b6-a0c8-73baba33e951","name":"Document link to attachments folder","type":"n8n-nodes-base.googleSheets","position":[2336,864],"parameters":{"columns":{"value":{"via":"={{ $('Document job results in Google sheet').item.json.via }}","type":"={{ $('Document job results in Google sheet').item.json.type }}","link1":"={{ $('Document job results in Google sheet').item.json.link1 }}","link2":"={{ $('Document job results in Google sheet').item.json.link2 }}","link3":"={{ $('Document job results in Google sheet').item.json.link3 }}","link4":"={{ $('Document job results in Google sheet').item.json.link4 }}","link5":"={{ $('Document job results in Google sheet').item.json.link5 }}","link6":"={{ $('Document job results in Google sheet').item.json.link6 }}","link7":"={{ $('Document job results in Google sheet').item.json.link7 }}","link8":"={{ $('Document job results in Google sheet').item.json.link8 }}","link9":"={{ $('Document job results in Google sheet').item.json.link9 }}","title":"={{ $('Document job results in Google sheet').item.json.title }}","job_id":"={{ $('Document job results in Google sheet').item.json.job_id }}","link10":"={{ $('Document job results in Google sheet').item.json.link10 }}","salary":"={{ $('Document job results in Google sheet').item.json.salary }}","company":"={{ $('Document job results in Google sheet').item.json.company }}","location":"={{ $('Document job results in Google sheet').item.json.location }}","posted_at":"={{ $('Document job results in Google sheet').item.json.posted_at }}","share_link":"={{ $('Document job results in Google sheet').item.json.share_link }}","description":"={{ $('Document job results in Google sheet').item.json.description }}","link_drive_ornder":"=https://drive.google.com/drive/u/0/folders/{{ $('Create folder for attachments').item.json.id }}","application_platform_1":"={{ $('Document job results in Google sheet').item.json.application_platform_1 }}","application_platform_2":"={{ $('Document job results in Google sheet').item.json.application_platform_2 }}","application_platform_3":"={{ $('Document job results in Google sheet').item.json.application_platform_3 }}","application_platform_4":"={{ $('Document job results in Google sheet').item.json.application_platform_4 }}","application_platform_5":"={{ $('Document job results in Google sheet').item.json.application_platform_5 }}","application_platform_6":"={{ $('Document job results in Google sheet').item.json.application_platform_6 }}","application_platform_7":"={{ $('Document job results in Google sheet').item.json.application_platform_7 }}","application_platform_8":"={{ $('Document job results in Google sheet').item.json.application_platform_8 }}","application_platform_9":"={{ $('Document job results in Google sheet').item.json.application_platform_9 }}","application_platform_10":"={{ $('Document job results in Google sheet').item.json.application_platform_10 }}"},"schema":[{"id":"via","type":"string","display":true,"required":false,"displayName":"via","defaultMatch":false,"canBeUsedToMatch":true},{"id":"title","type":"string","display":true,"required":false,"displayName":"title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"job_id","type":"string","display":true,"removed":false,"required":false,"displayName":"job_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"location","type":"string","display":true,"required":false,"displayName":"location","defaultMatch":false,"canBeUsedToMatch":true},{"id":"posted_at","type":"string","display":true,"required":false,"displayName":"posted_at","defaultMatch":false,"canBeUsedToMatch":true},{"id":"salary","type":"string","display":true,"required":false,"displayName":"salary","defaultMatch":false,"canBeUsedToMatch":true},{"id":"type","type":"string","display":true,"required":false,"displayName":"type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"share_link","type":"string","display":true,"required":false,"displayName":"share_link","defaultMatch":false,"canBeUsedToMatch":true},{"id":"description","type":"string","display":true,"required":false,"displayName":"description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"company","type":"string","display":true,"required":false,"displayName":"company","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link1","type":"string","display":true,"required":false,"displayName":"link1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_1","type":"string","display":true,"required":false,"displayName":"application_platform_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link2","type":"string","display":true,"required":false,"displayName":"link2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_2","type":"string","display":true,"required":false,"displayName":"application_platform_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link3","type":"string","display":true,"removed":false,"required":false,"displayName":"link3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_3","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link4","type":"string","display":true,"removed":false,"required":false,"displayName":"link4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_4","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link5","type":"string","display":true,"removed":false,"required":false,"displayName":"link5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_5","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link6","type":"string","display":true,"removed":false,"required":false,"displayName":"link6","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_6","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_6","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link7","type":"string","display":true,"removed":false,"required":false,"displayName":"link7","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_7","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_7","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link8","type":"string","display":true,"removed":false,"required":false,"displayName":"link8","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_8","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_8","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link9","type":"string","display":true,"removed":false,"required":false,"displayName":"link9","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_9","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_9","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link10","type":"string","display":true,"removed":false,"required":false,"displayName":"link10","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_10","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_10","defaultMatch":false,"canBeUsedToMatch":true},{"id":"status","type":"string","display":true,"removed":true,"required":false,"displayName":"status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link_drive_ornder","type":"string","display":true,"removed":false,"required":false,"displayName":"link_drive_ornder","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status-tracking","type":"string","display":true,"removed":true,"required":false,"displayName":"Status-tracking","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["job_id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_ID/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEETS_ID","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_ID/edit?usp=drivesdk","cachedResultName":"job_application"}},"typeVersion":4.7},{"id":"7d1d36d2-b135-4b61-aa74-96664f6617cd","name":"Document job results in Google sheet","type":"n8n-nodes-base.googleSheets","position":[544,768],"parameters":{"columns":{"value":{"via":"={{ $('Extract Job results from SERP-API response').item.json.via }}","type":"={{ $('Extract Job results from SERP-API response').item.json.type }}","link1":"={{ $('Extract Job results from SERP-API response').item.json.link1 }}","link2":"={{ $('Extract Job results from SERP-API response').item.json.link2 }}","link3":"={{ $('Extract Job results from SERP-API response').item.json.link3 }}","link4":"={{ $('Extract Job results from SERP-API response').item.json.link4 }}","link5":"={{ $('Extract Job results from SERP-API response').item.json.link5 }}","link6":"={{ $('Extract Job results from SERP-API response').item.json.link6 }}","link7":"={{ $('Extract Job results from SERP-API response').item.json.link7 }}","link8":"={{ $('Extract Job results from SERP-API response').item.json.link8 }}","link9":"={{ $('Extract Job results from SERP-API response').item.json.link9 }}","title":"={{ $('Extract Job results from SERP-API response').item.json.title }}","job_id":"={{ $('Extract Job results from SERP-API response').item.json.job_id }}\n","link10":"={{ $('Extract Job results from SERP-API response').item.json.link10 }}","salary":"={{ $('Extract Job results from SERP-API response').item.json.salary }}","company":"={{ $('Extract Job results from SERP-API response').item.json.company }}","location":"={{ $('Extract Job results from SERP-API response').item.json.location }}","posted_at":"={{ $('Extract Job results from SERP-API response').item.json.posted_at }}","share_link":"={{ $('Extract Job results from SERP-API response').item.json.share_link }}","description":"={{ $('Extract Job results from SERP-API response').item.json.description }}","application_platform_1":"={{ $('Extract Job results from SERP-API response').item.json.application_platform_1 }}","application_platform_2":"={{ $('Extract Job results from SERP-API response').item.json.application_platform_2 }}","application_platform_3":"={{ $('Extract Job results from SERP-API response').item.json.application_platform_3 }}","application_platform_4":"={{ $('Extract Job results from SERP-API response').item.json.application_platform_4 }}","application_platform_5":"={{ $('Extract Job results from SERP-API response').item.json.application_platform_5 }}","application_platform_6":"={{ $('Extract Job results from SERP-API response').item.json.application_platform_6 }}","application_platform_7":"={{ $('Extract Job results from SERP-API response').item.json.application_platform_7 }}","application_platform_8":"={{ $('Extract Job results from SERP-API response').item.json.application_platform_8 }}","application_platform_9":"={{ $('Extract Job results from SERP-API response').item.json.application_platform_9 }}","application_platform_10":"={{ $('Extract Job results from SERP-API response').item.json.application_platform_10 }}"},"schema":[{"id":"via","type":"string","display":true,"required":false,"displayName":"via","defaultMatch":false,"canBeUsedToMatch":true},{"id":"title","type":"string","display":true,"required":false,"displayName":"title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"job_id","type":"string","display":true,"removed":false,"required":false,"displayName":"job_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"location","type":"string","display":true,"required":false,"displayName":"location","defaultMatch":false,"canBeUsedToMatch":true},{"id":"posted_at","type":"string","display":true,"required":false,"displayName":"posted_at","defaultMatch":false,"canBeUsedToMatch":true},{"id":"salary","type":"string","display":true,"required":false,"displayName":"salary","defaultMatch":false,"canBeUsedToMatch":true},{"id":"type","type":"string","display":true,"required":false,"displayName":"type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"share_link","type":"string","display":true,"required":false,"displayName":"share_link","defaultMatch":false,"canBeUsedToMatch":true},{"id":"description","type":"string","display":true,"required":false,"displayName":"description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"company","type":"string","display":true,"required":false,"displayName":"company","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link1","type":"string","display":true,"required":false,"displayName":"link1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_1","type":"string","display":true,"required":false,"displayName":"application_platform_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link2","type":"string","display":true,"required":false,"displayName":"link2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_2","type":"string","display":true,"required":false,"displayName":"application_platform_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link3","type":"string","display":true,"removed":false,"required":false,"displayName":"link3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_3","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link4","type":"string","display":true,"removed":false,"required":false,"displayName":"link4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_4","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link5","type":"string","display":true,"removed":false,"required":false,"displayName":"link5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_5","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link6","type":"string","display":true,"removed":false,"required":false,"displayName":"link6","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_6","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_6","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link7","type":"string","display":true,"removed":false,"required":false,"displayName":"link7","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_7","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_7","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link8","type":"string","display":true,"removed":false,"required":false,"displayName":"link8","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_8","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_8","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link9","type":"string","display":true,"removed":false,"required":false,"displayName":"link9","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_9","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_9","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link10","type":"string","display":true,"removed":false,"required":false,"displayName":"link10","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_10","type":"string","display":true,"removed":false,"required":false,"displayName":"application_platform_10","defaultMatch":false,"canBeUsedToMatch":true},{"id":"status","type":"string","display":true,"removed":true,"required":false,"displayName":"status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link_drive_ornder","type":"string","display":true,"removed":true,"required":false,"displayName":"link_drive_ornder","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status-tracking","type":"string","display":true,"removed":true,"required":false,"displayName":"Status-tracking","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["job_id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_ID/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEETS_ID","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_ID/edit?usp=drivesdk","cachedResultName":"job_application"}},"typeVersion":4.7},{"id":"a7c925df-c72b-46bd-98d3-72c4a856c68b","name":"AI Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[80,176],"parameters":{"text":"=You are an expert web scraping and data extraction agent specialized in analyzing job posting webpages. Your task is to visit a provided job advertisement URL and extract structured data into a precise JSON format.\n\n**Input Context:**\nYou will receive a job posting URL. You must use your browsing capabilities to access the webpage found at this URL and analyze its content.\n\n**Extraction Rules:**\n1.  **Success Validation:** Determine if the page content is a valid, accessible job advertisement. If you encounter a CAPTCHA, login wall, 404 error, \"job expired\" message, or if the page is not a specific job ad, set 'extraction_successful' to `false`.\n2.  **Strict Fidelity:** Extract information exactly as it appears on the visited page. Do not summarize or truncate the 'description' field.\n3.  **Missing Data:** If a specific field cannot be found or if 'extraction_successful' is false, return an empty string (`\"\"`) for text fields.\n4.  **Platform Identification:** Derive the 'platform' field solely from the domain name of the provided URL (e.g., 'linkedin.com' -> 'LinkedIn', 'indeed.com' -> 'Indeed').\n5.  **URLs:** Ensure the 'link' and 'share_link' fields contain the exact URL provided in the user input.\n6.  **Language Detection:** Analyze the main text of the job description to determine the language. You must classify it strictly as 'de', 'en', or 'other'.\n\n**Fields to Extract:**\n\n* **extraction_successful**: Boolean (`true` or `false`). Set to `true` if job details were found and parsed. Set to `false` if blocked, expired, or an error occurred.\n* **position**: The official job title of the role (e.g., \"Senior Backend Engineer\").\n* **platform**: The name of the job board or website (derived from URL).\n* **link**: The original URL of the job posting.\n* **location**: The geographical location of the job.\n* **posted_at**: The date or time expression indicating when the job was posted.\n* **salary**: Any compensation details mentioned.\n* **share_link**: The exact same URL as the 'link' field.\n* **description**: The FULL body text of the job advertisement.\n* **company**: The name of the company hiring for the position.\n* **language**: The detected language of the job description ('de', 'en', 'other').\n\n**Output Format:**\nReturn ONLY the raw JSON object. Do not include markdown formatting.\njson scheme:\n{\n  \"name\": \"extract_job_posting_data\",\n  \"description\": \"Extracts detailed information from a job posting website, including the job title and language detection.\",\n  \"strict\": true,\n  \"schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"position\": {\n        \"type\": \"string\",\n        \"description\": \"The official job title or role name found in the advertisement.\"\n      },\n      \"platform\": {\n        \"type\": \"string\",\n        \"description\": \"The name of the platform derived from the URL (e.g., LinkedIn, Indeed, StepStone).\"\n      },\n      \"link\": {\n        \"type\": \"string\",\n        \"description\": \"The original URL of the job posting.\"\n      },\n      \"location\": {\n        \"type\": \"string\",\n        \"description\": \"The geographical location or remote status found in the ad. Empty string if not found.\"\n      },\n      \"posted_at\": {\n        \"type\": \"string\",\n        \"description\": \"The date or relative time the job was posted (e.g., '2 days ago'). Empty string if not found.\"\n      },\n      \"salary\": {\n        \"type\": \"string\",\n        \"description\": \"Salary or compensation information. Empty string if not found.\"\n      },\n      \"share_link\": {\n        \"type\": \"string\",\n        \"description\": \"Must match the 'link' field exactly.\"\n      },\n      \"description\": {\n        \"type\": \"string\",\n        \"description\": \"The full, unabridged text of the job advertisement. Do not summarize.\"\n      },\n      \"company\": {\n        \"type\": \"string\",\n        \"description\": \"The name of the hiring company. Empty string if not found.\"\n      },\n      \"language\": {\n        \"type\": \"string\",\n        \"enum\": [\"de\", \"en\", \"other\"],\n        \"description\": \"The language of the job advertisement text. 'de' for German, 'en' for English, 'other' for anything else.\"\n      }\n    },\n    \"required\": [\n      \"position\",\n      \"platform\",\n      \"link\",\n      \"location\",\n      \"posted_at\",\n      \"salary\",\n      \"share_link\",\n      \"description\",\n      \"company\",\n      \"language\"\n    ],\n    \"additionalProperties\": false\n  }\n}\n\n\n\nInput URL:\n{{ $('Telegram Trigger').item.json.message.text }}","options":{},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"acff95a1-a367-4143-92a9-32fb8c539145","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[48,400],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-5.1","cachedResultName":"gpt-5.1"},"options":{},"builtInTools":{"webSearch":{"searchContextSize":"medium"}}},"typeVersion":1.3},{"id":"e89deee9-1ccf-4e9b-9417-38b7d7520234","name":"Auto-fixing Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserAutofixing","position":[176,400],"parameters":{"options":{}},"typeVersion":1},{"id":"bcef6c84-9eb0-49dd-aabf-0c5cdfbec259","name":"OpenAI Chat Model1","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[192,608],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-5.1","cachedResultName":"gpt-5.1"},"options":{},"builtInTools":{}},"typeVersion":1.3},{"id":"77b121fe-1699-4f6e-9609-025aca96fc3b","name":"If","type":"n8n-nodes-base.if","position":[-1088,720],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"4cc66b7b-7cdb-41cf-bbd3-9f3eed837405","operator":{"type":"string","operation":"contains"},"leftValue":"={{ $json.message.text }}","rightValue":"http"}]}},"typeVersion":2.3},{"id":"afc491a5-2418-4d9a-b7e2-e899d26afec3","name":"Structured Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[320,608],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"name\": \"extract_job_posting_data\",\n  \"description\": \"Extracts detailed information from a job posting website and validates success.\",\n  \"strict\": true,\n  \"schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"extraction_successful\": {\n        \"type\": \"boolean\",\n        \"description\": \"True if the job details were successfully accessed and parsed. False if blocked (captcha, login), expired, or 404.\"\n      },\n      \"position\": {\n        \"type\": \"string\",\n        \"description\": \"The official job title or role name found in the advertisement.\"\n      },\n      \"platform\": {\n        \"type\": \"string\",\n        \"description\": \"The name of the platform derived from the URL (e.g., LinkedIn, Indeed).\"\n      },\n      \"link\": {\n        \"type\": \"string\",\n        \"description\": \"The original URL of the job posting.\"\n      },\n      \"location\": {\n        \"type\": \"string\",\n        \"description\": \"The geographical location or remote status. Empty string if not found.\"\n      },\n      \"posted_at\": {\n        \"type\": \"string\",\n        \"description\": \"The date or relative time the job was posted. Empty string if not found.\"\n      },\n      \"salary\": {\n        \"type\": \"string\",\n        \"description\": \"Salary or compensation information. Empty string if not found.\"\n      },\n      \"share_link\": {\n        \"type\": \"string\",\n        \"description\": \"Must match the 'link' field exactly.\"\n      },\n      \"description\": {\n        \"type\": \"string\",\n        \"description\": \"The full, unabridged text of the job advertisement.\"\n      },\n      \"company\": {\n        \"type\": \"string\",\n        \"description\": \"The name of the hiring company. Empty string if not found.\"\n      },\n      \"language\": {\n        \"type\": \"string\",\n        \"enum\": [\"de\", \"en\", \"other\"],\n        \"description\": \"The language of the job advertisement text.\"\n      }\n    },\n    \"required\": [\n      \"extraction_successful\",\n      \"position\",\n      \"platform\",\n      \"link\",\n      \"location\",\n      \"posted_at\",\n      \"salary\",\n      \"share_link\",\n      \"description\",\n      \"company\",\n      \"language\"\n    ],\n    \"additionalProperties\": false\n  }\n}"},"typeVersion":1.3},{"id":"85c90d06-3c41-4dde-a190-b85eb9151c6e","name":"HTML to PDF","type":"n8n-nodes-htmlcsstopdf.htmlcsstopdf","position":[768,480],"parameters":{"css_content":":root {     --primary: #0f172a;     --accent: #38bdf8;     --text-white: #f8fafc;     --text-dim: #94a3b8;     --bg-page: #f1f5f9;     --card-bg: #ffffff;     --text-main: #334155;          /* Compact sizing for single-page layout */     --radius: 12px;     --shadow: 0 15px 40px -10px rgba(0,0,0,0.2); }  * { box-sizing: border-box; margin: 0; padding: 0; }  body {     font-family: 'Inter', sans-serif;     background-color: var(--bg-page);     color: var(--text-main);     display: flex;     justify-content: center;     padding: 20px; /* Less outer margin */     min-height: 100vh;     line-height: 1.5; /* Slightly tighter line height */     -webkit-font-smoothing: antialiased; }  .page {     background: var(--card-bg);     width: 100%;     max-width: 820px;     border-radius: var(--radius);     box-shadow: var(--shadow);     overflow: hidden;     position: relative;     /* Optional: force fixed height if desired, but auto is safer */     height: auto;  }  /* --- KOMPAKTER HEADER --- */ .header {     background-color: var(--primary);     color: var(--text-white);     padding: 30px 40px; /* Much less padding */     display: flex;     flex-direction: column;     gap: 25px; /* Less spacing between sections */ }  /* Identity and contact in one row */ .header-top {     display: flex;     justify-content: space-between;     align-items: center;     gap: 20px; }  /* Left: image and name */ .identity-group {     display: flex;     align-items: center;     gap: 18px;     text-align: left; }  .profile-photo {     width: 75px; /* Smaller */     height: 75px;     border-radius: 50%;     object-fit: cover;     border: 2px solid rgba(255,255,255,0.1); }  .name-block .name {     font-size: 1.8rem; /* Smaller than before (2.2rem) */     font-weight: 700;     line-height: 1;     color: #fff;     margin-bottom: 5px; }  .name-block .role {     font-size: 0.9rem;     color: var(--accent);     text-transform: uppercase;     letter-spacing: 0.05em;     font-weight: 500; }  /* Right: contact */ .contact-column {     display: flex;     flex-direction: column;     gap: 8px; /* Very compact */     align-items: flex-end; }  .contact-item {     display: flex;     align-items: center;     gap: 10px;     color: var(--text-white);     text-decoration: none;     font-size: 0.85rem; /* Smaller for space */     font-weight: 400;     opacity: 0.9; }  .contact-item svg { width: 16px; height: 16px; color: var(--accent); }  /* Header Bottom: Badges */ .header-bottom {     border-top: 1px solid rgba(255,255,255,0.15);     padding-top: 15px;     display: flex;     align-items: center;     gap: 15px; }  .section-label {     font-size: 0.7rem;     text-transform: uppercase;     color: var(--text-dim);     font-weight: 700;     letter-spacing: 0.05em;     white-space: nowrap;     margin-right: 5px; }  .badges-row {     display: flex;     flex-wrap: wrap;     gap: 8px; }  .badge-item {     display: inline-flex;     align-items: center;     gap: 6px;     background: rgba(255, 255, 255, 0.08);     border: 1px solid rgba(255, 255, 255, 0.1);     padding: 5px 12px; /* Smaller buttons */     border-radius: 4px;     color: #e2e8f0;     font-size: 0.75rem; /* Smaller font */     text-decoration: none; }  .badge-item svg { width: 14px; height: 14px; }  /* --- MAIN CONTENT (Space-efficient) --- */ main {     padding: 35px 40px; /* Less inner padding */ }  .recipient-block {     margin-bottom: 25px; /* Less spacing */     display: flex;     justify-content: space-between;     align-items: flex-end;     font-size: 0.9rem;     color: #64748b;     border-bottom: 1px solid #e2e8f0;     padding-bottom: 10px; }  .subject {     font-size: 1.2rem;     font-weight: 700;     color: var(--primary);     margin-bottom: 20px; }  .highlight-text { font-weight: 600; color: var(--primary); }  .content {     font-size: 0.925rem; /* Key for single page: slightly smaller text */     color: var(--text-main);     line-height: 1.55; }  .content p {     margin-bottom: 1rem; /* More compact paragraphs */     text-align: justify; }  .greeting { margin-top: 2rem; } .signature { font-weight: 700; font-size: 1.1rem; color: var(--primary); margin-top: 5px; }  /* Print optimization (PDF) */ @media print {     body { padding: 0; background: white; }     .page { box-shadow: none; border-radius: 0; max-width: 100%; width: 100%; }     /* Force background colors when printing */     .header { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }  /* Mobile Adjustments */ @media (max-width: 600px) {     .header { padding: 20px; }     .header-top { flex-direction: column; align-items: flex-start; }     .contact-column { align-items: flex-start; margin-top: 10px; }     .header-bottom { flex-direction: column; align-items: flex-start; gap: 10px; }     main { padding: 25px; } }","html_content":"=<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Cover Letter - Your Name</title>\n    <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"style_one_page.css\">\n</head>\n<body>\n\n    <div class=\"page\">\n        \n        <header class=\"header\">\n            \n            <div class=\"header-top\">\n                <div class=\"identity-group\">\n                    <img src=\"https://example.com/your-profile-photo.jpg\" alt=\"Your Name\" class=\"profile-photo\">\n                    <div class=\"name-block\">\n                        <h1 class=\"name\">Your Name</h1>\n                        <h2 class=\"role\">Your Job Title</h2>\n                    </div>\n                </div>\n\n                <div class=\"contact-column\">\n                    <a href=\"mailto:your.email@example.com\" class=\"contact-item\">\n                        your.email@example.com\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                            <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"/>\n                            <polyline points=\"22,6 12,13 2,6\"/>\n                        </svg>\n                    </a>\n                    <a href=\"tel:+49XXXXXXXXXX\" class=\"contact-item\">\n                        +49 XXX XXXX XXXX\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                            <path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z\"/>\n                        </svg>\n                    </a>\n                    <div class=\"contact-item\">\n                        Your City, Country\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                            <path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"/>\n                            <circle cx=\"12\" cy=\"10\" r=\"3\"/>\n                        </svg>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"header-bottom\">\n                <span class=\"section-label\">Certificates & Portfolio:</span>\n                <div class=\"badges-row\">\n                    <a href=\"https://www.linkedin.com/in/yourprofile/\" target=\"_blank\" class=\"badge-item\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"/><rect x=\"2\" y=\"9\" width=\"4\" height=\"12\"/><circle cx=\"4\" cy=\"4\" r=\"2\"/></svg>\n                        LinkedIn\n                    </a>\n                    <a href=\"https://n8n.io/creators/yourprofile/\" target=\"_blank\" class=\"badge-item\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5\"/></svg>\n                        n8n Creator\n                    </a>\n                    <a href=\"https://example.com/your-certificate-1\" target=\"_blank\" class=\"badge-item\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"8\" r=\"7\" /><polyline points=\"8.21 13.89 7 23 12 20 17 23 15.79 13.88\" /></svg>\n                        IBM AI Developer\n                    </a>\n                    <a href=\"https://example.com/your-certificate-2\" target=\"_blank\" class=\"badge-item\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 15l-2 5l2 2l2 -2l-2 -5z\"/><circle cx=\"12\" cy=\"9\" r=\"7\"/><path d=\"M12 6v6\"/><path d=\"M9 9h6\"/></svg>\n                        AI for Business\n                    </a>\n                </div>\n            </div>\n\n        </header>\n\n        <main>\n            <section class=\"recipient-block\">\n                <div class=\"address\">\n                    To: <span class=\"highlight-text\">{{ $('AI Agent').item.json.output.company }}</span>\n                </div>\n                <div class=\"date\">\n                    Your City, <span id=\"current-date\"></span>\n                </div>\n            </section>\n\n            <div class=\"subject\">\n                Application as <span class=\"highlight-text\"> {{ $('AI Agent').item.json.output.position }}</span>\n            </div>\n\n            <div class=\"content\">\n                <p>Dear {{ $('AI Agent').item.json.output.company }} Team,</p>\n\n                <p>The advertised position appeals to me strongly, and I would like to apply for it.</p>\n\n                <p>[Your motivation message here].</p>\n\n                <p>I would be delighted to discuss the concrete AI/automation use cases I have implemented and explore potential collaboration.</p>\n\n                <p class=\"greeting\">Best regards,</p>\n                <div class=\"signature\">Your Name</div>\n            </div>\n        </main>\n\n    </div>\n\n    <script>\n        const dateElement = document.getElementById('current-date');\n        const today = new Date();\n        \n        const options = { year: 'numeric', month: 'long', day: 'numeric' };\n        dateElement.textContent = today.toLocaleDateString('en-US', options);\n    </script>\n</body>\n</html>","output_format":"file"},"typeVersion":1},{"id":"3a6542dc-d1e3-4815-88be-80cdce8965d3","name":"Upload file","type":"n8n-nodes-base.googleDrive","position":[992,480],"parameters":{"name":"=YourName_CoverLetter_{{ $('AI Agent').item.json.output.company }}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultUrl":"https://drive.google.com/drive/folders/YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultName":"Job_applications"}},"typeVersion":3},{"id":"8fd5cb80-34c7-4f04-b7a5-a6cf7f3253b2","name":"Move file","type":"n8n-nodes-base.googleDrive","position":[1440,480],"parameters":{"fileId":{"__rl":true,"mode":"id","value":"={{ $('Upload file').item.json.id }}"},"driveId":{"__rl":true,"mode":"list","value":"My Drive"},"folderId":{"__rl":true,"mode":"id","value":"={{ $json.id }}"},"operation":"move"},"typeVersion":3},{"id":"7cedae5c-711b-4f75-b9a7-01c7324356a9","name":"Create_folder_for_attachments3","type":"n8n-nodes-base.googleDrive","position":[1216,480],"parameters":{"name":"={{ $('AI Agent').item.json.output.position }}_{{ $('AI Agent').item.json.output.company }}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultUrl":"https://drive.google.com/drive/folders/YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultName":"Job_applications"},"resource":"folder"},"typeVersion":3},{"id":"584f6c93-15fe-420c-b951-f13237235743","name":"Create_personalized_cv3","type":"n8n-nodes-htmlcsstopdf.htmlcsstopdf","position":[1664,480],"parameters":{"css_content":":root {     /* Same color palette as cover letter */     --primary: #0f172a;       /* Deep Navy */     --accent: #38bdf8;        /* Sky Blue */     --text-white: #f8fafc;     --text-dim: #94a3b8;     --bg-page: #f1f5f9;     --card-bg: #ffffff;     --text-main: #334155;     --text-light: #64748b;          --radius: 12px;     --shadow: 0 15px 40px -10px rgba(0,0,0,0.2); }  * { box-sizing: border-box; margin: 0; padding: 0; }  body {     font-family: 'Inter', sans-serif;     background-color: var(--bg-page);     color: var(--text-main);     display: flex;     justify-content: center;     padding: 20px;     min-height: 100vh;     line-height: 1.5;     -webkit-font-smoothing: antialiased; }  .page {     background: var(--card-bg);     width: 100%;     max-width: 900px; /* Slightly wider for CV */     border-radius: var(--radius);     box-shadow: var(--shadow);     overflow: hidden;     position: relative; }  /* --- HEADER (matches cover letter) --- */ .header {     background-color: var(--primary);     color: var(--text-white);     padding: 30px 40px;     display: flex;     flex-direction: column;     gap: 20px; }  .header-top {     display: flex;     justify-content: space-between;     align-items: center; }  .identity-group {     display: flex;     align-items: center;     gap: 20px; }  .profile-photo {     width: 80px;     height: 80px;     border-radius: 50%;     object-fit: cover;     border: 3px solid rgba(255,255,255,0.1); }  .name-block .name {     font-size: 2rem;     font-weight: 700;     line-height: 1;     color: #fff;     margin-bottom: 5px; }  .name-block .role {     font-size: 1rem;     color: var(--accent);     font-weight: 500; }  /* Header Contact Row */ .header-contact {     display: flex;     flex-wrap: wrap;     gap: 15px;     font-size: 0.85rem;     color: var(--text-dim);     padding-top: 15px;     border-top: 1px solid rgba(255,255,255,0.1); }  .contact-item {     display: flex;     align-items: center;     gap: 6px;     color: var(--text-white);     text-decoration: none;     transition: color 0.2s; }  .contact-item:hover { color: var(--accent); } .contact-item svg { width: 14px; height: 14px; color: var(--accent); }  /* --- GRID LAYOUT --- */ .cv-grid {     display: grid;     grid-template-columns: 2fr 1fr; /* 2/3 Main, 1/3 Sidebar */     min-height: 800px; }  /* --- LEFT COLUMN (Experience) --- */ .main-column {     padding: 35px 40px; }  .section-title {     font-size: 0.85rem;     text-transform: uppercase;     letter-spacing: 0.1em;     color: var(--text-light);     font-weight: 700;     margin-bottom: 20px;     display: flex;     align-items: center;     gap: 10px; }  .section-title::after {     content: '';     flex: 1;     height: 1px;     background: #e2e8f0; }  .section-title svg { width: 16px; height: 16px; color: var(--primary); }  /* Job Items */ .job-item {     margin-bottom: 25px;     position: relative;     padding-left: 20px;     border-left: 2px solid #e2e8f0; }  .job-item::before {     content: '';     position: absolute;     left: -6px;     top: 0;     width: 10px;     height: 10px;     border-radius: 50%;     background: var(--bg-page);     border: 2px solid var(--accent); }  .job-header {     margin-bottom: 8px; }  .job-title {     font-size: 1rem;     font-weight: 700;     color: var(--primary); }  .job-company {     font-size: 0.9rem;     font-weight: 600;     color: var(--text-main); }  .job-meta {     font-size: 0.8rem;     color: var(--text-light);     margin-top: 2px; }  .job-desc {     font-size: 0.9rem;     color: var(--text-main);     line-height: 1.5; }  .job-desc ul {     list-style-type: none;     padding-left: 0; }  .job-desc li {     position: relative;     padding-left: 15px;     margin-bottom: 4px; }  .job-desc li::before {     content: '•';     position: absolute;     left: 0;     color: var(--accent);     font-weight: bold; }  /* --- RIGHT COLUMN (Sidebar) --- */ .sidebar-column {     background-color: #f8fafc; /* Very light grey */     padding: 35px 30px;     border-left: 1px solid #e2e8f0; }  .sidebar-section {     margin-bottom: 30px; }  .sidebar-title {     font-size: 0.8rem;     text-transform: uppercase;     font-weight: 700;     color: var(--primary);     margin-bottom: 15px;     letter-spacing: 0.05em; }  /* Skills Tags */ .skill-tags {     display: flex;     flex-wrap: wrap;     gap: 8px; }  .tag {     background: #fff;     border: 1px solid #cbd5e1;     padding: 4px 10px;     border-radius: 6px;     font-size: 0.8rem;     font-weight: 500;     color: var(--text-main); }  .tag.highlight {     background: rgba(56, 189, 248, 0.1);     border-color: var(--accent);     color: var(--primary); }  /* List Items (Languages, Certs) */ .info-list {     list-style: none;     font-size: 0.9rem; }  .info-list li {     margin-bottom: 10px; }  .info-label {     display: block;     font-weight: 600;     color: var(--text-main); }  .info-detail {     display: block;     font-size: 0.85rem;     color: var(--text-light); }  /* Mobile */ @media (max-width: 700px) {     .cv-grid { grid-template-columns: 1fr; }     .sidebar-column { border-left: none; border-top: 1px solid #e2e8f0; background: #fff; }     .header { padding: 25px; }     .header-top { flex-direction: column; align-items: flex-start; gap: 20px; } }  @media print {     body { padding: 0; background: white; }     .page { box-shadow: none; max-width: 100%; border-radius: 0; }     .header { -webkit-print-color-adjust: exact; print-color-adjust: exact; }     .tag.highlight { -webkit-print-color-adjust: exact; print-color-adjust: exact; }     /* Page break control */     .job-item { break-inside: avoid; } }","html_content":"=<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>CV - Your Name</title>\n    <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n    <style>\n        :root {\n            --primary: #0f172a;       /* Deep Navy */\n            --accent: #2563eb;        /* Stronger blue for links */\n            --text-white: #f8fafc;\n            --text-dim: #94a3b8;\n            --bg-page: #f1f5f9;\n            --card-bg: #ffffff;\n            --text-main: #334155;\n            --text-light: #64748b;\n            --a4-width: 210mm;\n            --a4-height: 296mm;\n        }\n\n        * { box-sizing: border-box; margin: 0; padding: 0; }\n\n        body {\n            font-family: 'Inter', sans-serif;\n            background-color: #555; \n            color: var(--text-main);\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            padding: 20px;\n            gap: 20px;\n            -webkit-font-smoothing: antialiased;\n        }\n\n        .page {\n            background: var(--card-bg);\n            width: var(--a4-width);\n            min-height: var(--a4-height);\n            box-shadow: 0 10px 30px rgba(0,0,0,0.3);\n            overflow: hidden;\n            position: relative;\n            display: flex;\n            flex-direction: column;\n        }\n\n        /* --- HEADER --- */\n        .header {\n            background-color: var(--primary);\n            color: var(--text-white);\n            padding: 35px 40px;\n            display: flex;\n            flex-direction: column;\n            gap: 20px;\n        }\n\n        .header-top { display: flex; justify-content: space-between; align-items: center; }\n        .identity-group { display: flex; align-items: center; gap: 20px; }\n        \n        .profile-photo {\n            width: 85px; height: 85px; border-radius: 50%;\n            object-fit: cover; border: 3px solid rgba(255,255,255,0.1);\n        }\n\n        .name-block .name { font-size: 2.2rem; font-weight: 700; line-height: 1; color: #fff; margin-bottom: 5px; }\n        .name-block .role { font-size: 1.1rem; color: #60a5fa; font-weight: 500; }\n\n        .dynamic-tag {\n            background: rgba(255,255,255,0.1);\n            padding: 5px 12px; border-radius: 4px;\n            font-size: 0.85rem; color: #cbd5e1;\n            display: inline-block; margin-top: 10px;\n            border: 1px solid rgba(255,255,255,0.15);\n        }\n\n        /* Fixed Hover Effect */\n        .header-contact {\n            display: flex; flex-wrap: wrap; gap: 20px;\n            font-size: 0.9rem; color: var(--text-dim);\n            padding-top: 20px; border-top: 1px solid rgba(255,255,255,0.1);\n        }\n        \n        /* Specific selector to prevent group hovering */\n        .contact-item { \n            display: flex; align-items: center; gap: 8px; \n            color: var(--text-white); text-decoration: none; \n            transition: color 0.2s ease;\n        }\n        .contact-item svg { \n            width: 16px; height: 16px; color: #60a5fa; \n            transition: color 0.2s ease;\n        }\n        \n        /* Only affect the specific hovered item */\n        .contact-item:hover { color: #60a5fa; }\n        .contact-item:hover svg { color: #fff; }\n\n        /* --- CONTENT GRID --- */\n        .cv-grid {\n            display: grid; grid-template-columns: 68% 32%;\n            flex-grow: 1;\n        }\n\n        .main-column { padding: 40px; }\n        .sidebar-column { background-color: #f8fafc; padding: 40px 30px; border-left: 1px solid #e2e8f0; }\n\n        .section-title {\n            font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.1em;\n            color: var(--text-light); font-weight: 700; margin-bottom: 25px;\n            display: flex; align-items: center; gap: 10px;\n        }\n        .section-title svg { width: 18px; height: 18px; color: var(--primary); }\n        .section-title::after { flex: 1; height: 1px; background: #e2e8f0; content: ''; }\n\n        /* --- HYPERLINKS --- */\n        .link-highlight {\n            display: inline-flex; align-items: center; gap: 6px;\n            color: var(--accent); font-weight: 600; text-decoration: none;\n            background: rgba(37, 99, 235, 0.05); padding: 2px 8px;\n            border-radius: 4px; transition: all 0.2s; border: 1px solid transparent;\n        }\n        .link-highlight:hover {\n            background: rgba(37, 99, 235, 0.1); border-color: rgba(37, 99, 235, 0.2);\n        }\n        .link-highlight svg { width: 12px; height: 12px; flex-shrink: 0; }\n\n        /* --- TIMELINE --- */\n        .company-group { margin-bottom: 30px; }\n        .company-header { display: flex; align-items: baseline; gap: 8px; margin-bottom: 10px; }\n        .company-name { font-size: 1.15rem; font-weight: 700; color: var(--primary); }\n        .company-loc { font-size: 0.9rem; color: var(--text-light); }\n\n        .role-item, .job-item {\n            position: relative; padding-left: 20px; border-left: 2px solid #e2e8f0; padding-bottom: 20px;\n        }\n        .role-item:last-child { border-left-color: transparent; padding-bottom: 0; }\n        \n        .role-item::before, .job-item::before {\n            content: ''; position: absolute; left: -6px; top: 5px;\n            width: 10px; height: 10px; border-radius: 50%;\n            background: #fff; border: 2px solid var(--accent); z-index: 1;\n        }\n        .job-item::before { border-color: var(--text-light); } \n\n        .role-title, .job-title { font-size: 1rem; font-weight: 600; color: var(--text-main); }\n        .role-meta, .job-meta { font-size: 0.85rem; color: var(--text-light); margin-bottom: 6px; display: block; }\n        \n        ul { list-style: none; padding-left: 0; margin-top: 5px; }\n        li { position: relative; padding-left: 15px; margin-bottom: 4px; font-size: 0.95rem; color: var(--text-main); line-height: 1.5; }\n        li::before { content: '•'; position: absolute; left: 0; color: var(--accent); font-weight: bold; }\n\n        /* Sidebar Elements */\n        .sidebar-section { margin-bottom: 40px; }\n        .sidebar-title { font-size: 0.85rem; font-weight: 700; color: var(--primary); margin-bottom: 15px; text-transform: uppercase; }\n        \n        .skill-tags { display: flex; flex-wrap: wrap; gap: 8px; }\n        .tag {\n            background: #fff; border: 1px solid #cbd5e1; padding: 4px 10px;\n            border-radius: 4px; font-size: 0.85rem; font-weight: 500; color: var(--text-main);\n        }\n        .tag.highlight { background: #eff6ff; border-color: var(--accent); color: var(--accent); }\n\n        /* Sidebar Links (Certifications) */\n        .info-link { text-decoration: none; display: block; }\n        .info-link:hover .info-label { color: var(--accent); }\n\n        /* Mini Header Page 2 */\n        .header-mini {\n            background-color: var(--primary); color: var(--text-white);\n            padding: 15px 40px; display: flex; justify-content: space-between;\n            align-items: center; font-size: 0.9rem; color: var(--text-dim);\n        }\n        .header-mini strong { color: #fff; }\n\n        @media print {\n            body { background: white; padding: 0; gap: 0; }\n            .page { width: 100%; height: auto; box-shadow: none; margin: 0; page-break-after: always; }\n            .page:last-child { page-break-after: auto; }\n            .header, .header-mini { -webkit-print-color-adjust: exact; print-color-adjust: exact; }\n            .tag.highlight { -webkit-print-color-adjust: exact; print-color-adjust: exact; }\n            .link-highlight { border: 1px solid #e2e8f0; }\n        }\n    </style>\n</head>\n<body>\n\n    <div class=\"page\">\n        \n        <header class=\"header\">\n            <div class=\"header-top\">\n                <div class=\"identity-group\">\n                    <img src=\"https://example.com/your-profile-photo.jpg\" alt=\"Your Name\" class=\"profile-photo\">\n                    <div class=\"name-block\">\n                        <h1 class=\"name\">Your Name</h1>\n                        <h2 class=\"role\">Your Job Title</h2>\n                        <div class=\"dynamic-tag\">\n                            Tailored for <strong>{{ $('AI Agent').item.json.output.position }}</strong> at <strong>{{ $('AI Agent').item.json.output.company }}</strong>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"header-contact\">\n                <a href=\"mailto:your.email@example.com\" class=\"contact-item\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"/><polyline points=\"22,6 12,13 2,6\"/></svg>\n                    your.email@example.com\n                </a>\n                <span class=\"contact-item\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z\"/></svg>\n                    +49 XXX XXXX XXXX\n                </a>\n                <a href=\"https://www.linkedin.com/in/yourprofile/\" target=\"_blank\" class=\"contact-item\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"/><rect x=\"2\" y=\"9\" width=\"4\" height=\"12\"/><circle cx=\"4\" cy=\"4\" r=\"2\"/></svg>\n                    linkedin.com/in/yourprofile\n                </a>\n                <span class=\"contact-item\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"/><circle cx=\"12\" cy=\"10\" r=\"3\"/></svg>\n                    Your City\n                </span>\n            </div>\n        </header>\n\n        <div class=\"cv-grid\">\n            <div class=\"main-column\">\n                <div class=\"section-title\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"></rect><path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"></path></svg>\n                    Professional Experience\n                </div>\n\n                <div class=\"company-group\">\n                    <div class=\"company-header\">\n                        <span class=\"company-name\">Company A</span>\n                        <span class=\"company-loc\">| Your City</span>\n                    </div>\n                    <div class=\"role-item\">\n                        <div class=\"role-title\">Your Current Role Title</div>\n                        <span class=\"role-meta\">Apr 2025 – Present</span>\n                        <ul>\n                            <li><strong>AI Rollout:</strong> Integration and Administration of AI Tools (Langdock & OpenAI).</li>\n                            <li><strong>Automation:</strong> Building n8n , Langdock & Zapier workflows.</li>\n                            <li><strong>Market Research:</strong> C-Level compensation analysis & working on Executive Search projects.</li>\n                        </ul>\n                    </div>\n                    <div class=\"role-item\">\n                        <div class=\"role-title\">Market Analyst</div>\n                        <span class=\"role-meta\">Oct 2021 – Mar 2025</span>\n                        <ul>\n                            <li>Market research for executive search; competitor intelligence.</li>\n                            <li>Data Analytics & BI project evaluations (Power BI, Excel).</li>\n                        </ul>\n                    </div>\n                </div>\n\n                <div class=\"company-group\" style=\"margin-bottom:0;\">\n                    <div class=\"company-header\">\n                        <span class=\"company-name\">Company B</span>\n                        <span class=\"company-loc\">| Your City</span>\n                    </div>\n                    <div class=\"role-item\">\n                        <div class=\"role-title\">Market Research Project Manager</div>\n                        <span class=\"role-meta\">Apr 2021 – Sep 2021</span>\n                        <ul>\n                            <li>Management of international market research projects & Key Accounts.</li>\n                        </ul>\n                    </div>\n                    <div class=\"role-item\" style=\"border-left:none; padding-bottom:0;\">\n                        <div class=\"role-title\">Market Research Associate</div>\n                        <span class=\"role-meta\">Dec 2019 – Apr 2021</span>\n                        <ul>\n                            <li>Selection & training of interviewers; quality management.</li>\n                        </ul>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"sidebar-column\">\n                \n                <div class=\"sidebar-section\">\n                    <div class=\"sidebar-title\">AI, Automation & Data</div>\n                    <div class=\"skill-tags\">\n                        <span class=\"tag highlight\">n8n</span>\n                        <span class=\"tag highlight\">Langdock</span>\n                        <span class=\"tag highlight\">OpenAI API</span>\n                        <span class=\"tag highlight\">Generative AI</span>\n                        <span class=\"tag\">Zapier</span>\n                        <span class=\"tag\">Google Vertex</span>\n                        <span class=\"tag\">Prompt Eng.</span>\n                        <span class=\"tag\">Power BI</span>\n                        <span class=\"tag\">Excel (Adv.)</span>\n                        <span class=\"tag\">Project Mgmt</span>\n                    </div>\n                </div>\n\n                <div class=\"sidebar-section\">\n                    <div class=\"sidebar-title\">Certifications</div>\n                    <div style=\"display:flex; flex-direction:column; gap:12px;\">\n                        <div>\n                            <div style=\"font-weight:600; font-size:0.9rem; margin-bottom:4px;\">IBM AI Developer</div>\n                            <a href=\"https://example.com/your-certificate-1\" target=\"_blank\" class=\"link-highlight\" style=\"font-size:0.8rem;\">\n                                View Certificate\n                                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                            </a>\n                        </div>\n                        <div>\n                            <div style=\"font-weight:600; font-size:0.9rem; margin-bottom:4px;\">AI for Business</div>\n                            <a href=\"https://example.com/your-certificate-2\" target=\"_blank\" class=\"link-highlight\" style=\"font-size:0.8rem;\">\n                                View Certificate\n                                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                            </a>\n                        </div>\n                        <div>\n                            <div style=\"font-weight:600; font-size:0.9rem; margin-bottom:4px;\">n8n Creator</div>\n                            <a href=\"https://n8n.io/creators/yourprofile/\" target=\"_blank\" class=\"link-highlight\" style=\"font-size:0.8rem;\">\n                                View Profile\n                                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                            </a>\n                        </div>\n                    </div>\n                </div>\n\n            </div>\n        </div>\n    </div>\n\n    <div class=\"page\">\n        <div class=\"header-mini\">\n            <span><strong>Your Name</strong> - CV Continued</span>\n            <span>Page 2 / 2</span>\n        </div>\n\n        <div class=\"cv-grid\">\n            <div class=\"main-column\">\n                \n                <div class=\"section-title\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 20h9\"></path><path d=\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"></path></svg>\n                    Previous Roles\n                </div>\n\n                <div class=\"job-item\">\n                    <div class=\"job-title\">Research Assistant</div>\n                    <div class=\"company-name\" style=\"font-size:1rem;\">Company</div>\n                    <span class=\"job-meta\">Jun 2018 – Mar 2019</span>\n                    <ul><li>Literature research, data processing & teaching support.</li></ul>\n                </div>\n\n                <div class=\"job-item\">\n                    <div class=\"job-title\">Housing Policy Intern</div>\n                    <div class=\"company-name\" style=\"font-size:1rem;\">Company</div>\n                    <span class=\"job-meta\">Aug 2017 – Sep 2017</span>\n                </div>\n\n                <div class=\"job-item\">\n                    <div class=\"job-title\">Management Assistant</div>\n                    <div class=\"company-name\" style=\"font-size:1rem;\">Company</div>\n                    <span class=\"job-meta\">May 2017 – Aug 2017</span>\n                </div>\n\n                <div class=\"job-item\">\n                    <div class=\"job-title\">Program Coordinator & Trainer</div>\n                    <div class=\"company-name\" style=\"font-size:1rem;\">Company</div>\n                    <span class=\"job-meta\">2013 – 2015</span>\n                    <ul><li>Disaster Management & Team Lead (20 FTEs).</li></ul>\n                </div>\n\n                <div class=\"section-title\" style=\"margin-top:40px;\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path><polyline points=\"14 2 14 8 20 8\"></polyline><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line><polyline points=\"10 9 9 9 8 9\"></polyline></svg>\n                    Publications\n                </div>\n                <div style=\"font-size:0.9rem; display:flex; flex-direction:column; gap:12px;\">\n                    <div>\n                        <a href=\"https://example.com/your-publication-1\" target=\"_blank\" class=\"link-highlight\">\n                            Publication Title 1\n                            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                        </a>\n                    </div>\n                    <div>\n                        <a href=\"https://example.com/your-publication-2\" target=\"_blank\" class=\"link-highlight\">\n                            Publication Title 2\n                            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                        </a>\n                    </div>\n                    <div>\n                        <a href=\"https://example.com/your-publication-3\" target=\"_blank\" class=\"link-highlight\">\n                            Publication Title 3\n                            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                        </a>\n                    </div>\n                    <div>\n                        <a href=\"https://example.com/your-publication-4\" target=\"_blank\" class=\"link-highlight\">\n                            Publication Title 4\n                            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>\n                        </a>\n                        <div style=\"font-size:0.85rem; color:var(--text-light); margin-top:4px; padding-left:4px;\">\n                            <em>Publication Subtitle.</em> (2020)\n                        </div>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"sidebar-column\">\n                \n                <div class=\"sidebar-section\">\n                    <div class=\"sidebar-title\">Education</div>\n                    <div style=\"margin-bottom:15px;\">\n                        <div style=\"font-weight:600;\">Your Degree (M.Sc.)</div>\n                        <div style=\"font-size:0.85rem; color:#64748b;\">Your University</div>\n                        <div style=\"font-size:0.85rem; color:#94a3b8;\">2017 – 2019</div>\n                    </div>\n                    <div>\n                        <div style=\"font-weight:600;\">Your Degree (B.A.)</div>\n                        <div style=\"font-size:0.85rem; color:#64748b;\">Your University</div>\n                        <div style=\"font-size:0.85rem; color:#94a3b8;\">2014</div>\n                    </div>\n                </div>\n\n                <div class=\"sidebar-section\">\n                    <div class=\"sidebar-title\">Languages</div>\n                    <div style=\"display:flex; flex-direction:column; gap:10px;\">\n                        <div>\n                            <div style=\"font-weight:600; font-size:0.9rem;\">German</div>\n                            <div style=\"font-size:0.85rem; color:#64748b;\">Full Professional</div>\n                        </div>\n                        <div>\n                            <div style=\"font-weight:600; font-size:0.9rem;\">English</div>\n                            <div style=\"font-size:0.85rem; color:#64748b;\">Professional Working</div>\n                        </div>\n                        <div>\n                            <div style=\"font-weight:600; font-size:0.9rem;\">Arabic</div>\n                            <div style=\"font-size:0.85rem; color:#64748b;\">Native</div>\n                        </div>\n                    </div>\n                </div>\n\n            </div>\n        </div>\n    </div>\n\n</body>\n</html>","output_format":"file"},"typeVersion":1},{"id":"d0f05c82-1e8b-4cfa-99ec-f4072e8abc9b","name":"Upload_cv3","type":"n8n-nodes-base.googleDrive","position":[1888,480],"parameters":{"name":"=YourName_CV_for_{{ $('AI Agent').item.json.output.company }}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultUrl":"https://drive.google.com/drive/folders/YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultName":"Job_applications"}},"typeVersion":3},{"id":"f058283a-50a0-44e1-afb0-eb0a5f637daf","name":"Move_cv_to_attachments_folder3","type":"n8n-nodes-base.googleDrive","position":[2112,480],"parameters":{"fileId":{"__rl":true,"mode":"id","value":"={{ $('Upload_cv3').item.json.id }}"},"driveId":{"__rl":true,"mode":"list","value":"My Drive"},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create_folder_for_attachments3').item.json.id }}"},"operation":"move"},"typeVersion":3},{"id":"7c40473f-82e5-4230-a36b-cf0225d91231","name":"Append row in sheet1","type":"n8n-nodes-base.googleSheets","position":[2336,480],"parameters":{"columns":{"value":{"via":"={{ $('AI Agent').item.json.output.platform }}","link1":"={{ $('AI Agent').item.json.output.link }}","title":"={{ $('AI Agent').item.json.output.position }}","job_id":"=manually_added on {{ $now.toISO() }}","salary":"={{ $('AI Agent').item.json.output.salary }}","company":"={{ $('AI Agent').item.json.output.company }}","location":"={{ $('AI Agent').item.json.output.location }}","posted_at":"={{ $('AI Agent').item.json.output.posted_at }}","share_link":"={{ $('AI Agent').item.json.output.share_link }}","description":"={{ $('AI Agent').item.json.output.description }}","link_drive_ornder":"=https://drive.google.com/drive/u/0/folders/{{ $('Create_folder_for_attachments3').item.json.id }}","application_platform_1":"={{ $('AI Agent').item.json.output.platform }}"},"schema":[{"id":"via","type":"string","display":true,"required":false,"displayName":"via","defaultMatch":false,"canBeUsedToMatch":true},{"id":"title","type":"string","display":true,"required":false,"displayName":"title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"job_id","type":"string","display":true,"required":false,"displayName":"job_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"location","type":"string","display":true,"required":false,"displayName":"location","defaultMatch":false,"canBeUsedToMatch":true},{"id":"posted_at","type":"string","display":true,"required":false,"displayName":"posted_at","defaultMatch":false,"canBeUsedToMatch":true},{"id":"salary","type":"string","display":true,"required":false,"displayName":"salary","defaultMatch":false,"canBeUsedToMatch":true},{"id":"type","type":"string","display":true,"removed":true,"required":false,"displayName":"type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"share_link","type":"string","display":true,"required":false,"displayName":"share_link","defaultMatch":false,"canBeUsedToMatch":true},{"id":"description","type":"string","display":true,"required":false,"displayName":"description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"company","type":"string","display":true,"required":false,"displayName":"company","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link1","type":"string","display":true,"required":false,"displayName":"link1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_1","type":"string","display":true,"required":false,"displayName":"application_platform_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link2","type":"string","display":true,"removed":true,"required":false,"displayName":"link2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_2","type":"string","display":true,"removed":true,"required":false,"displayName":"application_platform_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link3","type":"string","display":true,"removed":true,"required":false,"displayName":"link3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_3","type":"string","display":true,"removed":true,"required":false,"displayName":"application_platform_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link4","type":"string","display":true,"removed":true,"required":false,"displayName":"link4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_4","type":"string","display":true,"removed":true,"required":false,"displayName":"application_platform_4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link5","type":"string","display":true,"removed":true,"required":false,"displayName":"link5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_5","type":"string","display":true,"removed":true,"required":false,"displayName":"application_platform_5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link6","type":"string","display":true,"removed":true,"required":false,"displayName":"link6","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_6","type":"string","display":true,"removed":true,"required":false,"displayName":"application_platform_6","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link7","type":"string","display":true,"removed":true,"required":false,"displayName":"link7","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_7","type":"string","display":true,"removed":true,"required":false,"displayName":"application_platform_7","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link8","type":"string","display":true,"removed":true,"required":false,"displayName":"link8","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_8","type":"string","display":true,"removed":true,"required":false,"displayName":"application_platform_8","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link9","type":"string","display":true,"removed":true,"required":false,"displayName":"link9","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_9","type":"string","display":true,"removed":true,"required":false,"displayName":"application_platform_9","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link10","type":"string","display":true,"removed":true,"required":false,"displayName":"link10","defaultMatch":false,"canBeUsedToMatch":true},{"id":"application_platform_10","type":"string","display":true,"removed":true,"required":false,"displayName":"application_platform_10","defaultMatch":false,"canBeUsedToMatch":true},{"id":"status","type":"string","display":true,"removed":true,"required":false,"displayName":"status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link_drive_ornder","type":"string","display":true,"required":false,"displayName":"link_drive_ornder","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status-tracking","type":"string","display":true,"removed":true,"required":false,"displayName":"Status-tracking","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_ID/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEETS_ID","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_ID/edit?usp=drivesdk","cachedResultName":"job_application"}},"typeVersion":4.7},{"id":"aec6054d-9c17-4d8b-8233-605c37c5da00","name":"If1","type":"n8n-nodes-base.if","position":[544,384],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"d4e138bf-66cb-4d10-b743-15227003b03f","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.output.extraction_successful }}","rightValue":false}]}},"typeVersion":2.3},{"id":"f241aa7e-32f5-48ba-b2f8-cad98addf600","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1920,80],"parameters":{"width":520,"height":900,"content":"## Automate job applications with Telegram, SerpAPI, and OpenAI\n\nThis workflow automates your job application pipeline via a **Telegram bot**. Send a job link or search keyword, approve the results, and get auto-generated cover letters and CVs uploaded to Google Drive.\n\n## How it works\n\n**Two input modes:**\n1. **URL mode** -- Send a job posting link. An AI Agent (OpenAI with web search) visits the page and extracts structured job data (title, company, location, salary, description).\n2. **Keyword mode** -- Send a search query. SerpAPI returns Google Jobs results, filters out unwanted types (internships, freelance, part-time), and sends each result to Telegram for approval.\n\n**For each approved job:**\n1. Logs the job details in a **Google Sheets** tracker\n2. Generates a styled **cover letter** PDF (HTML-to-PDF)\n3. Generates a tailored **CV** PDF with the target company and position\n4. Uploads both documents to a **Google Drive** folder\n5. Updates the Sheet with the Drive folder link\n6. Confirms completion via **Telegram**\n\n## Setup steps\n\n1. **Telegram Bot** -- Create a bot via @BotFather. Add the token as a Telegram credential. Set your user ID in the Trigger node.\n2. **OpenAI** -- Add your API key as an OpenAI credential.\n3. **SerpAPI** -- Register at serpapi.com and add your API key.\n4. **Google Sheets & Drive** -- Create OAuth2 credentials. Create a Sheet and update its ID in all Google Sheets nodes. Create a Drive folder and update its ID in all Google Drive nodes.\n5. **HTML-to-PDF** -- Install the community node `n8n-nodes-htmlcsstopdf` (self-hosted only). Add the API credential.\n6. **Customize templates** -- Edit the cover letter and CV HTML nodes with your personal details, photo, and work history.\n\n> **Community node required:** `n8n-nodes-htmlcsstopdf` -- this template works on **self-hosted n8n only**."},"typeVersion":1},{"id":"d0f55af7-5ffb-4cae-a1b7-207a82c286a8","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-1312,544],"parameters":{"color":7,"width":320,"content":"### Step 1: Telegram Input & Routing\nUser sends either a **URL** or a **keyword** via Telegram.\nThe If node checks if the message contains `http` to route accordingly."},"typeVersion":1},{"id":"720f458d-cf2a-41ed-b66f-e47f519ee93b","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[0,0],"parameters":{"color":7,"width":380,"content":"### Step 2a: URL Mode -- AI Agent\nOpenAI GPT with web search visits the URL, extracts structured job data (position, company, location, salary, description, language). Output is validated by a structured parser."},"typeVersion":1},{"id":"20b17a41-0d0e-45eb-a14e-e18859fa3e79","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-880,752],"parameters":{"color":7,"width":380,"content":"### Step 2b: Keyword Mode -- SerpAPI\nSearches Google Jobs via SerpAPI, extracts results with a Code node, filters out unwanted job types (internships, freelance, part-time), then sends each result to Telegram for approval."},"typeVersion":1},{"id":"bfbff130-d81a-49b9-af52-4a26b502067d","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-128,1296],"parameters":{"color":7,"width":340,"height":120,"content":"### Step 3: Telegram Approval Loop\nEach job is sent to Telegram with a formatted preview. User approves or rejects each one via buttons."},"typeVersion":1},{"id":"2122c2a8-bb10-409b-ae5f-a033a8522156","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[1040,672],"parameters":{"color":7,"width":380,"height":140,"content":"### Step 4: Document Generation\nGenerates a styled **cover letter** and a **personalized CV** as PDF using HTML-to-PDF API. Both documents dynamically insert the target company and position."},"typeVersion":1},{"id":"e6ab60cb-df6c-4e28-9411-1c65bc8bde19","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[1728,672],"parameters":{"color":7,"width":380,"height":140,"content":"### Step 5: Google Drive & Sheets\nUploads cover letter + CV to Drive, creates a named folder per application, moves files into it, and updates the Google Sheets tracker with Drive folder link."},"typeVersion":1},{"id":"f9e51f27-ed74-450f-a83f-7584cc6714ad","name":"Notify user about error","type":"n8n-nodes-base.telegram","position":[768,288],"webhookId":"00000000-0000-0000-0000-000000000000","parameters":{"text":"Sorry i was not able to extract url-content due to website restrictions. Please provide the full description and application url in this chat.","chatId":"={{ $('Telegram Trigger').item.json.message.chat.id }}","additionalFields":{}},"credentials":{"telegramApi":{"id":"735YApMmIUZwPVXi","name":"Telegram account"}},"typeVersion":1.2},{"id":"e04a4680-a3bb-4240-a99b-6c8e087815c6","name":"Notify user about successful process","type":"n8n-nodes-base.telegram","position":[2560,672],"webhookId":"00000000-0000-0000-0000-000000000000","parameters":{"text":"Done! :)","chatId":"={{ $('Telegram Trigger').item.json.message.chat.id }}","additionalFields":{}},"credentials":{"telegramApi":{"id":"735YApMmIUZwPVXi","name":"Telegram account"}},"typeVersion":1.2}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","availableInMCP":false,"executionOrder":"v1"},"versionId":"e7f31416-c2ad-4351-9525-7c2f500c8ece","connections":{"If":{"main":[[{"node":"AI Agent","type":"main","index":0}],[{"node":"Search google jobs listings with SERP-API","type":"main","index":0}]]},"If1":{"main":[[{"node":"HTML to PDF","type":"main","index":0}],[{"node":"Notify user about error","type":"main","index":0}]]},"AI Agent":{"main":[[{"node":"If1","type":"main","index":0}]]},"Move file":{"main":[[{"node":"Create_personalized_cv3","type":"main","index":0}]]},"Upload_cv3":{"main":[[{"node":"Move_cv_to_attachments_folder3","type":"main","index":0}]]},"HTML to PDF":{"main":[[{"node":"Upload file","type":"main","index":0}]]},"Upload file":{"main":[[{"node":"Create_folder_for_attachments3","type":"main","index":0}]]},"Loop Over Items":{"main":[[{"node":"Check if job was approved","type":"main","index":0}],[{"node":"Send Telegram message & approval card for each job","type":"main","index":0}]]},"Telegram Trigger":{"main":[[{"node":"If","type":"main","index":0}]]},"OpenAI Chat Model":{"ai_languageModel":[[{"node":"AI Agent","type":"ai_languageModel","index":0}]]},"OpenAI Chat Model1":{"ai_languageModel":[[{"node":"Auto-fixing Output Parser","type":"ai_languageModel","index":0}]]},"Append row in sheet1":{"main":[[{"node":"Notify user about successful process","type":"main","index":0}]]},"Create customized CV":{"main":[[{"node":"Upload customized CV","type":"main","index":0}]]},"Upload customized CV":{"main":[[{"node":"Move CV to attachments folder","type":"main","index":0}]]},"Create_personalized_cv3":{"main":[[{"node":"Upload_cv3","type":"main","index":0}]]},"Structured Output Parser":{"ai_outputParser":[[{"node":"Auto-fixing Output Parser","type":"ai_outputParser","index":0}]]},"Auto-fixing Output Parser":{"ai_outputParser":[[{"node":"AI Agent","type":"ai_outputParser","index":0}]]},"Check if job was approved":{"main":[[{"node":"Document job results in Google sheet","type":"main","index":0}],[{"node":"No Operation, do nothing1","type":"main","index":0}]]},"Upload cover letter to Drive":{"main":[[{"node":"Create folder for attachments","type":"main","index":0}]]},"Create folder for attachments":{"main":[[{"node":"Move cover letter to attachments folder","type":"main","index":0}]]},"Move CV to attachments folder":{"main":[[{"node":"Document link to attachments folder","type":"main","index":0}]]},"Create customized cover letter":{"main":[[{"node":"Upload cover letter to Drive","type":"main","index":0}]]},"Create_folder_for_attachments3":{"main":[[{"node":"Move file","type":"main","index":0}]]},"Move_cv_to_attachments_folder3":{"main":[[{"node":"Append row in sheet1","type":"main","index":0}]]},"Document link to attachments folder":{"main":[[{"node":"Notify user about successful process","type":"main","index":0}]]},"Document job results in Google sheet":{"main":[[{"node":"Create customized cover letter","type":"main","index":0},{"node":"Notify user about end of the loop","type":"main","index":0}]]},"Move cover letter to attachments folder":{"main":[[{"node":"Create customized CV","type":"main","index":0}]]},"Search google jobs listings with SERP-API":{"main":[[{"node":"Extract Job results from SERP-API response","type":"main","index":0}]]},"Extract Job results from SERP-API response":{"main":[[{"node":"Filter unwanted results based on your criteria","type":"main","index":0}]]},"Filter unwanted results based on your criteria":{"main":[[{"node":"No Operation, do nothing","type":"main","index":0}],[{"node":"Loop Over Items","type":"main","index":0}]]},"Send Telegram message & approval card for each job":{"main":[[{"node":"Loop Over Items","type":"main","index":0}]]}}},"lastUpdatedBy":51,"workflowInfo":{"nodeCount":43,"nodeTypes":{"n8n-nodes-base.if":{"count":4},"n8n-nodes-base.code":{"count":1},"n8n-nodes-base.noOp":{"count":2},"n8n-nodes-base.telegram":{"count":4},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-serpapi.serpApi":{"count":1},"n8n-nodes-base.googleDrive":{"count":10},"n8n-nodes-base.googleSheets":{"count":3},"n8n-nodes-base.splitInBatches":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":1},"n8n-nodes-base.telegramTrigger":{"count":1},"n8n-nodes-htmlcsstopdf.htmlcsstopdf":{"count":4},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":2},"@n8n/n8n-nodes-langchain.outputParserAutofixing":{"count":1},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Feras Dabour","username":"ferasdabour","bio":"","verified":true,"links":["https://www.linkedin.com/in/ferasdabour/"],"avatar":"https://gravatar.com/avatar/315bf48ed72eaa70cb84b9c47a1cd9ec3249a9761420e236272c4e53dabd8629?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":26,"icon":"fa:arrow-right","name":"n8n-nodes-base.noOp","codex":{"data":{"alias":["nothing"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.noop/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"organization\"]","defaults":{"name":"No Operation, do nothing","color":"#b0b0b0"},"iconData":{"icon":"arrow-right","type":"icon"},"displayName":"No Operation, do nothing","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":49,"icon":"file:telegram.svg","name":"n8n-nodes-base.telegram","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"resources":{"generic":[{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/creating-telegram-bots-with-n8n-a-no-code-platform/","icon":"💬","label":"Creating Telegram Bots with n8n, a No-Code Platform"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.telegram/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/telegram/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Telegram"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Telegram","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":50,"icon":"file:telegram.svg","name":"n8n-nodes-base.telegramTrigger","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/creating-telegram-bots-with-n8n-a-no-code-platform/","icon":"💬","label":"Creating Telegram Bots with n8n, a No-Code Platform"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.telegramtrigger/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/telegram/"}]},"categories":["Communication"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"Telegram Trigger"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Telegram Trigger","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"}]},{"id":58,"icon":"file:googleDrive.svg","name":"n8n-nodes-base.googleDrive","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Google Drive"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgODEgNzMiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzAwNjZkYSIgZD0ibTYuMDQ4IDYxLjI2IDMuNTI4IDYuMDk0Yy43MzMgMS4yODMgMS43ODcgMi4yOTEgMy4wMjQgMy4wMjRsMTIuNi0yMS44MUgwYTguMyA4LjMgMCAwIDAgMS4xIDQuMTI0eiIvPjxwYXRoIGZpbGw9IiMwMGFjNDciIGQ9Ik00MCAyMi45MSAyNy40IDEuMWMtMS4yMzcuNzMzLTIuMjkxIDEuNzQxLTMuMDI0IDMuMDI0TDEuMSA0NC40NDVBOC4zIDguMyAwIDAgMCAwIDQ4LjU2OGgyNS4yeiIvPjxwYXRoIGZpbGw9IiNlYTQzMzUiIGQ9Ik02Ny40IDcwLjM3OGMxLjIzNy0uNzMzIDIuMjkxLTEuNzQxIDMuMDI0LTMuMDI0bDEuNDY2LTIuNTIgNy4wMS0xMi4xNDJhOC4zIDguMyAwIDAgMCAxLjEtNC4xMjRINTQuNzk4bDUuMzYzIDEwLjUzOHoiLz48cGF0aCBmaWxsPSIjMDA4MzJkIiBkPSJNNDAgMjIuOTEgNTIuNiAxLjFDNTEuMzYzLjM2NyA0OS45NDMgMCA0OC40NzcgMEgzMS41MjRjLTEuNDY2IDAtMi44ODcuNDEyLTQuMTI0IDEuMXoiLz48cGF0aCBmaWxsPSIjMjY4NGZjIiBkPSJNNTQuNzk5IDQ4LjU2OEgyNS4ybC0xMi42IDIxLjgxYzEuMjM3LjczMyAyLjY1NyAxLjEgNC4xMjQgMS4xaDQ2LjU1MmMxLjQ2NiAwIDIuODg3LS40MTIgNC4xMjQtMS4xeiIvPjxwYXRoIGZpbGw9IiNmZmJhMDAiIGQ9Ik02Ny4yNjIgMjQuMjg0IDU1LjYyNCA0LjEyNEM1NC44OTEgMi44NDEgNTMuODM3IDEuODMzIDUyLjYgMS4xTDQwIDIyLjkxbDE0LjggMjUuNjU5aDI1LjE1NWE4LjMgOC4zIDAgMCAwLTEuMS00LjEyNHoiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Google Drive","typeVersion":3,"nodeCategories":[{"id":3,"name":"Data & Storage"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1153,"icon":"file:openAiLight.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenAi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="},"displayName":"OpenAI Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1175,"icon":"fa:tools","name":"@n8n/n8n-nodes-langchain.outputParserAutofixing","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserautofixing/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Auto-fixing Output Parser"},"iconData":{"icon":"tools","type":"icon"},"displayName":"Auto-fixing Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1179,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.outputParserStructured","codex":{"data":{"alias":["json","zod"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Structured Output Parser"},"iconData":{"icon":"code","type":"icon"},"displayName":"Structured Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":43,"name":"Personal Productivity"},{"id":47,"name":"AI Chatbot"}],"image":[]}}