Workflow: Outputparserstructured Workflow
Integrations: extractFromFile, gmailTrigger, googleSheets, noOp, stickyNote, stopAndError

{"meta": {"instanceId": "workflow-41f18dbc", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:45.168278", "updatedAt": "2025-09-29T07:07:45.168317", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production"}, "nodes": [{"id": "53cc8017-5310-4205-85e0-8cc839693601", "name": "Structured Output Parser", "type": "n8n-nodes-base.noOp", "position": [720, 400], "parameters": {"schemaType": "manual", "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"name\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n      \"email\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n      \"linkedin\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n      \"score\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t\t\n\t}\n}"}, "typeVersion": 1.2, "notes": "This outputParserStructured node performs automated tasks as part of the workflow."}, {"id": "ea0c00d3-25c8-4523-88ff-d61d6665ecf7", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [-760, 160], "parameters": {"width": 480, "height": 260, "content": "## Resume Screener from Gmail to Sheets\n\n### \ud83d\udcc3Before you get started, you'll need:\n- [n8n installation]({{ $env.WEBHOOK_URL }} \n- [OpenAI API Key]({{ $env.API_BASE_URL }}\n- Google Sheets API enabled in [Google Cloud Console]({{ $env.API_BASE_URL }}\n- Google Drive API enabled in [Google Cloud Console]({{ $env.API_BASE_URL }}\n- OAuth 2.0 Client ID and Client Secret from your [Google Cloud Console Credentials]({{ $env.API_BASE_URL }}\n"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "e4f3aef9-750a-48bb-899b-bd4a810032f2", "name": "Extract text from PDF File", "type": "n8n-nodes-base.extractFromFile", "position": [320, 180], "parameters": {"options": {}, "operation": "pdf", "binaryPropertyName": "attachment_0"}, "typeVersion": 1, "notes": "This extractFromFile node performs automated tasks as part of the workflow."}, {"id": "5418cfae-25da-4f58-99ef-d6957d8819a8", "name": "AI Agent to evaluate Resume", "type": "n8n-nodes-base.noOp", "position": [540, 180], "parameters": {"text": "=Here is the resume:\n\n{{ $json.text }}", "options": {"systemMessage": "You are an invaluable assistant. You were given a resume. You have to help me analyze the resume and give it a score based on the details available in the resume. Also, extract the name, email, and LinkedIn profile from the resume."}, "promptType": "define", "hasOutputParser": true}, "typeVersion": 1.8, "notes": "This agent node performs automated tasks as part of the workflow."}, {"id": "dce8e431-9d5c-4aa1-a0eb-c2a27de2d7f9", "name": "OpenAI Chat Model (GPT 4o-mini)", "type": "n8n-nodes-base.noOp", "position": [520, 400], "parameters": {"model": {"__rl": true, "mode": "list", "value": "gpt-4o-mini"}, "options": {}}, "credentials": {"openAiApi": {"id": "PMxepoh6OuVxbpg1", "name": "OpenAi account"}}, "typeVersion": 1.2, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow."}, {"id": "e7fdaf75-11ad-40c2-84a0-13c52f6f2eb1", "name": "Add Resume Evaluation to Google Sheets", "type": "n8n-nodes-base.googleSheets", "position": [920, 180], "parameters": {"columns": {"value": {"Name": "={{ $json.output.name }}", "Email": "={{ $json.output.email }}", "Score": "={{ $json.output.score }}", "LinkedIn": "={{ $json.output.linkedin }}", "Resume text": "={{ $('Extract text from PDF File').item.json.text }}"}, "schema": [{"id": "Name", "type": "string", "display": true, "required": false, "displayName": "Name", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "Email", "type": "string", "display": true, "required": false, "displayName": "Email", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "LinkedIn", "type": "string", "display": true, "removed": false, "required": false, "displayName": "LinkedIn", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "Score", "type": "string", "display": true, "required": false, "displayName": "Score", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "Resume text", "type": "string", "display": true, "required": false, "displayName": "Resume text", "defaultMatch": false, "canBeUsedToMatch": true}], "mappingMode": "defineBelow", "matchingColumns": [], "attemptToConvertTypes": false, "convertFieldsToString": false}, "options": {"useAppend": true}, "operation": "append", "sheetName": {"__rl": true, "mode": "list", "value": 781640061, "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "Resume Score"}, "documentId": {"__rl": true, "mode": "list", "value": "1SGYsuJI2YJVztZZmSLsFZ0lbUHnxm0V9r3c8S5-2q74", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "Lead Generation"}}, "credentials": {"googleSheetsOAuth2Api": {"id": "kzZGQmdAV5cPfymZ", "name": "Google Sheets (server@hic)"}}, "typeVersion": 4.5, "notes": "This googleSheets node performs automated tasks as part of the workflow."}, {"id": "0ad65e2b-665d-4b77-a941-b15a7ffbfb89", "name": "Trigger on new Email Received", "type": "n8n-nodes-base.gmailTrigger", "position": [60, 180], "parameters": {"simple": false, "filters": {"q": "has:attachment", "labelIds": ["UNREAD"], "readStatus": "unread"}, "options": {"downloadAttachments": true}, "pollTimes": {"item": [{"mode": "everyHour", "minute": 1}]}}, "credentials": {"gmailOAuth2": {"id": "tPOAqAl9y3adqJD6", "name": "Gmail account (hire@hic)"}}, "typeVersion": 1.2, "notes": "This gmailTrigger node performs automated tasks as part of the workflow."}, {"id": "error-e23b7ef4", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [1000, 400], "parameters": {"message": "Workflow execution error", "options": {}}}], "pinData": {}, "connections": {"e4f3aef9-750a-48bb-899b-bd4a810032f2": {"main": [[{"node": "error-handler-e4f3aef9-750a-48bb-899b-bd4a810032f2-1304f85c", "type": "main", "index": 0}]]}, "dce8e431-9d5c-4aa1-a0eb-c2a27de2d7f9": {"main": [[{"node": "error-handler-dce8e431-9d5c-4aa1-a0eb-c2a27de2d7f9-06eee85b", "type": "main", "index": 0}]]}, "e7fdaf75-11ad-40c2-84a0-13c52f6f2eb1": {"main": [[{"node": "error-handler-e7fdaf75-11ad-40c2-84a0-13c52f6f2eb1-22382597", "type": "main", "index": 0}]]}}, "name": "Outputparserstructured Workflow", "settings": {"executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000}, "description": "Automated workflow: Outputparserstructured Workflow. This workflow integrates 8 different services: stickyNote, gmailTrigger, agent, outputParserStructured, stopAndError. It contains 10 nodes and follows best practices for error handling and security.", "tags": ["automation", "n8n", "production-ready", "excellent", "optimized"], "notes": "Excellent quality workflow: Outputparserstructured Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}