873 contributions since Nov 2024 — mostly commits and PRs to career-ops, Plot-Ark, and Hive (see below for what each one is)
Icy (冰糖) — odd-eyed white cat, 3 years old · Xueli (雪梨) — calico, 1.5 years old
Instructional designer. I build AI pipelines instead of slide decks.
I think SCORM-era tooling measures completion, not learning — so I build my own instruments for tracking how people actually learn.
Currently shipping:
- 🎯 Plot-Ark — xAPI behavioral analytics + A2A multi-agent pipeline for instructional designers
- 🧠 Cogito — cognitive self-modeling from git history + note embeddings. Same methodology as xAPI, personal scale. Surfaces patterns you weren't aware of.
- 🔌 The first community plugins in the career-ops registry — a five-plugin suite, all zero-key and local-first: google-calendar (interviews from your calendar), linkedin-alerts (job URLs from Gmail alerts), outlook-interviews (invite detection via MS Graph), tavily (search/liveness), obsidian (tracker → Dataview frontmatter notes, zero network). "You're helping seed the ecosystem" — the maintainer.
- ⚔️ Core Contributor @ career-ops (60K+ ★) — one of three named Core Contributors, first use → core in under 3 months. 66 merged PRs, including the SQLite storage-layer RFC (#918 → #919), the conflict-free per-plugin registry architecture (#1402), and ten shipped members of the jurisdiction-compliance-lens series (#2014/#2020/#2021/#2027/#2029/#2031/#2034/#2038/#2041/#2042) — full list below. Now leading the storage-layer track and taking triage rounds.
- 🛡️ ClearCover — local-first, plain-language insurance policy reader. Upload a policy, get clause-by-clause explanations side by side with the original text, in the document's own language (中/EN). Translation only, never advice. Docker (React + Node.js + Python), agent-callable CLI, AGPL-3.0. v0.1.0 shipped same night it was designed.
- 📐 Open RFC — Shared Behavioral-Signal Layer: a company-attributable, candidate-anonymous schema for pooling interview-process signal across candidates (follow-up to Discussion #904; adopted into the project's shared-layer direction)
- 🤝 Contributor @ Hive (YC-backed) — SDR Agent merged in v0.7.3, more PRs in review
all 66 merged career-ops PRs
- #746 — reverse-ATS job discovery (
scan-ats-full.mjs) - #919 — SQLite derived index over
applications.md(RFC #918 phase 1) - #961 — transcript-driven targeting correction
- #1230 — zero-LLM STAR story matcher from
story-bank.md - #1233 — post-interview company red-flag detector from transcript signal
- #1248 — ATS auto-fill for Greenhouse / Ashby / Lever (prepare, don't submit)
- #1259 — match-star fixtures + keyword-scorer assertions
- #1347 — google-calendar plugin v0.1.0
- #1348 — tavily plugin v0.1.0
- #1399 — obsidian plugin v0.1.0
- #1402 — per-plugin registry files: conflict-free community registry PRs
- #1405 — ATS channel yield analysis (algorithmic-monoculture aware)
- #1467 — recruiting-process friction signal
- #1497 — fuzzy-match interview-invite emails to tracker entries
- #1502 — structured Panel Intel table for named panelists in panel-mixed rounds
- #1503 —
toBashPath()cygpath-before-wslpath fix (WSL/Cygwin) - #1525 — merge-tracker req/job-number guard on tier-3 fuzzy dedup
- #1557 — candidate contact-channel preference field for outreach/email drafts
- #1559 — JD skill-gap checker: classify JD-required skills before CV generation, zero-LLM
- #1631 — employee-vs-contractor classification warning signal
- #1635 — reject unrecognized CLI flags instead of silently ignoring them
- #1638 — scope
content_filterper title-category viaby_title_keyword - #1647 —
--allow-reorderflag for intentional CV section reordering - #1685 — flag JDs where AI/transformation buzzwords don't match company infrastructure
- #1687 — skills-assessment event log with candidate-observed staleness signal (
assessment-log.mjs) - #1705 — detect and prevent duplicate tracker # numbers (data-integrity hardening)
- #1731 — convert a screenshot into a PDF for ATS uploads (
img-to-pdf.mjs) - #1738 — unified Risk Summary block joining the five company-risk signals
- #1745 — ATS-broken fallback email — recover a stuck application when the pipeline machinery jams
- #1748 — user-owned company blacklist respected by scan and evaluation
- #1772 — normalize CRLF at read time for doc assertions in
test-all.mjs - #1800 — recognize "—" as a valid score-cell sentinel
- #1803 —
paste-reply.mjs: manual/no-Gmail input path into the reply-watch classification pipeline - #1817 — interview-prep URL entry path for a role that was never evaluated
- #1847 — add
scan-ats-full.mjsto AGENTS.md Main Files table - #1848 — wire
content_filter(incl.by_title_keywordscoping) into reverse ATS scans - #1853 — track compensation stated per interview round (
salary-gap.mjs) - #1856 — interview-redflag → suggest a blacklist entry at the Reconsider tier
- #1858 — wire Panel Intel table into interview/plan when later-round panelists are named
- #1860 — confirmed-time no-show follow-up email scenario
- #1872 — surface post-submission resume verification for SuccessFactors-family ATS
- #1921 — warn candidate to check employer ATS profile before reapplying to a repeat company
- #1936 — Block G signal: benefits/employment terminology country mismatch
- #1938 — Block G signal: third-party platform location tag mismatch
- #1941 — cross-reference coffee chat notes against interview transcripts
- #1943 — flag scope/compensation mismatch when interview probes off-JD skills at entry-level pay
- #1703 —
fix-slugs.mjs: auto-write ATS slug corrections back toportals.yml - #2014 — rejection-latency signal: statutory/courtesy post-interview response-time thresholds (suggestion-only)
- #2020 — Block G signal: jurisdiction-prohibited posting content
- #2021 — pay-transparency disclosure signal: jurisdiction range-width cap + missing-range corroborating signal
- #2027 — minimum-wage floor check: jurisdiction table + date-aware wage-floor signal
- #2029 — offer-prep jurisdiction-aware restrictive-covenant notes + lawyer questions
- #2031 — interview-redflag: protected-grounds question detection from a jurisdiction table
- #2034 — Block G signal: immigration-status requirement overreach
- #2038 —
check-table-freshness.mjs: staleness validator for jurisdiction-keyed tables - #2041 — agency/recruiter licensing check — jurisdiction table + registry pointer
- #2042 — offer-prep sub-statutory terms check: jurisdiction floors table + statutory-context notes + lawyer questions
- #2095 — reverse-ATS country-eligibility filter: US-only vs. US+Canada remote postings from JD body text
- #2097 — wire interview-prep's sourced-question research into
interview/plan - #2100 — invite-match: recognize rejection emails, not just interview invites
- #2122 —
interview/debrief: support debriefing directly from an existing transcript - #2124 — wire followup-cadence's cold classification into
stats.mjs'sactiveApps - #2127 —
interview/debrief: correct contradicted facts in the prep file in place - #2128 — interview-prep: detect call platform (phone/Zoom/Teams/Meet) from invite text
- #2130 — weekly interview digest aggregator
- #2672 — reply-matcher: require corroboration for partial role-title matches (fixes cross-application false-positive misattribution)
How I build: I don't write code from scratch. I architect systems, define agent behavior, and use AI to ship. The result is the same. The process is more honest.
Also on GitHub:
job-autopilot— cold-email pipeline with a 47% reply rate, no Premium requiredhr-skill— because HR deserves better questionsroast-cold-email-skill— cold email with receipts, not compliments
If you're hiring around the GTA Canada (agentic AI, workflow automation, learning systems): the repos above explain what I do better than any PDF resume could. Start there.
MPEd @ Western · EdTech · Discord: schlaflied_
教学设计师,但我不做PPT,我造工具。
现在在做的事: 用A2A多智能体pipeline重建"学习分析"这件事该怎么做。 xAPI追踪学习行为,多个agent交叉验证,自动生成报告。 不是concept,是跑通的东西。 详情请见:
- 🎯 Plot-Ark — xAPI behavioral analytics + A2A multi-agent pipeline for instructional design
- 🧠 Cogito — 从git历史和笔记内容重建认知自我模型。xAPI是机构规模的版本,这是个人规模的。浮现你自己都没意识到的模式。
开源贡献:
- career-ops(60K+ ★)— 具名 Core Contributor,全库三人之一,从第一次使用到被册封不到三个月
- career-ops 插件生态 — registry 里最早的社区插件全部出自我手:日历、Gmail、Outlook、Tavily、Obsidian 五件套,全部 zero-key、local-first。maintainer 原话:"You're helping seed the ecosystem."
- career-ops core — 66个PR已合并,包括SQLite存储层架构RFC(#918→#919)、无冲突per-plugin registry架构(#1402)、jurisdiction-compliance-lens系列十个已合并成员(#2014/#2020/#2021/#2027/#2029/#2031/#2034/#2038/#2041/#2042),完整列表见上方英文区的可展开清单;现在负责storage-layer方向并参与issue triage
- 🛡️ ClearCover — 本地优先的保险条款人话翻译器。上传保单,逐条对照原文和人话解释,用文档本身的语言输出(中/英)。只做翻译,不给购买建议。Docker部署(React + Node.js + Python),agent可直接调用的CLI,AGPL-3.0。从设计到v0.1.0上线,同一个晚上。
- 📐 进行中的 RFC — Shared Behavioral-Signal Layer:一套「公司可归因、候选人匿名」的 schema,把跨候选人的面试流程信号汇聚起来(承接 Discussion #904,已被采纳进项目的 shared-layer 方向)
- Hive(YC-backed)— SDR Agent已合并进v0.7.3,另有PR在review
我怎么造工具: 不从零写代码。设计系统架构,定义agent的边界和行为,然后让AI帮我造出来。 结果一样。我只是对这个过程更诚实。
最新学术糟粕:
欢迎来找我玩:Discord: schlaflied_




























