UNPKG

resume-parser-mcp

Version:

To install dependencies:

61 lines (53 loc) 1.97 kB
export function extractWorkExperience(text: string) { const keywords = ['工作经历', 'Work Experience', '职业经历', 'employment']; const stopKeywords = ['教育', 'Education', '技能', 'Skills', '项目', 'Projects']; const lines = text.split('\n'); let workStartIndex = -1; let workEndIndex = lines.length; // 找到工作经历开始行 for (let i = 0; i < lines.length; i++) { if (keywords.some(keyword => lines[i].toLowerCase().includes(keyword.toLowerCase()))) { workStartIndex = i + 1; break; } } // 如果没找到工作经历关键词,返回空数组 if (workStartIndex === -1) return []; // 找到工作经历结束行 for (let i = workStartIndex; i < lines.length; i++) { if (stopKeywords.some(keyword => lines[i].toLowerCase().includes(keyword.toLowerCase()))) { workEndIndex = i; break; } } // 提取工作经历内容行 const workLines = lines.slice(workStartIndex, workEndIndex) .filter(line => line.trim().length > 0); // 简单解析工作经历(这里只是示例,实际需要更复杂的逻辑) const experiences = []; let currentExperience: { name?: string; startDate?: string; summary?: string; } = {}; workLines.forEach(line => { // 假设包含年份的行是新的工作经历开始 if (/\b(19|20)\d{2}\b/.test(line)) { if (Object.keys(currentExperience).length > 0) { experiences.push(currentExperience); } currentExperience = { name: line.split(/\d{4}/)[0].trim(), startDate: line.match(/\b(19|20)\d{2}\b/g)?.[0] || '', summary: '' }; } else if (currentExperience) { currentExperience.summary += line + ' '; } }); // 添加最后一个工作经历 if (Object.keys(currentExperience).length > 0) { experiences.push(currentExperience); } return experiences; }