HackerNews职位抓取器
一个基于Python的职位抓取器,从HackerNews的“Who's Hiring”线程中提取职位发布,并通过MCP(模型上下文协议)服务器将其公开,以便与Claude Desktop集成。
特性
- HackerNews爬虫:从HN线程中提取招聘信息并将其转换为结构化JSON
- MCP服务器:通过Claude Desktop的模型上下文协议公开抓取的数据
- 缓存:基于文件的缓存系统,避免重复请求
- 搜索:按关键字搜索招聘信息
- 作业详细信息:获取具体职位发布的完整详细信息
快速开始
1.设置环境
# Create and activate virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt2.测试刮板
# Run the scraper directly
python scraper.py这将抓取默认的HackerNews线程,并显示找到了多少职位发布。
3.配置克劳德桌面
将以下内容添加到您的Claude Desktop设置中(通常在 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"hn-job-scraper": {
"command": "python3",
"args": ["/path/to/your/project/mcp_server.py"],
"env": {
"PYTHONPATH": "/path/to/your/project"
}
}
}
}重要:替换 /path/to/your/project 带有此项目目录的实际路径。
4.开始使用Claude Desktop
配置后,您可以在Claude Desktop中使用这些工具:
- 搜索职位:
search_jobs-按关键字搜索招聘信息(例如,“python”、“remote”、“senior”) - 获取作业详细信息:
get_job_details-获取特定职位发布的完整详细信息 - 刷新作业:
refresh_jobs-清除缓存并获取新的作业数据
使用示例
命令行用法
# Activate virtual environment
source venv/bin/activate
# Run scraper
python scraper.py
# Start MCP server (usually called by Claude Desktop)
python mcp_server.pyClaude桌面集成
配置后,您可以询问Claude Desktop:
- “在最新的HackerNews招聘帖子中搜索Python工作”
- “寻找远程工作机会”
- “显示高级开发人员职位”
- “获取职位发布ID 12345的详细信息”
项目结构
hackernews-jobscraper/
├── scraper.py # Core scraping functionality
├── mcp_server.py # MCP server implementation
├── requirements.txt # Python dependencies
├── claude_desktop_config.json # Example Claude Desktop config
├── cache/ # Cached job data (created automatically)
└── README.md # This file运作原理
- 抓取:scraper从HackerNews的“谁在招聘”帖子中获取招聘信息
- 缓存:结果在本地缓存以避免重复请求(1小时缓存)
- MCP服务器:通过模型上下文协议公开数据
- 克劳德集成:Claude Desktop可以搜索和分析招聘信息
配置
默认HackerNews线程
刮刀默认为线程ID 44434574。您可以通过修改 scrape_job_postings() 打电话 scraper.py.
缓存设置
缓存文件存储在 cache/ 目录,1小时后过期。这可以在 HackerNewsScraper 类。
故障排除
克劳德桌面找不到服务器
- 确保路径
claude_desktop_config.json是绝对路径 - 确保虚拟环境已激活
- 检查是否安装了所有依赖项
- 配置更改后重新启动Claude Desktop
未找到职位发布
- 检查您的互联网连接
- 验证HackerNews线程ID是否有效
- 尝试使用刷新作业数据
refresh_jobs工具
发展
运行测试
# Test scraper functionality
python scraper.py
# Test MCP server (requires Claude Desktop or MCP client)
python mcp_server.py添加新功能
该项目设计为可扩展的。你可以:
- 添加新的抓取源
- 实施其他搜索筛选器
- 增强职位发布元数据
- 添加数据导出功能
