Job Hunter
/install job-hunter-bot
Job Hunter - Automated Job Search System
Build a complete job hunting system: LinkedIn scraper, match scorer, and Telegram bot with inline buttons.
What This System Does
- Scrapes real jobs from LinkedIn (public guest API, no login needed)
- Scores each job 0-100% based on candidate profile (title, skills, experience, location)
- Sends matching jobs to Telegram with action buttons (details, apply, remove)
- Provides a clean foundation you can extend with CV generation later if needed
Setup Flow
1. Gather Candidate Profile
Ask the user for:
- Target roles (e.g. data analyst, BI developer, frontend developer)
- Core skills (e.g. SQL, Python, React, Power BI)
- Bonus skills (nice-to-have)
- Max years of experience they qualify for
- Preferred location and metro area cities
- Contact info (name, email, phone, LinkedIn URL)
- Work experience (companies, roles, dates, bullet points)
- Education (degree, institution, year)
2. Create Telegram Bot
Guide the user:
- Open Telegram, search for @BotFather
- Send
/newbot, choose a name and username - Copy the bot token
- Get their Telegram user ID (send a message to @userinfobot)
- Optionally add more authorized users (e.g. the job seeker)
3. Deploy the System
Create a project directory and deploy these scripts (from scripts/):
job-hunter/
├── config.json # Bot token, user IDs, candidate profile
├── jobs.db # SQLite database (auto-created)
├── scorer.py # Match scoring engine
├── linkedin_scraper.py # LinkedIn job scraper
├── bot.py # Telegram bot with inline buttons
└── notify_new_jobs.py # Send new matches to Telegram
config.json Structure
{
"telegram_bot_token": "TOKEN_FROM_BOTFATHER",
"telegram_user_id": 123456789,
"authorized_users": [123456789],
"notify_users": [123456789],
"candidate": {
"name": "Full Name",
"email": "[email protected]",
"phone": "054-1234567",
"linkedin": "linkedin.com/in/username",
"location": "Tel Aviv, Israel",
"target_titles": ["data analyst", "bi developer"],
"good_titles": ["business analyst"],
"core_skills": ["sql", "python", "power bi"],
"bonus_skills": ["etl", "dax", "pandas"],
"max_years": 2,
"preferred_locations": ["tel aviv", "herzliya", "ramat gan"],
"metro_locations": ["petah tikva", "rishon lezion"]
}
}
4. Customize Scripts
After copying scripts from scripts/, customize:
scorer.py- Update PROFILE dict with candidate's profile from config.jsonlinkedin_scraper.py- Update DEFAULT_QUERIES with relevant search termsbot.py- Should work with just config.json changesnotify_new_jobs.py- Verify notification flow and recipients
5. Install Dependencies
Install Python dependencies required by the included scripts. At minimum, verify the libraries imported by the scraper and bot are available in your environment.
6. Initialize Database
The database auto-creates on first run. Schema:
CREATE TABLE jobs (
job_id TEXT PRIMARY KEY,
title TEXT, company TEXT, location TEXT,
url TEXT, career_url TEXT,
description TEXT, requirements TEXT,
required_years INTEGER,
published_date TEXT, found_date TEXT,
status TEXT DEFAULT 'new'
);
7. Start the Bot
nohup python3 -u bot.py > bot.log 2>&1 &
8. Set Up Daily Search (Cron)
# Run daily job search + notify at 9 AM
0 9 * * * cd /path/to/job-hunter && python3 linkedin_scraper.py && python3 notify_new_jobs.py
Or use OpenClaw cron:
openclaw cron add --name daily-job-search --schedule "0 9 * * *" --prompt "Run job search and notify"
Bot Commands
| Command | What it does |
|---|---|
/top |
Show top jobs (score >= 60%) |
/jobs |
List all jobs with scores |
/search |
Trigger new LinkedIn search |
/stats |
Show statistics |
/applied |
Show applied jobs |
/help |
Show commands |
Scoring Weights
| Factor | Points | Logic |
|---|---|---|
| Title match | 0-30 | Perfect match = 30, partial = 15 |
| Skills match | 0-30 | Core skills = 5 each (max 20), bonus = 2 each (max 10) |
| Experience | 0-40 | 0yr = 40, 1yr = 30, 2yr = 10, 3+ = -20 |
| Location | 0-25 | Preferred = 25, metro = 15, country = 5 |
| Junior keywords | 0-10 | Entry-level indicators |
Thresholds: 🟢 >= 70% apply | 🟡 >= 50% review | 🔴 \x3C 50% skip
Troubleshooting
- Bot not responding: Check only ONE instance is running (
ps aux | grep bot.py) - 409 Conflict: Multiple bot instances. Kill all, restart one.
- No jobs found: Check search queries match real LinkedIn job titles
- Scoring too high/low: Adjust weights in scorer.py
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install job-hunter-bot - 安装完成后,直接呼叫该 Skill 的名称或使用
/job-hunter-bot触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Job Hunter 是什么?
Build and deploy an automated job hunting system with Telegram bot. Scrapes LinkedIn jobs, scores them by match percentage, sends notifications with apply bu... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 92 次。
如何安装 Job Hunter?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install job-hunter-bot」即可一键安装,无需额外配置。
Job Hunter 是免费的吗?
是的,Job Hunter 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Job Hunter 支持哪些平台?
Job Hunter 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Job Hunter?
由 barleviatias(@barleviatias)开发并维护,当前版本 v0.1.0。