@hzhaholic/ai-resume-helper
v1.0.0
Published
AI Resume Helper - Angular library for resume optimization, interview questions, and job matching
Maintainers
Readme
AI Resume Helper
AI Resume Helper 是一个基于 Angular 18 的简历优化库,提供 AI 简历优化、面试问题生成和岗位匹配度分析等功能。
✨ 特性
- 📄 简历优化:使用 AI 提升简历专业度和竞争力
- 🎯 面试问题:生成针对性的面试问题和参考答案
- 📊 岗位匹配:分析简历与职位描述的匹配度
- 🎨 简历模板:提供多种专业简历模板
- 🔧 模块化设计:支持按需导入和使用
- 🚀 Angular 18:基于最新的 Angular 18 标准和 standalone 组件
📦 安装
使用 npm 安装:
npm install hzhaholic/ai-resume-helper🚀 快速开始
1. 导入模块
在你的 Angular 项目中,你可以直接导入所需的组件和服务:
import { ResumeOptimizerComponent } from 'hzhaholic/ai-resume-helper';
import { InterviewQuestionsComponent } from 'hzhaholic/ai-resume-helper';
import { JobMatchComponent } from 'hzhaholic/ai-resume-helper';
import { ResumeTemplatesComponent } from 'hzhaholic/ai-resume-helper';
import { AiResumeService, ResumeService } from 'hzhaholic/ai-resume-helper';2. 使用组件
在你的模板中使用组件:
<!-- 简历优化组件 -->
<app-resume-optimizer></app-resume-optimizer>
<!-- 面试问题组件 -->
<app-interview-questions></app-interview-questions>
<!-- 岗位匹配组件 -->
<app-job-match></app-job-match>
<!-- 简历模板组件 -->
<app-resume-templates></app-resume-templates>3. 使用服务
在你的服务或组件中注入和使用服务:
import { Component, inject } from '@angular/core';
import { AiResumeService, OptimizationResult } from 'hzhaholic/ai-resume-helper';
@Component({
selector: 'app-my-component',
standalone: true,
template: `
<button (click)="optimizeResume()">优化简历</button>
<div *ngIf="result">{{ result.optimizedContent }}</div>
`
})
export class MyComponent {
private aiResumeService = inject(AiResumeService);
result: OptimizationResult | null = null;
optimizeResume() {
const resumeContent = '你的简历内容...';
this.aiResumeService.optimizeResume(resumeContent).subscribe({
next: (result) => {
this.result = result;
},
error: (error) => {
console.error('优化失败:', error);
}
});
}
}📁 目录结构
├── lib/
│ ├── services/ # 服务层
│ │ ├── ai-resume.service.ts # AI 简历服务
│ │ └── resume.service.ts # 简历管理服务
│ └── components/ # 组件
│ ├── resume-optimizer/ # 简历优化组件
│ ├── interview-questions/ # 面试问题组件
│ ├── job-match/ # 岗位匹配组件
│ └── resume-templates/ # 简历模板组件
└── public-api.ts # 公共 API 导出🔧 API 文档
AiResumeService
optimizeResume(content: string): Observable
优化简历内容,返回优化结果。
参数:
content: 简历内容
返回值:
OptimizationResult: 优化结果,包含优化后的内容、评分、关键词等
generateInterviewQuestions(content: string, jobTitle: string): Observable<InterviewQuestion[]>
生成面试问题。
参数:
content: 简历内容jobTitle: 目标职位
返回值:
InterviewQuestion[]: 面试问题列表
calculateJobMatch(resumeContent: string, jobDescription: string): Observable
计算简历与职位描述的匹配度。
参数:
resumeContent: 简历内容jobDescription: 职位描述
返回值:
JobMatchResult: 匹配度分析结果
ResumeService
setResumeData(data: ResumeData): void
设置当前简历数据。
getResumeData(): ResumeData | null
获取当前简历数据。
addToSavedResumes(resume: ResumeData): void
保存简历到本地存储。
removeFromSavedResumes(id: string): void
从本地存储中删除简历。
🎯 接口定义
OptimizationResult
interface OptimizationResult {
optimizedContent: string; // 优化后的内容
score: number; // 专业度评分
keywords: string[]; // 关键技能词
suggestions: string[]; // 优化建议
improvements: string[]; // 主要改进
}InterviewQuestion
interface InterviewQuestion {
id: string; // 问题ID
question: string; // 问题内容
category: string; // 问题类别
difficulty: 'easy' | 'medium' | 'hard'; // 难度
suggestedAnswer?: string; // 参考答案
}JobMatchResult
interface JobMatchResult {
score: number; // 匹配度评分
matchPercentage: number; // 匹配百分比
strengths: string[]; // 优势
weaknesses: string[]; // 不足
suggestions: string[]; // 改进建议
recommendations?: string[]; // 推荐行动
keywordMatch?: {
resume: string[]; // 简历关键词
job: string[]; // 职位关键词
missing: string[]; // 缺失关键词
};
}ResumeData
interface ResumeData {
id: string; // 简历ID
content: string; // 简历内容
fileName: string; // 文件名
fileType: string; // 文件类型
uploadTime: Date; // 上传时间
optimizedContent?: string; // 优化后的内容
optimizationScore?: number; // 优化评分
keywords?: string[]; // 关键词
suggestions?: string[]; // 建议
}🌟 示例
1. 简历优化示例
import { Component, inject } from '@angular/core';
import { AiResumeService, OptimizationResult } from 'hzhaholic/ai-resume-helper';
@Component({
selector: 'app-optimize-example',
standalone: true,
template: `
<textarea [(ngModel)]="resumeContent" placeholder="输入简历内容"></textarea>
<button (click)="optimize()">优化</button>
<div *ngIf="result">
<h3>优化结果</h3>
<p>评分: {{ result.score }}/100</p>
<div>{{ result.optimizedContent }}</div>
</div>
`
})
export class OptimizeExample {
private aiResumeService = inject(AiResumeService);
resumeContent = '';
result: OptimizationResult | null = null;
optimize() {
this.aiResumeService.optimizeResume(this.resumeContent).subscribe({
next: (result) => {
this.result = result;
}
});
}
}2. 面试问题示例
import { Component, inject } from '@angular/core';
import { AiResumeService, InterviewQuestion } from 'hzhaholic/ai-resume-helper';
@Component({
selector: 'app-interview-example',
standalone: true,
template: `
<textarea [(ngModel)]="resumeContent" placeholder="输入简历内容"></textarea>
<input [(ngModel)]="jobTitle" placeholder="输入目标职位">
<button (click)="generate()">生成问题</button>
<div *ngFor="let question of questions">
<h4>{{ question.question }}</h4>
<p>类别: {{ question.category }}</p>
</div>
`
})
export class InterviewExample {
private aiResumeService = inject(AiResumeService);
resumeContent = '';
jobTitle = '';
questions: InterviewQuestion[] = [];
generate() {
this.aiResumeService.generateInterviewQuestions(this.resumeContent, this.jobTitle).subscribe({
next: (questions) => {
this.questions = questions;
}
});
}
}📝 注意事项
- Angular 版本兼容:此库仅支持 Angular 18.0.0 及以上版本
- 依赖:需要确保项目中已安装以下依赖:
- @angular/common
- @angular/core
- @angular/forms
- @angular/router
- rxjs
- 使用方式:所有组件均为 standalone 组件,可以直接在项目中使用
- 数据存储:使用 localStorage 进行数据持久化,确保在浏览器环境中使用
- 缓存策略:服务内部实现了 30 分钟的缓存机制,避免重复的 AI 调用
🤝 贡献
欢迎贡献代码和提出问题!请在 GitHub 上提交 Issue 或 Pull Request。
📄 许可证
MIT License
📞 联系
享受使用 AI Resume Helper 提升你的简历竞争力! 🚀
