Block a user
ylhp-boss-hr (1.0.23)
Published 2026-03-13 18:57:55 +08:00 by LiQiuYu
Installation
pip install --index-url --extra-index-url https://pypi.org/simple ylhp-boss-hrAbout this package
BOSSHRSDK
ylhp-boss-hr
一个面向 BOSS 直聘招聘端的 Python SDK,用于获取职位列表、候选人推荐列表、简历详情,并解密返回的加密简历内容。
当前仓库以源码方式提供,适合在内部工具、自动化脚本或数据处理流程中集成使用。
Features
- 基于
wt2Cookie 访问 BOSS 直聘招聘端接口 - 获取已沟通过职位列表
- 拉取指定职位下的候选人推荐列表
- 获取候选人简历详情
- 通过内置 Node.js 脚本解密简历正文
- 提供
pydantic数据模型,便于类型化处理接口响应
Install
Requirements
- Python 3.12+
- Node.js 18+(用于解密简历内容)
Using uv
uv sync
Using pip
由于项目采用 src 布局,建议在虚拟环境中以可编辑模式安装:
pip install -e .
如果需要运行简历解密逻辑,还需要安装 Node 侧依赖:
cd src/boss/encrypty
npm install
Quick Start
from boss import Boss
wt_token = "your_wt2_cookie"
client = Boss(wt=wt_token)
# 1. 获取职位列表
jobs = client.job_id()
first_job = jobs[0]
# 2. 获取该职位下的推荐候选人
geeks = client.geek_info(jobid=first_job.encryptJobId, page=1)
first_geek = geeks[0]
# 3. 获取候选人详情
detail = client.get_detail(first_geek)
# 4. 解密简历正文
resume_text = client.get_detail_text(detail)
print(resume_text)
# 5. 发起招呼
client.chat_start(first_geek)
Authentication
SDK 当前通过 wt2 Cookie 进行身份认证:
from boss import Boss
client = Boss(wt="your_wt2_cookie")
请自行确保该 Cookie 来源合法、有效,并且具备对应招聘端页面的访问权限。
API
Boss(wt: str)
创建 SDK 客户端。
参数:
wt: BOSS 直聘登录态中的wt2Cookie 值
job_id() -> list[JobInfoModel]
获取当前账号已沟通过的职位列表。
返回字段示例:
encryptJobIddescriptionjobIdjobNamesalaryDescaddress
geek_info(jobid, page) -> list[GeekModel]
获取指定职位的候选人推荐列表。
参数:
jobid: 职位加密 ID,通常来自JobInfoModel.encryptJobIdpage: 页码,从1开始
get_detail(geek_info) -> DetailModel
获取候选人简历详情对象。
参数:
geek_info:geek_info()返回的单个GeekModel
get_detail_text(detail) -> str
将 DetailModel.encryptGeekDetailInfo 交给内置 Node.js 脚本进行解密,返回简历纯文本内容。
参数:
detail:get_detail()返回的DetailModel
注意:
- 该方法依赖本地
node可执行程序 - 需要先安装
src/boss/encrypty/package.json中声明的依赖
chat_start(geek_info) -> None
向候选人发起沟通。
参数:
geek_info:GeekModel
说明:
- 当前实现主要通过打印输出表示结果
- 如果触发平台当日主动沟通上限,会直接返回
Data Models
项目使用 pydantic 定义了主要响应模型,位于:
src/boss/schema/job.py
核心模型包括:
JobInfoModelGeekModelGeekCardModelDetailModel
这使得你可以直接通过属性访问接口字段,而不是处理原始字典。
Project Structure
.
├── src/
│ └── boss/
│ ├── __init__.py
│ ├── base.py
│ ├── boss.py
│ ├── resume.py
│ ├── schema/
│ │ └── job.py
│ └── encrypty/
│ ├── encrypt_detail.js
│ ├── package.json
│ └── *.wasm
├── tests/
│ └── boss/
│ └── test_resume.py
├── pyproject.toml
└── README.md
Development
Run tests
当前测试更接近真实接口联调测试,而不是纯离线单元测试。测试依赖:
- 有效的
wt2Cookie - 可访问 BOSS 直聘接口的网络环境
- 已安装 Node.js 依赖
运行方式:
pytest
Limitations
- 该项目当前聚焦招聘端简历获取与沟通流程,不是完整的 BOSS 直聘 API 封装
- 请求头和接口参数中包含明显的平台耦合字段,接口变更后可能失效
get_detail_text()依赖本地 Node.js 运行环境chat_start()当前返回值不稳定,主要通过打印结果反馈状态- 仓库中的测试用例目前写法依赖真实凭证,不适合作为公共 CI 测试直接运行
Disclaimer
本项目仅用于学习和研究 SDK 封装方式。
使用者应自行确认:
- 已获得目标平台的合法访问权限
- 使用行为符合目标平台服务条款、适用法律法规和组织内部规范
- 不将本项目用于未授权的数据采集、批量骚扰或其他违规用途
License
仓库当前未声明开源许可证。
如果你计划公开分发或对外协作,建议补充明确的 LICENSE 文件。
Requirements
Requires Python: >=3.12