Resume / backend /src /services /atsService.js
AFAautomation's picture
Initial commit with LFS enabled
92a138e
Raw
History Blame Contribute Delete
1.43 kB
const aiService = require('./aiService');
const localAtsService = require('./localAtsService');
/**
* ATS Optimization Service - Hybrid Approach
* 1. Performs instant local analysis (FREE)
* 2. Attempts to enhance with AI deep insights if available.
*/
async function scoreResume(resumeContent, templateId = '') {
const data = typeof resumeContent === 'string' ? JSON.parse(resumeContent) : resumeContent;
// 1. Core Structural Analysis (FAST & FREE)
const result = localAtsService.analyze(data);
try {
// 2. Attempt Deep AI Enhancement
const aiResult = await aiService.analyzeAts(data);
// Merge AI improvements if they are better/deeper
if (aiResult.topImprovements && aiResult.topImprovements.length > 0) {
result.topImprovements = aiResult.topImprovements;
}
// Keep local structural feedback but add AI feedback if relevant
if (aiResult.feedback) {
result.aiFeedback = aiResult.feedback;
}
// Use AI score if it provides a different perspective
// (Optional: can also average them or keep local as baseline)
result.score = Math.round((result.score + (aiResult.score || result.score)) / 2);
} catch (error) {
console.warn('AI ATS Deep Scan failed, using local analysis only:', error.message);
// result already contains the local analysis, so we just return it.
}
return result;
}
module.exports = { scoreResume };