job-hunter
Automated job search, JD parsing, resume customization, and application tracking pipeline. Use when: user wants to find jobs, set up automated job searches, parse job descriptions, customize/tailor resumes for specific roles, track job applications, or get job hunt updates via WhatsApp/messaging. Supports free job APIs (LinkedIn guest, Jobicy, RemoteOK, Remotive, Adzuna, JSearch/RapidAPI). Triggers on: find jobs, job search, customize resume, tailor resume for [company], track applications, job hunt, apply to [company], show jobs, job status, set up job alerts.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/danielvivek2006/job-hunter-whatsappJob Hunter
Automated job search pipeline with JD parsing, resume tailoring, and application tracking.
Setup
1. Initialize Project
Create the project structure in the workspace:
job-hunter/
├── config.json # User profile, target roles, API config
├── api_keys.json # API credentials (gitignored)
├── resumes/
│ ├── base_resume.md # User's master resume (text)
│ └── [company]_[role].md # Customized per job
├── jobs/
│ └── tracked_jobs.json # All discovered jobs + status
2. Gather User Profile
Ask the user for (store in config.json):
- Current role, company, years of experience
- Core skills and technologies
- Target roles (e.g., "Senior iOS Engineer", "Staff Engineer")
- Location priority tiers (e.g., Remote then City A then City B then Other)
- Salary preference: disclose or private
- Resume file (extract text from PDF if needed, save as
resumes/base_resume.md)
3. Configure APIs
See references/apis.md for full API documentation.
Free, no auth required:
- LinkedIn guest API (best for local/country-specific jobs)
- Jobicy (remote jobs)
- RemoteOK (remote tech jobs)
- Remotive (remote dev jobs)
Free, API key required (ask user to register):
- Adzuna (country-specific, https://developer.adzuna.com)
- JSearch/RapidAPI (aggregates Indeed/Glassdoor, https://rapidapi.com — search "JSearch")
Store keys in api_keys.json with rate limits:
{
"adzuna": { "app_id": "...", "app_key": "...", "daily_budget": 4 },
"rapidapi": { "key": "...", "daily_budget": 2 }
}
Core Workflows
Job Finding
- Query all configured APIs (see references/apis.md)
- For each result, check against
tracked_jobs.json— skip duplicates (match by URL or title+company) - Read the actual JD for each new job — extract real data only:
- Required skills/technologies (from JD text, not assumed)
- Years of experience required (from JD text)
- Salary (only if posted in listing)
- Location and remote policy
- Calculate match score (0-100) by comparing user's actual skills against JD requirements
- Assign location tier based on user's priority config
- Add to
tracked_jobs.json
Critical rule: Never hallucinate or assume JD data. If the JD can't be fetched, mark fields as "not fetched" and note it.
Salary estimates: Only use JSearch estimated-salary API endpoint. Label clearly as "market estimate" vs "posted salary".
JD Parsing
Extract from actual job posting text:
- title, company, location
- required_skills[] (from JD)
- experience_years (from JD)
- salary (only if stated)
- tech_stack[] (from JD)
- nice_to_have[] (from JD)
- apply_url
Resume Customization
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-danielvivek2006-job-hunter-whatsapp": {
"enabled": true,
"auto_update": true
}
}
}