1 介绍
Auto_Jobs_Applier_AIHawk 是一款先进的自动化工具,旨在彻底改变求职和申请流程。在当今竞争激烈的就业市场中,机会可能转瞬即逝,而这款程序为求职者提供了巨大的优势。通过利用自动化和人工智能的力量,Auto_Jobs_Applier_AIHawk 使用户能够高效、个性化地申请大量相关职位,最大限度地提高他们获得理想工作的机会。
1.1 现代求职的挑战
在数字时代,求职环境发生了巨大变化。虽然在线平台开辟了一个充满机遇的世界,但也加剧了竞争。求职者经常发现自己花费无数时间浏览招聘信息、定制申请表并重复填写表格。这个过程不仅耗时,而且会消耗情感,导致求职疲劳和错失机会。
1.2 AIHawk:你的个人求职助手
AIHawk 是应对这些挑战的革命性解决方案。它不仅仅是一个工具,更是您不知疲倦的全天候求职伙伴。通过自动化求职过程中最耗时的环节,它让您可以专注于真正重要的事情 – 准备面试和发展您的专业技能。
2 特征
- 智能求职自动化
- 可定制的搜索条件
- 持续扫描新空缺
- 智能过滤以排除不相关的列表
- 快速、高效的申请提交
- 一键应用
- 使用您的个人资料信息自动填写表格
- 自动添加文档附件(简历、求职信)
- 人工智能个性化
- 针对雇主特定问题的动态响应生成
- 语气和风格匹配以适应公司文化
- 关键字优化以提高应用程序相关性
- 质量管理
- 批量申请能力
- 质量控制措施
- 详细的申请追踪
- 智能过滤和黑名单
- 公司将不受欢迎的雇主列入黑名单
- 标题过滤,聚焦相关职位
- 动态简历生成
- 自动为每个申请创建定制的简历
- 根据职位要求定制简历内容
- 安全数据处理
- 使用 YAML 文件安全地管理敏感信息
2 安装
已确认以下运行成功:
- 操作系统:
- Windows 10
- Ubuntu 22
- Python 版本:
- 3.10
- 3.11.9(64b)
- 3.12.5(64b)
- 下载并安装 Python:确保安装了最新的 Python 版本。如果没有,请从 Python 官方网站下载并安装。有关详细说明,请参阅教程:
- 下载并安装 Google Chrome:
- 从官方网站下载并在默认位置安装最新版本的 Google Chrome 。
- 克隆存储库:git clone https://github.com/feder-cr/Auto_Jobs_Applier_AIHawk.git cd Auto_Jobs_Applier_AIHawk
- 激活虚拟环境:python3 -m venv virtualsource virtual/bin/activate或者对于基于 Windows 的计算机 -.\virtual\Scripts\activate
- 安装所需的软件包:pip install -r requirements.txt
3 配置
3.1. secrets.yaml
此文件包含敏感信息。切勿共享此文件或将其提交至版本控制。
llm_api_key: [Your OpenAI or Ollama API key or Gemini API key]
- 将其替换为用于 GPT 集成的 OpenAI API 密钥
- 要获取 API 密钥,请按照以下教程进行操作:https: //medium.com/@lorenzozar/how-to-get-your-own-openai-api-key-f4d44e60c327
- 注意:您需要向您的 OpenAI 帐户充值才能使用 API。您可以访问OpenAI 计费仪表板来充值。
- 根据OpenAI 社区和我们用户的报告,在设置 OpenAI 帐户并购买所需积分后,用户仍然拥有
Free
帐户类型。这阻止他们无限制地访问 OpenAI 模型,并且每天只允许 200 个请求。这可能会导致运行时错误,例如:Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. ...}}
{'error': {'message': 'Rate limit reached for gpt-4o-mini in organization <org> on requests per day (RPD): Limit 200, Used 200, Requested 1.}}
OpenAI 会自动更新您的帐户,但可能需要一些时间,从几个小时到几天不等。您可以在官方页面
上找到有关组织限制的更多信息。 - 如需获取 Gemini API 密钥,请访问Google AI for Devs
3.2. 配置.yaml
此文件定义您的求职参数和机器人行为。每个部分包含您可以自定义的选项:
remote: [true/false]
- 设置为
true
包含远程作业,false
以排除它们
- 设置为
experienceLevel:
- 将所需经验等级设置为
true
,其他设置为false
- 将所需经验等级设置为
jobTypes:
- 将所需作业类型设置为
true
,其他设置为false
- 将所需作业类型设置为
date:
- 选择一个招聘信息发布时间范围,将其设置为
true
,其他设置为false
- 选择一个招聘信息发布时间范围,将其设置为
positions:
- 列出你感兴趣的职位,每行一个
- 例子:positions: – Software Developer – Data Scientist
locations:
- 列出要搜索的位置,每行一个
- 例子:locations: – Italy – London
apply_once_at_company: [True/False]
- 设置为
True
每个公司仅申请一次,False
以允许每个公司多次申请
- 设置为
distance: [number]
- 以英里为单位设置求职半径
- 例子:
distance: 50
companyBlacklist:
- 列出您想要从搜索中排除的公司,每行一家
- 例子:companyBlacklist: – Company X – Company Y
titleBlacklist:
- 列出您想要避免的职位名称中的关键字,每行一个
- 例子:titleBlacklist: – Sales – Marketing
3.2.1 config.yaml – 自定义 LLM 模型端点
llm_model_type
:- 选择模型类型,支持:openai / ollama / claude / gemini
llm_model
:- 选择LLM模型,目前支持:
- openai:GPT-4O
- ollama:llama2,mistral:v0.3
- claude: 任何型号
- 双子座:任意型号
- 选择LLM模型,目前支持:
llm_api_url
:- LLM 模型的 API 端点链接
- openai:https://api.pawan.krd/cosmosrp/v1
- 乌拉马: http: //127.0.0.1:11434/
- 克劳德:https://api.anthropic.com/v1
- gemini:没有 api_url
- LLM 模型的 API 端点链接
- 注意:要运行本地 Ollama,请遵循此处的指南:Ollama 部署指南
3.3. plain_text_resume.yaml
此文件以结构化格式包含您的简历信息。请填写您的个人详细信息、教育背景、工作经验和技能。此信息用于自动填写申请表并生成定制简历。
每个部分都有特定字段需要填写:
personal_information:
- 此部分包含基本个人信息,用于识别您的身份并提供联系信息。
- name:您的名字。
- 姓氏 (surname):您的姓氏。
- date_of_birth:您的出生日期,格式为 DD/MM/YYYY。
- country:您目前居住的国家。
- 城市:您目前居住的城市。
- 地址:您的完整地址,包括街道和门牌号。
- zip_code:您的邮政编码。
- phone_prefix:您的电话号码的国际拨号代码(例如,美国为 +1,英国为 +44)。
- 电话:您的电话号码,不带国际前缀。
- 电子邮件:您的主要电子邮件地址。
- github:您的 GitHub 个人资料的 URL(如果适用)。
- linkedin:您的 LinkedIn 个人资料的 URL(如果适用)。
- 例子:
personal_information:
name: "Jane"
surname: "Doe"
date_of_birth: "01/01/1990"
country: "USA"
city: "New York"
address: "123 Main St"
zip_code: "520123"
phone_prefix: "+1"
phone: "5551234567"
email: "jane.doe@example.com"
github: "https://github.com/janedoe"
linkedin: "https://www.linkedin.com/in/janedoe/"
education_details:
- 本部分概述了您的学术背景,包括所获学位和相关课程。
- degree:所获学位的类型(例如学士学位、硕士学位)。
- 大学:您就读的大学或机构的名称。
- final_evaluation_grade:您的平均绩点或同等的学业成绩衡量标准。
- start_date:您开始学习的年份。
- diploma_year:您毕业的年份。
- field_of_study:您研究的专业或重点领域。
- 考试:所修课程或科目的列表及其各自的成绩。
- 例子:
- 本部分概述了您的学术背景,包括所获学位和相关课程。
personal_information:
name: "Jane"
surname: "Doe"
date_of_birth: "01/01/1990"
country: "USA"
city: "New York"
address: "123 Main St"
zip_code: "520123"
phone_prefix: "+1"
phone: "5551234567"
email: "jane.doe@example.com"
github: "https://github.com/janedoe"
linkedin: "https://www.linkedin.com/in/janedoe/"
experience_details:
- 本部分详细介绍您的工作经历,包括工作角色、公司和主要职责。
- 职位: 您的职位或角色。公司:您工作的公司或组织的名称。employment_period:您担任该职位的时间范围(例如,MM/YYYY – MM/YYYY)。location:公司所在的城市和国家。行业:公司经营所在的行业或领域。key_responsive:您在该职位上的主要职责或任务的列表。skills_acquired:通过此角色获得的技能或专业知识
- 本部分详细介绍您的工作经历,包括工作角色、公司和主要职责。
- 例子:
education_details:
- education_level: "Bachelor's Degree"
institution: "University of Example"
field_of_study: "Software Engineering"
final_evaluation_grade: "4/4"
start_date: "2021"
year_of_completion: "2023"
exam:
Algorithms: "A"
Data Structures: "B+"
Database Systems: "A"
Operating Systems: "A-"
Web Development: "B"
projects:
- 包括您曾经参与过的值得注意的项目,包括个人或专业项目。
- name:项目的名称或标题。
- 描述:项目涉及的内容或其目的的简要摘要。
- link:项目的 URL(如果可用)(例如 GitHub 存储库、网站)。
- 例子:
- 包括您曾经参与过的值得注意的项目,包括个人或专业项目。
experience_details:
- position: "Software Developer"
company: "Tech Innovations Inc."
employment_period: "06/2021 - Present"
location: "San Francisco, CA"
industry: "Technology"
key_responsibilities:
- "Developed web applications using React and Node.js"
- "Collaborated with cross-functional teams to design and implement new features"
- "Troubleshot and resolved complex software issues"
skills_acquired:
- "React"
- "Node.js"
- "Software Troubleshooting"
achievements:
- 强调您取得的显著成就或奖项。
- name:成就的标题或名称。
- 描述:简要说明该成果及其意义。
- 例子:
- 强调您取得的显著成就或奖项。
projects:
- name: "Weather App"
description: "A web application that provides real-time weather information using a third-party API."
link: "https://github.com/janedoe/weather-app"
- name: "Task Manager"
description: "A task management tool with features for tracking and prioritizing tasks."
link: "https://github.com/janedoe/task-manager"
certifications:
- 包括您获得的任何专业认证。
- 名称:“PMP”
描述:“项目管理协会(PMI)颁发的项目管理专业人员认证”
- 名称:“PMP”
- 例子:
- 包括您获得的任何专业认证。
certifications:
- "Certified Scrum Master"
- "AWS Certified Solutions Architect"
languages:
- 详细说明您所说的语言以及每种语言的熟练程度。
- language:语言的名称。proficiency:您的熟练程度(例如,母语、流利、中级)。
- 详细说明您所说的语言以及每种语言的熟练程度。
languages:
- language: "English"
proficiency: "Fluent"
- language: "Spanish"
proficiency: "Intermediate"
interests:
- 提及可能与您的职业相关的专业或个人兴趣。
- interest:兴趣或爱好的列表。
- 例子:
- 提及可能与您的职业相关的专业或个人兴趣。
interests:
- "Machine Learning"
- "Cybersecurity"
- "Open Source Projects"
- "Digital Marketing"
- "Entrepreneurship"
availability:
- 说明您当前的可用时间或通知期限。
- notice_period:开始新角色之前所需的时间(例如“2 周”、“1 个月”)。
- 例子:
- 说明您当前的可用时间或通知期限。
availability:
notice_period: "2 weeks"
salary_expectations:
- 提供您期望的薪资范围。
- salary_range_usd:您期望的薪资范围,以美元表示。
- 例子:
- 提供您期望的薪资范围。
salary_expectations:
salary_range_usd: "80000 - 100000"
self_identification:
- 提供与个人身份相关的信息,包括性别和代词。
- 性别:您的性别认同。
- 代词:您使用的代词(例如,他/他、她/她、他们/他们)。
- 退伍军人:您的退伍军人身份(例如,是、否)。
- 残疾:您是否患有残疾(例如,是、否)。
- 种族: 您的种族。
- 例子:
- 提供与个人身份相关的信息,包括性别和代词。
self_identification:
gender: "Female"
pronouns: "She/Her"
veteran: "No"
disability: "No"
ethnicity: "Asian"
legal_authorization:
- 表明您在不同地点工作的合法能力。
- eu_work_authorization:您是否被授权在欧盟工作(是/否)。
- us_work_authorization:您是否被授权在美国工作(是/否)。
- require_us_visa:您是否需要签证才能在美国工作(是/否)。
- require_us_sponsorship:您是否需要赞助才能在美国工作(是/否)。
- require_eu_visa:您是否需要签证才能在欧盟工作(是/否)。
- legally_allowed_to_work_in_eu:您是否被合法允许在欧盟工作(是/否)。
- legally_allowed_to_work_in_us:您是否被合法允许在美国工作(是/否)。
- require_eu_sponsorship:您是否需要赞助才能在欧盟工作(是/否)。
- canada_work_authorization:您是否被授权在加拿大工作(是/否)。
- require_canada_visa:您是否需要签证才能在加拿大工作(是/否)。
- legally_allowed_to_work_in_canada:您是否被合法允许在加拿大工作(是/否)。
- require_canada_sponsorship:您是否需要赞助才能在加拿大工作(是/否)。
- uk_work_authorization:您是否被授权在英国工作(是/否)。
- require_uk_visa:您是否需要签证才能在英国工作(是/否)。
- legally_allowed_to_work_in_uk:您是否被合法允许在英国工作(是/否)。
- require_uk_sponsorship:您是否需要赞助才能在英国工作(是/否)。
- 例子:
- 表明您在不同地点工作的合法能力。
legal_authorization:
eu_work_authorization: "Yes"
us_work_authorization: "Yes"
requires_us_visa: "No"
requires_us_sponsorship: "Yes"
requires_eu_visa: "No"
legally_allowed_to_work_in_eu: "Yes"
legally_allowed_to_work_in_us: "Yes"
requires_eu_sponsorship: "No"
canada_work_authorization: "Yes"
requires_canada_visa: "No"
legally_allowed_to_work_in_canada: "Yes"
requires_canada_sponsorship: "No"
uk_work_authorization: "Yes"
requires_uk_visa: "No"
legally_allowed_to_work_in_uk: "Yes"
requires_uk_sponsorship: "No"
work_preferences:
- 指定您对工作安排和条件的偏好。
- remote_work:您是否愿意接受远程工作(是/否)。
- in_person_work:您是否愿意接受面对面工作(是/否)。
- open_to_relocation:您是否愿意为了工作而搬迁(是/否)。
- wishing_to_complete_assessments:您是否愿意完成工作评估(是/否)。
- wishing_to_undergo_drug_tests:您是否愿意接受药物测试(是/否)。
- wishing_to_undergo_background_checks:您是否愿意接受背景调查(是/否)。
- 例子:
- 指定您对工作安排和条件的偏好。
work_preferences:
remote_work: "Yes"
in_person_work: "No"
open_to_relocation: "Yes"
willing_to_complete_assessments: "Yes"
willing_to_undergo_drug_tests: "No"
willing_to_undergo_background_checks: "Yes"
3.4 data_folder_example
该data_folder_example
文件夹包含一个工作示例,说明如何构建和填写机器人运行所需的文件。此文件夹可作为实用参考,帮助您正确设置求职机器人的工作环境。
内容
在此文件夹中,您将找到关键文件的示例版本:
secrets.yaml
config.yaml
plain_text_resume.yaml
这些文件已填充了虚构但真实的数据。它们向您显示了每个文件中应输入的正确格式和信息类型。
用法
使用此文件夹作为指南对于以下方面尤其有用:
- 了解每个配置文件的正确结构
- 查看每个字段的有效数据示例
- 填写个人档案时有一个参考点
4 用法
- 帐户语言 为了确保机器人正常运行,您的帐户语言必须设置为英语。
- 数据文件夹: 确保您的数据文件夹包含以下文件:
secrets.yaml
config.yaml
plain_text_resume.yaml
- 运行机器人:Auto_Jobs_Applier_AIHawk 在处理 pdf 简历方面提供了灵活性:
- 动态简历生成: 如果您不使用该
--resume
选项,机器人将自动为每份申请生成一份独特的简历。此功能使用您plain_text_resume.yaml
文件中的信息并根据每份特定的工作申请进行量身定制,通过为每个职位定制简历,可能会增加您成功的机会。python main.py - 使用特定的简历: 如果您想对所有应用程序使用特定的 PDF 简历,请将您的简历 PDF 放在目录中
data_folder
,然后使用以下选项运行机器人--resume
:python main.py –resume /path/to/your/resume.pdf - 使用 colled 模式: 如果您只想收集职位数据以执行任何类型的数据分析,您可以使用带有该
--collect
选项的机器人。这将把从 linkedin 职位空缺中找到的所有数据存储在 output/data.json 文件中。python main.py –collect
4.1 常见问题故障排除
1. OpenAI API 速率限制错误
错误信息:
openai.RateLimitError:错误代码:429 – {‘error’:{‘message’:’您超出了当前配额,请检查您的计划和账单详情。有关此错误的更多信息,请阅读文档: https: //platform.openai.com/docs/guides/error-codes/api-errors。’,’type ‘:’insufficient_quota’,’param’:None,’code’:’insufficient_quota’}}
解决方案:
- 请访问https://platform.openai.com/account/billing检查您的 OpenAI API 计费设置
- 确保您已向 OpenAI 帐户添加了有效的付款方式
- 请注意,ChatGPT Plus 订阅与 API 访问不同
- 如果您最近添加了资金或进行了升级,请等待 12-24 小时以使更改生效
- 免费套餐的 RPM 限制为 3;至少花费 5 美元使用 API 即可增加
2. 未找到简易申请按钮
错误信息:
异常:未找到可点击的“轻松应用”按钮
解决方案:
- 确保你已正确登录
- 检查你瞄准的职位列表是否真的有“轻松申请”选项
- 验证
config.yaml
文件中的搜索参数是否正确,并使用“轻松申请”按钮返回职位 - 尝试在脚本中增加页面加载的等待时间,以确保在搜索按钮之前加载所有元素
3. 求职申请中的信息不正确
问题:机器人提供的经验、CTC 和通知期数据不准确
解决方案:
- 更新专业经验具体性的提示
config.yaml
添加当前 CTC、预期 CTC 和通知期的字段- 修改机器人逻辑以使用这些新的配置字段
4. YAML 配置错误
错误信息:
yaml.scanner.ScannerError:扫描简单密钥时
解决方案:
- 复制范例
config.yaml
并逐步修改 - 确保 YAML 缩进和间距正确
- 使用 YAML 验证器工具
- 避免不必要的特殊字符或引号
5. 机器人登录后不申请职位
问题:机器人搜索职位,但继续滚动而不申请
解决方案:
- 检查安全检查或 CAPTCHA
- 验证
config.yaml
职位搜索参数 - 确保您的帐户资料符合工作要求
- 检查控制台输出中的错误消息
4.2 常规故障排除提示
- 使用最新版本的脚本
- 验证所有依赖项均已安装并更新
- 检查互联网连接稳定性
- 如果问题仍然存在,请清除浏览器缓存和 cookie
如需进一步帮助,请在GitHub 存储库上创建一个问题,并提供有关您的问题的详细信息,包括错误消息和您的配置(删除敏感信息)。
5 安装文件
5.1 Ollama 和 Gemini 设置
要安装和配置Ollama和Gemini,请参考以下文档:
按照这些指南中的说明确保AIHawk与Ollama和Gemini正确配置。
5.2 编辑 YAML 文件
有关编辑AIHawk的 YAML 配置部分的详细说明,请参阅此文档:
5.3 自动启动 AIHawk
要使AIHawk在系统启动时自动启动,请按照本指南中的步骤操作:
导航到 docs/ 目录并下载您需要的 PDF 指南。
作者:Rushi,Linkedin,请关注他,支持他。
5.4 其他资源
如果您遇到任何问题,您可以在GitHub上打开问题。请在主题和描述中添加有价值的详细信息。如果您需要新功能,请反映这一点。
我非常乐意为您提供帮助!
6 结论
Auto_Jobs_Applier_AIHawk 通过自动化和增强求职流程,在现代就业市场中提供了显著的优势。凭借动态简历生成和人工智能个性化等功能,它提供了无与伦比的灵活性和效率。无论您是希望最大限度地提高求职机会的求职者、希望简化申请提交流程的招聘人员,还是希望提供更好服务的职业顾问,Auto_Jobs_Applier_AIHawk 都是一项宝贵的资源。通过利用尖端的自动化和人工智能,该工具不仅可以节省时间,还可以在当今竞争激烈的环境中显著提高求职的效率和质量。
7 贡献者
- feder-cr – 创建者和首席开发人员
Auto_Jobs_Applier_AIHawk 仍处于测试阶段,我们非常重视您的反馈、建议和贡献。欢迎随时提出问题、提出改进建议或提交拉取请求以帮助改进项目。让我们共同努力,让 Auto_Jobs_Applier_AIHawk 成为全球求职者更强大的工具。
8 执照
该项目采用 MIT 许可证 – 有关详细信息,请参阅LICENSE文件。
9 免责声明
此工具 Auto_Jobs_Applier_AIHawk 仅用于教育目的。创建者对因使用而产生的任何后果不承担任何责任。建议用户遵守相关平台的服务条款,并遵守所有适用的法律、法规和道德准则。使用自动化工具申请工作可能会带来风险,包括对用户帐户的潜在影响。请谨慎行事并自行决定。