mcpField
L
linkedin-job-scraper

linkedin-job-scraper

github.com/gooseworks-ai生产力1.3k102 次安装3 天前更新
代码仓库

关于 linkedin-job-scraper

linkedin-job-scraper 是一项通过 JobSpy 的 Python 封装脚本查找 LinkedIn 职位的技能,支持多种筛选条件,并将结果保存为 CSV,同时输出摘要表格。

主要功能

  1. 01按职位或关键词搜索
  2. 02按地点和发布时间筛选
  3. 03按公司和工作类型筛选
  4. 04获取完整职位描述
  5. 05将结果导出为 CSV

适用场景

  1. 01查找近期工程岗位
  2. 02跟踪某公司的招聘职位
  3. 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-typefulltime、parttime、contract、internship任意
--remote仅筛选远程职位false
--outputCSV 输出路径.tmp/jobs.csv

输出列

CSV 输出包含:

列描述
TITLE职位名称
COMPANY雇主名称
LOCATION城市 / 州 / 国家
IS_REMOTETrue/False
JOB_TYPEfulltime、contract 等
DATE_POSTED职位发布的时间
MIN_AMOUNT最低薪资
MAX_AMOUNT最高薪资
CURRENCY货币代码
JOB_URLLinkedIn 职位信息的直接链接
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/

评论

支持 Markdown