apply-job
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseJob Application Agent
求职申请Agent
Automated job application system with multi-channel recruiter outreach.
具备多渠道招聘人员拓展功能的自动化求职申请系统。
Quick Start
快速开始
bash
/apply-job <url> # Apply to specific job
/apply-job search <query> # Search and batch apply
/apply-job outreach <url> # Recruiter outreach only
/apply-job status # View statistics
/apply-job score <url> # Score job fit onlybash
/apply-job <url> # 申请指定职位
/apply-job search <query> # 搜索并批量申请
/apply-job outreach <url> # 仅开展招聘人员拓展
/apply-job status # 查看统计数据
/apply-job score <url> # 仅评估职位匹配度Setup Required
必要设置
Before first use, ensure these files exist:
| File | Purpose |
|---|---|
| Your personal info (from template) |
| Application tracking |
| Your complete resume |
| CRITICAL - Exact resume formatting specs |
| Master Python script for DOCX generation |
| Cover letter template |
| Cold email template |
$APPLIER_HOME = (cross-platform)
~/job-applier-agentSee SETUP.md for installation instructions.
首次使用前,请确保以下文件存在:
| 文件 | 用途 |
|---|---|
| 你的个人信息(来自模板) |
| 申请记录追踪 |
| 你的完整简历 |
| 至关重要 - 精确的简历格式规范 |
| 用于生成DOCX简历的核心Python脚本 |
| 求职信模板 |
| 冷邮件模板 |
$APPLIER_HOME = (跨平台)
~/job-applier-agent安装说明请查看SETUP.md。
Core Principles
核心原则
AUTO-PROCEED Mode
AUTO-PROCEED 模式
- DO NOT ask for confirmation at routine steps
- JUST DO IT - proceed through entire workflow automatically
- ONLY STOP for: login walls, CAPTCHA, critical errors, fit score < 5.0
- 请勿在常规步骤中要求确认
- 直接执行 - 自动完成整个工作流程
- 仅在以下情况停止:登录墙、验证码、严重错误、匹配度评分 < 5.0
⚠️ Outreach Order (CRITICAL)
⚠️ 拓展顺序(至关重要)
1. Find recruiters on LinkedIn (names, titles, URLs)
2. Discover email addresses (WebSearch company email pattern)
3. Send cold emails via Gmail FIRST
4. THEN send LinkedIn connection requests
5. Track everything in applications.jsonEmail = PRIMARY (higher response rate). LinkedIn = SECONDARY.
1. 在LinkedIn上查找招聘人员(姓名、职位、链接)
2. 查找邮箱地址(通过WebSearch获取公司邮箱格式)
3. 优先通过Gmail发送冷邮件
4. **然后**发送LinkedIn连接请求
5. 在applications.json中记录所有操作邮件 = 主要渠道(回复率更高),LinkedIn = 次要渠道。
Workflow: Apply to Job URL
工作流程:申请指定职位链接
Step 1: Extract Job Description
步骤1:提取职位描述
1. Navigate to job URL with Playwright
2. Capture page snapshot
3. Extract: title, company, location, requirements
4. Identify key skills/technologies1. 使用Playwright访问职位链接
2. 捕获页面快照
3. 提取:职位名称、公司、地点、要求
4. 识别关键技能/技术Step 2: Score Job Fit (0-10 each)
步骤2:评估职位匹配度(每项0-10分)
- Technical Fit: Skills match percentage
- Level Match: Appropriate for experience level
- Location: Remote/local/relocation
- Mission: Company alignment
Score >= 5.0 → AUTO-PROCEED | Score < 5.0 → Notify user
- 技术匹配度:技能匹配百分比
- 级别匹配度:与经验水平是否相符
- 地点匹配度:远程/本地/是否愿意搬迁
- 愿景匹配度:与公司发展方向的契合度
评分 >= 5.0 → 自动继续 | 评分 < 5.0 → 通知用户
Step 3: Tailor Resume
步骤3:定制简历
CRITICAL: Follow formatting_rules.md exactly!
1. Read $APPLIER_HOME/resume/master_resume.md
2. Copy master Python script (create_resume.py)
3. Analyze JD for:
- Required technologies
- Nice-to-have technologies
- Scale/performance language
- Domain keywords (AI, data, etc.)
4. Modify CONTENT ONLY in the copied script:
- Reword bullets to match JD language
- Bold technologies that match JD exactly
- Reorder skills (JD technologies first)
- Reorder projects (most relevant first)
- Add power words matching JD focus
5. NEVER modify functions, margins, font sizes, or spacing
6. Save tailored script to $APPLIER_HOME/applications/<Company>/
7. Generate DOCX with: python create_<company>_resume.pyTailoring Rules:
- NEVER add skills you don't have
- NEVER fabricate metrics or achievements
- DO reword bullets using JD terminology
- DO bold exact technologies from JD
- DO reorder sections for relevance
- DO add scale/performance words if JD mentions them
Power Words by JD Focus:
| JD Focus | Use These Words |
|---|---|
| Scale | "high-traffic", "thousands of requests", "production system" |
| Performance | "sub-second", "reduced latency", "optimized" |
| Data | "data pipelines", "real-time", "event processing" |
| AI | "AI-powered", "LLMs", "ML models" |
至关重要:严格遵循formatting_rules.md中的规范!
1. 读取$APPLIER_HOME/resume/master_resume.md
2. 复制核心Python脚本(create_resume.py)
3. 分析职位描述(JD):
- 必备技术
- 加分技术
- 关于规模/性能的表述
- 领域关键词(AI、数据等)
4. 仅修改复制后脚本中的**内容**:
- 改写项目描述以匹配JD的表述方式
- 将与JD完全匹配的技术加粗
- 重新排序技能(JD提到的技术优先)
- 重新排序项目(最相关的优先)
- 添加与JD重点匹配的有力词汇
5. **绝不**修改函数、边距、字体大小或间距
6. 将定制后的脚本保存到$APPLIER_HOME/applications/<Company>/
7. 执行python create_<company>_resume.py生成DOCX简历定制规则:
- 绝不添加你不具备的技能
- 绝不编造指标或成就
- 可以使用JD的术语改写项目描述
- 可以将JD中提到的精确技术加粗
- 可以根据相关性重新排序章节
- 如果JD提到规模/性能相关内容,可以添加对应的有力词汇
按职位描述重点选择有力词汇:
| JD重点 | 推荐使用词汇 |
|---|---|
| 规模 | "高流量"、"数千次请求"、"生产系统" |
| 性能 | "亚秒级"、"降低延迟"、"优化" |
| 数据 | "数据管道"、"实时"、"事件处理" |
| AI | "AI驱动"、"LLMs"、"ML模型" |
Step 4: Generate Cover Letter
步骤4:生成求职信
1. Read $APPLIER_HOME/templates/cover_letter.md
2. Research company (WebFetch)
3. Personalize for role + company
4. Keep to 250-350 words
5. Save to $APPLIER_HOME/applications/<Company>/1. 读取$APPLIER_HOME/templates/cover_letter.md
2. 调研公司信息(通过WebFetch)
3. 根据职位和公司进行个性化定制
4. 字数控制在250-350词
5. 保存到$APPLIER_HOME/applications/<Company>/Step 5: Auto-Fill Application
步骤5:自动填写申请表
Use Playwright to fill forms based on platform:
- LinkedIn Easy Apply
- Company career pages (Greenhouse, Lever, Workday, ADP, etc.)
- Upload resume, add cover letter if field exists
使用Playwright根据平台自动填写表单:
- LinkedIn Easy Apply
- 公司招聘页面(Greenhouse、Lever、Workday、ADP等)
- 上传简历,如果有对应字段则添加求职信
Step 6: Track & Screenshot
步骤6:记录与截图
1. Take confirmation screenshot
2. Update $APPLIER_HOME/data/applications.json
3. Update stats1. 截取确认页面的截图
2. 更新$APPLIER_HOME/data/applications.json
3. 更新统计数据Step 7: Recruiter Outreach
步骤7:招聘人员拓展
See WORKFLOWS.md for detailed outreach steps.
Summary:
- Search LinkedIn for company recruiters (3+ people)
- Discover emails via WebSearch (company email pattern)
- Send cold emails via Gmail (use template)
- Send LinkedIn connections (after emails)
- Track all outreach in applications.json
详细的拓展步骤请查看WORKFLOWS.md。
摘要:
- 在LinkedIn上搜索公司招聘人员(至少3人)
- 通过WebSearch查找邮箱(获取公司邮箱格式)
- 使用模板通过Gmail发送冷邮件
- 发送LinkedIn连接请求(在邮件发送之后)
- 在applications.json中记录所有拓展操作
Email Discovery
邮箱地址查找
Common Patterns (try in order)
常见格式(按顺序尝试)
Startups: firstname@company.com
Mid-size: firstname.lastname@company.com, flastname@company.com
Enterprise: firstname.lastname@company.com, firstnamel@company.com初创公司: firstname@company.com
中型公司: firstname.lastname@company.com, flastname@company.com
大型企业: firstname.lastname@company.com, firstnamel@company.comDiscovery Method
查找方法
1. WebSearch: "[Company] email format site:rocketreach.co"
2. WebSearch: "[Name] [Company] email"
3. Apply pattern to recruiter names1. WebSearch:"[Company] email format site:rocketreach.co"
2. WebSearch:"[Name] [Company] email"
3. 将格式应用到招聘人员姓名Profile Configuration
个人资料配置
All personal data comes from :
$APPLIER_HOME/data/profile.jsonjson
{
"personal": {
"name": "Your Name",
"email": "you@email.com",
"phone": "123-456-7890",
"location": "City, State"
},
"links": {
"website": "https://yoursite.com",
"linkedin": "linkedin.com/in/you",
"github": "github.com/you"
},
"education": {
"school": "University Name",
"degree": "BS Computer Science",
"gpa": "3.9",
"graduation": "May 2026"
},
"headline": "Your professional headline",
"top_skills": ["Python", "React", "AWS"],
"flagship_project": {
"name": "Project Name",
"description": "Brief description",
"users": "100+"
},
"work_auth": true,
"willing_to_relocate": true,
"location_preference": ["Remote", "NYC", "SF"]
}See profile-template.json for full template.
所有个人数据来自:
$APPLIER_HOME/data/profile.jsonjson
{
"personal": {
"name": "Your Name",
"email": "you@email.com",
"phone": "123-456-7890",
"location": "City, State"
},
"links": {
"website": "https://yoursite.com",
"linkedin": "linkedin.com/in/you",
"github": "github.com/you"
},
"education": {
"school": "University Name",
"degree": "BS Computer Science",
"gpa": "3.9",
"graduation": "May 2026"
},
"headline": "Your professional headline",
"top_skills": ["Python", "React", "AWS"],
"flagship_project": {
"name": "Project Name",
"description": "Brief description",
"users": "100+"
},
"work_auth": true,
"willing_to_relocate": true,
"location_preference": ["Remote", "NYC", "SF"]
}完整模板请查看profile-template.json。
Application Tracking
申请记录追踪
$APPLIER_HOME/data/applications.jsonjson
{
"applications": [{
"id": "company-date-001",
"company": "Company Name",
"role": "Job Title",
"url": "https://...",
"platform": "linkedin|greenhouse|workday|adp",
"applied_date": "2026-01-27",
"status": "applied|interviewed|rejected|offer",
"fit_score": 7.5,
"cover_letter": true,
"outreach": [{
"name": "Recruiter Name",
"title": "Technical Recruiter",
"email": "recruiter@company.com",
"linkedin": "linkedin.com/in/...",
"email_sent": true,
"connection_sent": true,
"date": "2026-01-27"
}]
}],
"stats": {
"total": 0,
"applied": 0,
"interviewed": 0,
"emailsSent": 0,
"connectionsSent": 0
}
}$APPLIER_HOME/data/applications.jsonjson
{
"applications": [{
"id": "company-date-001",
"company": "Company Name",
"role": "Job Title",
"url": "https://...",
"platform": "linkedin|greenhouse|workday|adp",
"applied_date": "2026-01-27",
"status": "applied|interviewed|rejected|offer",
"fit_score": 7.5,
"cover_letter": true,
"outreach": [{
"name": "Recruiter Name",
"title": "Technical Recruiter",
"email": "recruiter@company.com",
"linkedin": "linkedin.com/in/...",
"email_sent": true,
"connection_sent": true,
"date": "2026-01-27"
}]
}],
"stats": {
"total": 0,
"applied": 0,
"interviewed": 0,
"emailsSent": 0,
"connectionsSent": 0
}
}Cold Email Template
冷邮件模板
Subject: Referral Request - [Role] Application | [School] [Major] Senior
Hi [First Name],
I just applied for the [Role] position at [Company] and wanted to reach out.
I'm a [Major] senior at [School] ([GPA] GPA) graduating [Graduation].
[Flagship project description with metrics].
[1-2 sentences about why THIS company excites you]
Would appreciate if you could review my application or put in a referral.
Thanks!
[Name]
[Website]
[Phone]Rules: Under 150 words. Personalize company line. Include contact info.
Subject: Referral Request - [Role] Application | [School] [Major] Senior
Hi [First Name],
I just applied for the [Role] position at [Company] and wanted to reach out.
I'm a [Major] senior at [School] ([GPA] GPA) graduating [Graduation].
[Flagship project description with metrics].
[1-2 sentences about why THIS company excites you]
Would appreciate if you could review my application or put in a referral.
Thanks!
[Name]
[Website]
[Phone]规则:字数不超过150词。个性化公司相关内容。包含联系方式。
Error Handling
错误处理
| Error | Action |
|---|---|
| Login required | Notify user, wait for "continue" |
| CAPTCHA | Notify user, wait |
| Rate limit | Wait 60s, retry once, skip if still blocked |
| Email failed | Log, continue with LinkedIn |
| Form field missing | Screenshot, ask user |
| 错误类型 | 处理方式 |
|---|---|
| 需要登录 | 通知用户,等待“继续”指令 |
| 验证码 | 通知用户,等待用户处理 |
| 速率限制 | 等待60秒,重试一次,如果仍被限制则跳过 |
| 邮件发送失败 | 记录日志,继续执行LinkedIn拓展 |
| 表单字段缺失 | 截图,询问用户 |
Reference Files
参考文件
| File | Content |
|---|---|
| WORKFLOWS.md | Detailed step-by-step workflows |
| SETUP.md | Installation & configuration |
| profile-template.json | Profile data template |
| formatting_rules.md | CRITICAL - Exact DOCX formatting specs |
| 文件 | 内容 |
|---|---|
| WORKFLOWS.md | 详细的分步工作流程 |
| SETUP.md | 安装与配置说明 |
| profile-template.json | 个人资料数据模板 |
| formatting_rules.md | 至关重要 - 精确的DOCX格式规范 |
Path Variables
路径变量
| Variable | Default | Description |
|---|---|---|
| | Base directory |
| | Per-company files |
Cross-platform: Use which expands to home directory on all OS.
~/| 变量 | 默认值 | 描述 |
|---|---|---|
| | 基础目录 |
| | 按公司分类的文件目录 |
跨平台支持:使用,在所有操作系统中都会扩展为用户主目录。
~/Best Practices
最佳实践
- Email FIRST, LinkedIn SECOND - Always send emails before connections
- AUTO-PROCEED - Don't ask, just do (except critical errors)
- Track everything - Update applications.json after every action
- Personalize - Reference specific company details in outreach
- Screenshot - Capture confirmation for records
- Be honest - Never fabricate skills or metrics
Line Count: ~280 (under 500 ✓)
Cross-Platform: Yes (uses ~/ paths) ✓
User-Agnostic: Yes (data in profile.json) ✓
- 优先邮件,其次LinkedIn - 始终先发送邮件再发送连接请求
- AUTO-PROCEED - 不要询问,直接执行(除严重错误外)
- 记录所有操作 - 每次操作后更新applications.json
- 个性化定制 - 在拓展内容中提及公司的具体细节
- 截图留存 - 截取确认页面作为记录
- 保持诚实 - 绝不编造技能或指标
行数统计:280(低于500 ✓)
跨平台支持:是(使用/路径)✓
用户无关性:是(数据存储在profile.json中)✓