关于 linkedin-job-scraper
linkedin-job-scraper 是一项通过 JobSpy 的 Python 封装脚本查找 LinkedIn 职位的技能,支持多种筛选条件,并将结果保存为 CSV,同时输出摘要表格。
主要功能
- 01按职位或关键词搜索
- 02按地点和发布时间筛选
- 03按公司和工作类型筛选
- 04获取完整职位描述
- 05将结果导出为 CSV
适用场景
- 01查找近期工程岗位
- 02跟踪某公司的招聘职位
- 03搜索远程合同岗位
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gooseworks-ai/ goose-skills --skill linkedin-job-scraper安装后在 Claude Code 中输入/linkedin-job-scraper确认已加载。
附带文件scripts/jobspy_scraper.pyskill.meta.json
详细介绍
LinkedIn Scraper
概述
此技能通过运行 tools/jobspy_scraper.py 查找 LinkedIn 职位信息。该脚本是 JobSpy 库的轻量封装,负责处理安装、参数构造、执行和结果解读。
快速开始
安装一次依赖(需要 Python 3.10+):
python3.12 -m pip install -U python-jobspy --break-system-packages
运行抓取工具:
python3.12 tools/jobspy_scraper.py \
--search "software engineer" \
--location "San Francisco, CA" \
--results 25 \
--output .tmp/jobs.csv
结果会保存为 CSV 文件,并以汇总表的形式打印出来。
工作流
步骤 1 — 理解请求
从用户的消息中确定:
- 搜索词 — 职位名称、角色或关键词(必填)
- 地点 — 城市、州或“Remote”(可选,但建议填写)
- 所需结果数 — 如果未指定,默认为 25
- 发布时间 — 如果用户想查看近期发布的职位,则使用
hours_old筛选条件(例如“最近 48 小时”) - 公司筛选条件 — 如果要查找特定公司,则使用
linkedin_company_ids - 完整描述 — 如果用户需要职位描述文本,则设置
--fetch-descriptions
如果有任何内容不明确(例如“查找 AI 职位”),请选择合理的默认值,并告知用户你使用了哪些设置。
步骤 2 — 构造命令
使用下方的参数构造 tools/jobspy_scraper.py 命令。
始终将输出保存到 .tmp/,这样文件可随时删除,也便于查找。
python tools/jobspy_scraper.py \
--search "<term>" \
--location "<location>" \
--results <N> \
[--hours-old <N>] \
[--fetch-descriptions] \
[--company-ids <id1,id2>] \
[--job-type fulltime|parttime|contract|internship] \
[--remote] \
--output .tmp/<descriptive_filename>.csv
注意: --hours-old 和 --easy-apply 不能同时使用(LinkedIn API 的限制)。
步骤 3 — 运行脚本
执行命令。脚本会打印进度消息和找到的结果汇总。
如果未找到 tools/jobspy_scraper.py,请检查是否需要通过读取 skills/linkedin-job-scraper/scripts/jobspy_scraper.py 并将其复制到 tools/ 来创建该文件。
步骤 4 — 解读并呈现结果
运行结束后:
- 报告找到的职位数量
- 显示一个简要表格:职位名称 | 公司 | 地点 | 薪资 | 发布时间
- 注明输出文件路径,方便用户打开
- 如果结果为 0 条:建议扩大搜索词范围或移除地点筛选条件
参数参考
| 标志 | 描述 | 默认值 |
|---|---|---|
--search | 职位名称 / 关键词 | 必填 |
--location | 城市、州或国家 | 无 |
--results | 要获取的结果数量 | 25 |
--hours-old | 仅获取 N 小时内发布的职位 | 无 |
--fetch-descriptions | 获取完整职位描述(速度较慢) | false |
--company-ids | 以逗号分隔的 LinkedIn 公司 ID | 无 |
--job-type | fulltime、parttime、contract、internship | 任意 |
--remote | 仅筛选远程职位 | false |
--output | CSV 输出路径 | .tmp/jobs.csv |
输出列
CSV 输出包含:
| 列 | 描述 |
|---|---|
TITLE | 职位名称 |
COMPANY | 雇主名称 |
LOCATION | 城市 / 州 / 国家 |
IS_REMOTE | True/False |
JOB_TYPE | fulltime、contract 等 |
DATE_POSTED | 职位发布的时间 |
MIN_AMOUNT | 最低薪资 |
MAX_AMOUNT | 最高薪资 |
CURRENCY | 货币代码 |
JOB_URL | LinkedIn 职位信息的直接链接 |
DESCRIPTION | 完整职位描述(如果使用了 --fetch-descriptions) |
JOB_LEVEL | 职级(LinkedIn 专用) |
COMPANY_INDUSTRY | 行业分类 |
常见用例
查找初创公司的近期工程职位:
python tools/jobspy_scraper.py --search "growth engineer" --location "New York" \
--results 50 --hours-old 72 --output .tmp/growth_eng_nyc.csv
查看特定公司正在招聘哪些职位:
# First find the LinkedIn company ID from the company's LinkedIn URL
python tools/jobspy_scraper.py --search "engineer" --company-ids 1234567 \
--results 100 --fetch-descriptions --output .tmp/company_hiring.csv
查找远程合同职位:
python tools/jobspy_scraper.py --search "data analyst" --remote \
--job-type contract --results 30 --output .tmp/remote_contracts.csv
错误处理
| 错误 | 解决方法 |
|---|---|
ModuleNotFoundError: jobspy | 运行 pip install -U python-jobspy |
| 返回 0 条结果 | 扩大搜索词范围、移除地点筛选条件或增加 --results |
| 请求频率受限 / 被屏蔽 | 等待几分钟;避免连续运行大型抓取任务 |
hours_old and easy_apply cannot both be set | 移除其中一个标志 |
脚本位置
抓取脚本位于 tools/jobspy_scraper.py。
如果该文件不存在,请将 skills/linkedin-scraper/scripts/jobspy_scraper.py 复制到 tools/:
cp skills/linkedin-job-scraper/scripts/jobspy_scraper.py tools/