UNPKG

@wiro-ai/n8n-nodes-wiroai

Version:

n8n community node for Wiro AI — 290+ AI models: video, image, audio, LLM, 3D, and more.

147 lines 6.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AiResumeCvEvaluatorJobdesc = void 0; const n8n_workflow_1 = require("n8n-workflow"); const auth_1 = require("../utils/auth"); const polling_1 = require("../utils/polling"); class AiResumeCvEvaluatorJobdesc { constructor() { this.description = { displayName: 'Wiro - AI CV/Resume Evaluator', name: 'aiResumeCvEvaluatorJobdesc', icon: { light: 'file:wiro.svg', dark: 'file:wiro.svg' }, group: ['transform'], version: 1, description: 'Wiro/AI-Resume-CV-Evaluator-JobDesc helps you evaluate and score resumes (CVs) based on job des', defaults: { name: 'Wiro - AI CV/Resume Evaluator', }, inputs: [n8n_workflow_1.NodeConnectionTypes.Main], outputs: [n8n_workflow_1.NodeConnectionTypes.Main], usableAsTool: true, credentials: [ { name: 'wiroApi', required: true, }, ], properties: [ { displayName: 'Input Document Multiple URLs', name: 'inputDocumentMultipleUrl', type: 'string', default: '', description: 'Upload multiple CV files. Ensure the files are relevant and properly formatted for accurate processing. Supported file types: .csv, .docx, .epub, .jpeg, .jpg, .mbox, .md, .mp3, .mp4, .pdf, .png, .ppt, .pptm, .pptx', }, { displayName: 'Input Document Url Multiple', name: 'inputDocumentUrlMultiple', type: 'string', default: '', description: 'Enter multiple file URLs separated by comma ( , ). Ensure the URLs are accessible and correctly formatted. Supported file types: .csv, .docx, .epub, .jpeg, .jpg, .mbox, .md, .mp3, .mp4, .pdf, .png, .ppt, .pptm, .pptx', }, { displayName: 'Job Desc', name: 'jobDesc', type: 'string', default: '', required: true, description: 'Enter the details of the job posting, including job title, responsibilities, qualifications, and any additional information relevant to the position. Ensure the description is clear and concise to attract the right candidates.', }, { displayName: 'Detail Type', name: 'detailType', type: 'options', default: 'default', description: 'Choose between detailed analysis with parsing or a faster evaluation that provides only the score', options: [ { name: 'Default (Eval Score & Parse)', value: 'default' }, { name: 'Fast (Eval Score)', value: 'fast' }, ], }, { displayName: 'Output Type', name: 'outputType', type: 'options', default: 'csv', description: 'Choose the preferred file format for exporting your data. Select JSON for structured, CSV for a tabular format suitable for spreadsheets and databases.', options: [ { name: 'Csv', value: 'csv' }, { name: 'Json', value: 'json' }, ], }, { displayName: 'Language', name: 'language', type: 'options', default: 'en', description: 'Please select the preferred language for the generated summary', options: [ { name: 'EN', value: 'en' }, { name: 'TR', value: 'tr' }, ], }, ], }; } async execute() { const returnData = []; const inputDocumentMultipleUrl = this.getNodeParameter('inputDocumentMultipleUrl', 0, ''); const inputDocumentUrlMultiple = this.getNodeParameter('inputDocumentUrlMultiple', 0, ''); const jobDesc = this.getNodeParameter('jobDesc', 0); const detailType = this.getNodeParameter('detailType', 0, ''); const outputType = this.getNodeParameter('outputType', 0, ''); const language = this.getNodeParameter('language', 0, ''); const credentials = await this.getCredentials('wiroApi'); const apiKey = credentials.apiKey; const apiSecret = credentials.apiSecret; const headers = (0, auth_1.generateWiroAuthHeaders)(apiKey, apiSecret); const response = await this.helpers.httpRequest({ method: 'POST', url: 'https://api.wiro.ai/v1/Run/wiro/AI-Resume-CV-Evaluator-JobDesc', headers: { ...headers, 'Content-Type': 'application/json', }, body: { inputDocumentMultiple: inputDocumentMultipleUrl, inputDocumentUrlMultiple, jobDesc, detailType, outputType, language, }, }); if (!(response === null || response === void 0 ? void 0 : response.taskid) || !(response === null || response === void 0 ? void 0 : response.socketaccesstoken)) { throw new n8n_workflow_1.NodeApiError(this.getNode(), { message: 'Wiro API did not return a valid task ID or socket access token ' + JSON.stringify(response), }); } const taskid = response.taskid; const socketaccesstoken = response.socketaccesstoken; const result = await polling_1.pollTaskUntilComplete.call(this, socketaccesstoken, headers); const responseJSON = { taskid: taskid, url: '', status: '', }; switch (result) { case '-1': case '-2': case '-3': case '-4': responseJSON.status = 'failed'; break; default: responseJSON.status = 'completed'; responseJSON.url = result !== null && result !== void 0 ? result : ''; } returnData.push({ json: responseJSON, }); return [returnData]; } } exports.AiResumeCvEvaluatorJobdesc = AiResumeCvEvaluatorJobdesc; //# sourceMappingURL=AiResumeCvEvaluatorJobdesc.node.js.map