name: job-batch description: Process a batch of job applications - discover roles, prepare materials, pre-fill forms. Use when ready to apply to multiple positions.
Job Application Batch Processor
Slash command: /job-batch
Purpose
Process a batch of job applications using the relationship-focused methodology. This is NOT mass-applying - each role gets proper research.
CRITICAL: This is Phase 6
Per the /apply skill methodology, formal applications are the LAST step, not the first.
For each role in the batch, we do:
- Company intel (challenges, pain points, recent news)
- People mapping (hiring manager + champions)
- Email pattern detection
- Outreach draft (user sends)
- THEN formal application (user submits)
Batch processing doesn't skip steps - it parallelizes them.
Workflow
Phase 1: Discovery
- Search for roles matching CLAUDE.md criteria
- Verify each role is still open via Playwright
- Check
applications/history.jsonfor duplicates - Create batch of 10 candidates
Phase 2: User Selection
- Present batch with compensation, location, fit assessment
- User selects which to proceed with (typically 3-5, not all 10)
- Create folders in
applications/pending/{company}_{role}_{date}/
Phase 3: Company Intel (NEW - REQUIRED)
For each selected role:
- Research recent news, funding, product launches
- Identify challenges and pain points
- Find engineering blog, tech stack info
- Document in
notes.md:- 3-5 bullets on what they care about RIGHT NOW
- Why this role exists (growth? backfill? new initiative?)
Phase 4: People Mapping (NEW - REQUIRED)
For each selected role:
- Hiring Manager: Who owns this headcount? LinkedIn search
- Champions: 2-3 employees with aligned interests (publications, talks, GitHub)
- Mutual Connections: Does user know anyone who knows them?
- Document in
notes.md:- Names, titles, backgrounds, LinkedIn URLs
- Email patterns (use
email_finder.py)
Phase 5: Outreach Drafts (NEW - REQUIRED)
For each selected role, draft in outreach_draft.md:
- Informational email to a champion (if genuine interest exists)
- Or hiring manager email (after application)
- Follow
/applyskill templates - specific, about THEM, easy yes/no
User sends these - Claude NEVER sends.
Phase 6: Materials Preparation
- Navigate to each job posting via Playwright
- Extract full job description to
notes.md - Generate cover letter following
/anti-ai-writingguidelines - Fill any application-specific questions in
responses.md
Phase 7: Form Pre-fill
- Open each application in separate Playwright tab
- Fill standard fields:
- Name, email, phone, location
- LinkedIn, GitHub URLs
- Resume upload (CV PDF)
- Cover letter (paste or upload)
- Leave tabs open for user review
- DO NOT submit - wait for user
Phase 8: Report
Generate summary with:
- Tab index for each application
- Company, role, compensation
- Hiring manager identified: Yes/No
- Outreach draft ready: Yes/No
- Cover letter preview
- Any fields that couldn't be auto-filled
Output Per Role
Each applications/pending/{company}_{role}_{date}/ folder contains:
├── notes.md # JD + company intel + people mapping
├── cover_letter.md # Generated cover letter
├── outreach_draft.md # Email to champion or hiring manager
└── responses.md # Application-specific questions (if any)
The Test
Before proceeding with any role, ask:
"Could I email someone at this company even if they had no job openings?"
If the answer is "no" - the research isn't done yet.
Job Board Handling
Greenhouse (AI2, many others)
- Standard form structure
- Resume upload, cover letter text area
- May have custom questions
Ashby (Genesis, Insitro)
- Clean modern forms
- Often has "How did you hear about us?"
- Resume upload supported
Workday (Flatiron/Simons, PacBio)
- Complex multi-step forms
- May require account creation
- Often has duplicate entry issues
Lever
- Simple single-page forms
- Resume + cover letter + optional fields
Interfolio (Academic)
- Academic-specific
- May require separate documents (CV, research statement)
Standard Field Values
Read from user's .claude/CLAUDE.md and profile.json:
- Name, email, phone, location
- LinkedIn, GitHub URLs
- Resume path (typically
documents/*.pdf)
Users must configure these files before using batch processing. See GETTING_STARTED.md.
Anti-AI Writing Checklist
Before finalizing any cover letter, verify:
- No "delve," "tapestry," "multifaceted," "pivotal"
- Em dashes < 2
- Contains at least one contraction
- Varied paragraph lengths
- Specific technical details
- No generic company praise
See: /anti-ai-writing skill
Final Report Format
## Applications Ready for Review
| Tab | Company | Role | Comp | HM Found | Outreach Ready |
|-----|---------|------|------|----------|----------------|
| 1 | Flatiron | Sr SWE Lead | $190-235K | ✓ | ✓ |
| 2 | Genesis | ML Scientist | Competitive | ✓ | ✓ |
...
### Tab 1: Flatiron Institute
- URL: [link]
- Hiring Manager: [Name, Title]
- Champion for outreach: [Name] - [why interesting]
- Cover letter preview: [first 200 chars]
- Outreach email preview: [first 100 chars]
- Unfilled fields: None
[etc for each tab]
### Next Steps
1. Review outreach drafts - send if genuine interest
2. Review each application tab
3. Edit any fields as needed
4. Submit when ready
5. Follow up per `/apply` timing guidelines