ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何用 career-ops 的 scan:full 反向遍历 ATS 公司目录,发现 portals.yml 之外的新职位

如何用 career-ops 的 scan:full 反向遍历 ATS 公司目录,发现 portals.yml 之外的新职位 如何用 career-ops 的 scan:full 反向遍历 ATS 公司目录发现 portals.yml 之外的新职位【免费下载链接】career-opsOpen-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)项目地址: https://gitcode.com/GitHub_Trending/ca/career-opscareer-ops 的日常扫描入口npm run scan只查你在portals.yml里手工维护的公司列表。如果某家公司从未被你加进这个列表它的职位就永远不会出现。scan:full对应 scan-ats-full.mjs把方向反过来它遍历 Greenhouse、Lever、Ashby、Workday 的公开 ATS 公司目录把其中符合你portals.yml里title_filter/location_filter的新鲜职位直接送进流水线不需要任何手工挑选公司。适合的场景是你想定期捕获跟踪列表之外、你根本不知道名字的公司的新职位。前提条件来自 docs/SCRIPTS.md 的doctor一节Node.js 18、依赖已安装以及项目所需的cv.md、config/profile.yml、portals.yml三个文件就位。先用npm run doctor验证退出码0表示检查全部通过。配置 portals.yml 的过滤条件scan:full对目录里的每一家公司应用同一个全局title_filter所以过滤条件配置得是否合理直接决定反向扫描的信噪比。templates/portals.example.yml 说明了字段含义首次使用时按注释把它复制成根目录下的portals.yml并修改title_filter.positive为你自己的目标职位关键词。过滤语义与npm run scan相同title_filter至少 1 个positive命中且negative全部不命中才算通过location_filter可选块作用于标题过滤之后、去重之前整个块缺省时所有地点都通过黑名单如果存在data/blacklist.md被列出的公司默认跳过并在运行摘要中报告不会静默丢弃。反向扫描还有一个专用字段title_filter_overrides仅scan-ats-full.mjs读取给个别公司单独放宽标题匹配面。条目按显式 slug 列表匹配例如 Workday 租户uwaterloo.wd3.myworkdayjobs.com的 slug 就是uwaterloo其positive_extra关键词是追加到全局positive之上的全局negative仍然生效不在列表里的公司完全不受影响。title_filter_overrides: - companies: [uwaterloo, ubc, fanshawec] positive_extra: - Administrator - Coordinator - Program Administrator以上为例slug 与关键词来自模板注释中的示例替换为你自己的公司和职位词。先预览再正式运行所有公司目录数据来自公开的 job-board-aggregator 数据集缓存在data/cache/中24 小时过期。没有可用发布日期的职位会被直接跳过——反向扫描只对新发布的职位有意义。先用--dry-run预览而不写任何文件确认命中的公司和你预期一致node scan-ats-full.mjs --dry-run确认无误后正式运行。默认行为是扫描全部 ATS 目录、取最近 3 天的职位npm run scan:full常用参数来自 docs/SCRIPTS.mdnode scan-ats-full.mjs --since 7 # 扩大时间窗口到最近 7 天 node scan-ats-full.mjs --ats greenhouse,workday # 只扫指定 ATS 源 node scan-ats-full.mjs --limit 200 # 每个 ATS 最多扫 200 家公司 node scan-ats-full.mjs --liveness # 命中项先用 Playwright 验证仍在招聘 node scan-ats-full.mjs --include-blacklisted # 审计黑名单公司而非跳过 node scan-ats-full.mjs --md-out notes/scans # 额外写一份带日期的 markdown 摘要其余可选标志--verbose、--json、--include-undated不再跳过无日期职位、--shuffle。验证结果判断一次运行是否成功看三处退出码0表示扫描完成1表示配置错误找不到portals.yml、传了未知的--ats源或致命扫描错误。输出落盘新命中的职位会以与scan.mjs相同的格式追加到data/pipeline.md和data/scan-history.tsv。这两个文件就是发现了新职位的直接证据重复职位由扫描历史去重不会反复出现。运行摘要黑名单命中的公司会以N skipped (blacklist)形式报告不会静默丢弃。若用了--md-out notes/scans还会额外生成一份带日期的 markdown 摘要方便留档对比每次运行发现了什么。如果某条命中的职位看起来和已有流水线里的职位高度雷同同一家职位被雇主和招聘代理各发一次运行会打印 cross-listing 警告基于 JD 文本的 64 位 SimHash 指纹相似且 90 天内出现的不同公司配对。这是只警告不丢弃确认其中一方是代理后只通过一个渠道投递避免双向重复申请。可选分支用 VC 投资组合做起点seeds/README.md 提供了另一条高信号路径不从 ATS 目录遍历而是拉取 Y Combinator / a16z 的公开投资组合公司列表逐家探测其 ATSnpm run scan:seeds # 等价于 --seeds yc,a16z npm run scan:yc # 仅 YC node scan-ats-full.mjs --seeds yc --since 7 node scan-ats-full.mjs --seeds yc --ats greenhouse,lever --since 5 # 种子 常规目录组合种子公司与目录遍历走同一套title_filter/location_filter/ 去重流程结果同样进data/pipeline.md。限制与排障DNS 限速完整扫一遍 Workday iCIMS 要解析 13,889 个不同的租户主机名文档给出这个遍历大约需要 35 分钟DNS 受限。未缓存的解析默认限速 400 次/分钟。如果你的本机解析器如 Pi-hole预算更充足可以提高上限反过来如果某个 ATS 段落批量出现fetch failed先怀疑解析器的限速而不是各公司职位板本身CAREER_OPS_DNS_LOOKUPS_PER_MIN800 npm run scan:full # 提高上限 CAREER_OPS_DNS_LOOKUPS_PER_MIN0 npm run scan:full # 关闭限速 CAREER_OPS_NO_DNS_CACHE1 npm run scan:full # 同时禁用 DNS 缓存与限速数据集是缓存的公司目录在data/cache/中缓存 24 小时同一天内多次运行看到的是同一份公司清单。--liveness需要浏览器它会用 Playwright 真实加载页面验证职位仍然有效若报错文档要求先执行npx playwright install chromium。运行结束后把data/pipeline.md里新出现的行逐条走后续的评估流程即可如果发现某家公司值得长期跟踪把它加入portals.yml之后日常npm run scan就会覆盖它。【免费下载链接】career-opsOpen-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)项目地址: https://gitcode.com/GitHub_Trending/ca/career-ops创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表