- 数据集
【免费下载链接】remote-jobs
Source for remoteintech.company — a community-maintained directory of remote-friendly tech companies
本篇文章以远程友好科技公司目录 remoteintech(仓库根目录下 src/companies/pagerduty.md)中 PagerDuty 的公司档案为解剖样本,讲解该目录中每家公司的条目结构、frontmatter 数据模型、标签体系、页面渲染管线,以及用于保证 2,000+ 外链长期有效的链接维护脚本。读完本文,你将掌握如何阅读并验证任意一家公司的档案数据,理解目录聚合与 JSON-LD 结构化输出的原理,并能安全地参与这类社区维护型公司目录的数据保鲜工作。
PagerDuty 档案速览:一条标准的远程友好公司条目
在remoteintech目录中,每家公司对应src/companies/下的一个 Markdown 文件,文件名即公司的 slug。PagerDuty 对应 pagerduty.md,其 frontmatter 完整记录了解析、分类与渲染所需的全部元数据:
| frontmatter 字段 | PagerDuty 档案中的值 | 目录中的语义 |
|---|---|---|
title | PagerDuty | 公司展示名称,作为页面 H1 与排序键 |
slug | pagerduty | URL 标识,对应文件名 |
website | https://pagerduty.com | 公司官网,用于公司页主按钮与 JSON-LD |
region | americas | 招聘区域,映射为「Americas」标签并参与按区域聚合 |
remote_policy | remote-friendly | 远程政策,映射为「Remote Friendly」标签 |
company_size | large | 规模档位,映射为「201-1000 employees」 |
technologies | javascript、sql | 技术标签,驱动「Tech Stack」区块与按技术浏览页面 |
addedAt | 2017-07-04 | 条目入库时间,用于「最近新增」排序 |
updatedAt | 2018-04-16 | 条目最近更新时间,渲染在页脚 |
值得注意的是,frontmatter 中的technologies只收录了javascript与sql两个受控词,而正文「Company technologies」一节列出的技术栈更为详尽(详见下文)。这体现了目录的设计取舍:frontmatter 使用受控词表驱动分类聚合,正文则保留自由文本供求职者深入了解。
公司正文:blurb 之外的完整画像
## Company blurb是每家公司的核心叙事段,也是生成页面 meta description 的原料(见下文「元描述自动生成」一节)。PagerDuty 的档案正文完整覆盖了以下维度,求职者与研究者可按图索骥:
- 业务定位:PagerDuty 自述为「领先的数字运维管理平台」,以 SaaS 方式服务超过 8,000 家全球客户(档案点名 Comcast、eHarmony、Slack、Lululemon),帮助企业在关键中断发生时智能响应,保障客户体验。
- 工程方法:遵循敏捷方法论,构建支持全栈事件智能(full-stack event intelligence)、响应编排(response orchestration)、持续学习与交付的软件。
- 荣誉背书:档案提到该公司曾入选 2016 年 Deloitte Technology Fast 500、Inc. 500 与 Forbes Cloud 100 榜单(注:以上均来自 2017/2018 年快照时期的档案原文,属于条目记录的历史事实)。
- 文化关键词:档案强调「risk, fail, learn」态度与 Get Stuff Done 做事风格,以及绩效理念、福利、认可文化、包容性与多样性等员工项目。
紧随其后的各节构成档案的「事实卡」:
- Company size:约 300 人(对应 frontmatter
company_size: large,即 201-1000 档)。 - Remote status:许多开放职位支持远程,档案快照时约 9% 的员工为远程办公(对应
remote_policy: remote-friendly)。 - Region:美国(对应
region: americas)。 - Company technologies:Ruby / Rails、Scala、Elixir、Ember、Backbone、Node,以及 MySQL / Percona XtraDB Cluster、Cassandra、Elasticsearch、Kafka、Zookeeper 等存储与流式组件;档案同时引导读者到 StackShare 平台查看更完整的技术栈清单。
- Office locations:旧金山、多伦多、西雅图、伦敦、悉尼五地办公室。
- How to apply:通过 PagerDuty 官方招聘页面提交申请。
元描述自动生成:blurb 如何变成 meta description
目录为每家公司自动生成 155 字符以内的 meta description,逻辑集中在 companies.11tydata.js 的eleventyComputed.description中:
- 若 frontmatter 已显式提供
description则直接使用; - 否则读取页面原始 Markdown,用正则
##\s*Company\s*blurb\s*\n+([\s\S]*?)(?=\n##|$)定位## Company blurb之后的正文段落; - 清理 Markdown 语法(去掉链接、
*、_、反引号、换行),压缩空白; - 截断到约 155 字符,并优先在句子边界(句号)处收尾,避免在句中切断。
这意味着 PagerDuty 档案的 blurb 文本质量会直接影响该页在搜索引擎中的描述摘要,社区贡献者在撰写 blurb 时应保持「首段即要点」的写法。
标签体系:单一事实来源 labels.js
PagerDuty 档案中使用的americas、remote-friendly、large、javascript、sql等取值并非自由文本,而是受控枚举。labels.js 被明确注释为「single source of truth」,同时服务于 JS 侧(通过 companyHelpers.js 重新导出)与 Nunjucks 模板侧(通过全局数据labels.*):
region:worldwide、americas、europe、americas-europe、asia-pacific、other;remotePolicy:fully-remote、remote-first、hybrid、remote-friendly;companySize:tiny(1-10)、small(11-50)、medium(51-200)、large(201-1000)、enterprise(1000+);tech:javascript、typescript、react、nodejs、python、ruby、go、java、php、rust、elixir、scala、sql、postgres、nosql等。
新增公司或扩充技术词表时,都应先确认取值是否已存在于该文件中,保证标签聚合的一致性。
渲染管线:从 Markdown 到结构化公司页
每家公司的 Markdown 通过 companies.json 指定layout: company,由 company.njk 模板渲染为完整页面:
- 头部区:渲染标题、
Apply Now/Visit Website主按钮(优先取careers_url,否则取website)、区域标签(链接到/browse/{region}/)与远程政策标签(链接到/browse/{remote_policy}/)。 - 内容区:将 Markdown 正文安全输出,并额外渲染
Tech Stack区块——PagerDuty 档案因此会展示JavaScript与SQL两个可点击的技术标签,分别链接到/browse/javascript/与/browse/sql/聚合页。 - 页脚区:展示
Last updated: {{ updatedAt | formatDate('MMMM D, YYYY') }},即按2018-04-16格式化为可读日期。
同时,模板的 frontmatter 声明schema: Organization,由 Organization.njk 输出 JSON-LD 结构化数据(Organization类型,含name、url,若存在careers_url则写入sameAs),让公司页可被搜索引擎与 LLM 更准确地解析。
目录聚合:集合层如何组织公司
collections.js 定义了公司数据的多种消费视角,PagerDuty 条目会同时出现在这些聚合中:
getAllCompanies:按标题字母序排列的完整公司列表(约 800+ 家,来源 glob./src/companies/**/*.md,见 collections.js);getCompaniesByRegion:按region字段分桶——PagerDuty 落在americas桶;getCompaniesByTech:按technologies数组分桶——PagerDuty 同时出现在javascript与sql桶;getRecentCompanies:按addedAt倒序取最近 12 家,PagerDuty 的2017-07-04入库时间决定了它在「最近新增」中的历史位置;getFeaturedCompanies:从精选 slug 列表(automattic、stripe、github、linear等,见 companyHelpers.js)中随机洗牌取 8 家——PagerDuty 不在当前精选名单内。
getCompanyTags则把「技术 / 区域 / 远程政策」三类标签聚合成浏览页数据源,company_size主要用于展示标注而非聚合。
数据保鲜:链接维护脚本如何守护 2,000+ 外链
远程公司目录最大的数据风险是链接失效(link rot)。仓库在 scripts/README.md 中提供了两条配套脚本,运行于仓库根目录:
- 扫描:check-links.sh 爬取
src/companies/*.md(frontmatter 与正文)中的全部外链,用xargs或 GNUparallel并发 20 个curl请求(15 秒连接超时),把 HTTP 状态、重定向后最终 URL 与说明写入link-check-results.csv。支持--quick(只复查上次非 OK 的 URL)与--refresh(先重新提取 URL)两种模式,全量扫描约 2,200 个 URL 需约 8 分钟。 - 分类与修复:fix-links.mjs 读取扫描结果并按表分类决策:
| 分类 | 含义 | 是否自动修复 |
|---|---|---|
OK | URL 正常、无重定向 | 否(无需处理) |
HTTPS_UPGRADE | 同主机同路径 http→https | 是 |
COSMETIC | 仅尾部斜杠 / www /:443差异 | 否(现状可用) |
CAREERS_DEAD | 招聘页跳回首页、登录页或报错 | 是(移除该字段) |
SAFE_REDIRECT | 同注册域、有意义的路径迁移 | 是(更新 frontmatter) |
REBRAND | 注册域变更(收购/改名?) | 否(人工复核) |
NOT_FOUND | 404 | 否(人工复核) |
PARKED | 最终落在停放服务商页面 | 是(删除条目) |
DEAD_DNS | 域名完全不解析 | 是(删除条目) |
THROTTLED | 403 / 429 / 999 / 连接失败(疑似反爬) | 否(先复核) |
UNKNOWN | 其他情况 | 否 |
标准工作流为./scripts/check-links.sh --refresh后执行node scripts/fix-links.mjs --reverify --apply,其中--reverify会用浏览器 UA 与 DNS 复查被限流的行,把误报率降低约 15%;--apply只重写与 frontmatter 精确匹配的正文 URL,避免正文与 frontmatter 失同步,且不会锁定扫描地区的语言重定向(如/→/en-gb/)、utm_*/gclid等追踪参数。变更结果写入link-fix-applied.log,其余需人工判断的行留待link-fix-plan.md复核。PagerDuty 档案中的官网与招聘链接正是这套管线持续守护的对象。
总结:如何阅读与复用一份公司档案
以 PagerDuty 档案为模板,可以总结出阅读 remoteintech 任意公司条目的四步法:
- 看 frontmatter:核对
region、remote_policy、company_size、technologies四个受控字段是否与 labels.js 词表一致,这将决定条目在按区域、按远程政策、按技术浏览页中的归属; - 读 blurb:首段既是页面叙事也是 meta description 的来源,注意其时效性(PagerDuty 档案的
updatedAt为 2018-04-16,正文数据属于该时点的快照); - 对照渲染与聚合:在 company.njk 中确认标签与按钮如何生成,在 collections.js 中确认条目出现在哪些集合;
- 信任维护管线:外链的有效性由 check-links.sh 与 fix-links.mjs 的定期巡检保证,任何社区贡献者都可按 scripts/README.md 的流程发起链接修复。
- 数据集
【免费下载链接】remote-jobs
Source for remoteintech.company — a community-maintained directory of remote-friendly tech companies
相关推荐
从 Aula 教育档案看 remoteintech 公司目录:远程优先公司的数据建模与维护实战
从 Aula 教育档案看 remoteintech 公司目录:远程优先公司的数据建模与维护实战 导读 本文以开源社区维护的远程友好科技公司目录 remotein
数据集remoteintech.company 收录案例解析:从 Edgar 公司档案看远程友好技术公司目录的数据模型
remoteintech.company 收录案例解析:从 Edgar 公司档案看远程友好技术公司目录的数据模型 导读 本篇文章以开源仓库 remoteinte
数据集远程友好科技公司档案解读:Cueup 与 remoteintech 目录的数据建模实践
远程友好科技公司档案解读:Cueup 与 remoteintech 目录的数据建模实践 本文围绕 src/companies/cueup.md https://
数据集
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考