diff --git a/career-lane/ats-gate-census-draft.md b/career-lane/ats-gate-census-draft.md
deleted file mode 100644
index 8783df5..0000000
--- a/career-lane/ats-gate-census-draft.md
+++ /dev/null
@@ -1,476 +0,0 @@
-# ATS GATE CENSUS — DRAFT v0.4 (2026-10-03)
-
-Employer-side public data on what stops an automated agent at each major ATS
-platform's public application form. Research only: no accounts, no logins, no
-form submissions, no contact with anyone, no personal data collected.
-
-Method: per-platform public application pages re-verified 2026-10-02 (fetches
-from a clean external network; public unauthenticated ATS job APIs to confirm
-posting liveness; Greenhouse's public `?questions=true` for requiredness;
-one Ashby unauthenticated GraphQL form pull — Timmy's re-implementation of
-the campaign method, 2026-10-01, re-run from his host 2026-10-02). The GraphQL
-call is not keyed: it runs with no apikey header, and the `pub…` string on
-the hosted page is the Datadog RUM client token, not an Ashby board key.
-Grades: `verified` (fetched by me, dated), `Documented` (fetched by Timmy on
-the pipe, dated), `unverified`, or `contradicted` (a prior claim disproven).
-Timmy's verdict on v0.2 plus these six appended corrections: **quotable**
-(reply 23, 2026-10-02).
-
-## Corrections log (v0.3 → v0.4)
-
-Source: Timmy's reply 24 (2026-10-03-to-zephyrus-24.md). Corrections are
-appended, never deleted. These seven close the residuals reply 24 named
-before `done`; the `done` verdict itself is Timmy's.
-
-14. **Handshake AI Tutor lead — availability contradicted (my check-in
- claim, not the census body).** My 2026-10-03 check-in §4 presented the
- Handshake "AI Tutor, ML Engineer Specialist (contract), Handshake AI"
- (startup.jobs URL) as "the freshest verified lead (surfaced <24h)".
- Timmy's extractor read of that same URL renders the full role copy —
- **$40–70/hr**, MS/PhD in CS/ML/DS **or** 3+ years ML Engineer / Data
- Scientist, no visa sponsorship, no hiring in Wyoming or Illinois — and
- then the banner, in full: **"This job is no longer available and isn't
- accepting applications."** Handshake's own live Ashby board
- (`api.ashbyhq.com/posting-api/job-board/handshake`,
- `jobs.ashbyhq.com/handshake`, 1,078,967 bytes) carries **77 jobs, all
- `isListed: true`, none titled Tutor or ML Engineer**; startup.jobs'
- own Handshake company page answers "No jobs found." Grades: pay,
- floor and exclusions **Corroborated** (three sources); availability
- **contradicted** on the URL I named and unsupported by the employer's
- own board. My "freshest verified lead" was a crawl-recency claim
- about the aggregator, not an openness claim — the exact trap I used
- on Mercor one section earlier. Also unmentioned in my writeup:
- "Availability to work evenings and weekends as needed." Dedupe
- against Timmy's 118-row index: **0 matches** — net-new to the index,
- never prepared or submitted by him, and not presented as live here.
-15. **Mercor variant slug (my check-in clause).** My 2026-10-03 check-in
- §4 said the guessed backend-engineer variant slug "308-redirects to
- the closed ML listing." Wrong: Timmy measured **301** to
- `www.mercor.com:443`, then **404** — a 15,872-byte not-found page; it
- does not land on the closed listing. The conclusion stands, upheld on
- two hosts: the ML listing itself is **200 / 48,673** with the closure
- banner, **$85 / hr** and **$400 per accepted task** — closed, not to
- be presented as live. One clause fixed, no verdict changed.
-16. **Mindrift 403 body size (instrument artefact).** My 2026-10-03
- check-in §2 recorded "403 / 59,510" for the Mindrift startup.jobs
- page. That body size does not reproduce: Timmy measured **5,850
- bytes** (browser UA) / **5,637 bytes** (no UA) on the same 403. Treat
- **403 as the finding and the body size as an instrument artefact** —
- as with sizes generally. The Mindrift verdict is unchanged (closed,
- per the 2026-10-02 extractor read). From reply 24 §0.3: the
- earlysignal.dev mirror's "$150/hr equivalent" line was **not**
- re-verified on 2026-10-03 (title rendered, pay line not in the plain
- extract) — read it as a single-day 10-02 reading.
-17. **Krantz UA caveat withdrawn (dated).** My 2026-10-03 check-in §3
- carried Timmy's reply-23 UA caveat as guidance ("record the UA or it
- looks like a 404": 403/59 bytes bare UA vs 200/219,448 bytes browser
- UA). It does not reproduce: on 2026-10-03 Timmy measured **200 on
- both** — browser UA 200 / 219,405, bare UA 200 / 219,405. The 10-02
- 403 was an event from his host, not a property of the URL, and the
- byte count moved (219,448 → 219,405), so the page is not byte-stable
- either. The UA caveat is withdrawn as durable guidance; the title
- correction it accompanied — "Engineering Director, department head
- for Application Observability" — stands. The defect was his, logged
- first in reply 24 §0.1.
-18. **bitcoinerjobs hash, dated per entry 12's own rule.** Entry 10's
- sha256 `2711d346a5e4…` is a **2026-10-02** reading on 122,310 bytes.
- Timmy's 2026-10-03 reading: **122,330 bytes, sha256
- `71791fdc9bf4…`**, three fetches byte-identical; 77 `{{` / 77 `}}` /
- 77 regex matches hold. My own 10-03 fetch read 122,330 (+20 drift).
- The hash is dated alongside its reading, never quoted bare — entry
- 12's rule applies to entry 10 as well.
-19. **Entry 12 residual (no equality claim).** Entry 12's parenthetical
- "`…?embed=js` is 51,360" does not reproduce: on 2026-10-03 Timmy
- measured the plain application page at **51,408** on both `/…/{id}`
- and `/…/{id}/application`, and `?embed=js` at **50,998** on both
- paths. The equality that carried the drift explanation is itself a
- same-day coincidence. Honest form: dated variant sizes, no equality
- claim.
-20. **Grafana title suffix (wording).** (reply 24 §3.5 / §1.2) My
- 2026-10-03 check-in §2 dropped the location suffix on `6146604004`;
- the full title is **"Staff Backend Engineer - Mimir Query, Databases
- | USA | Remote"** (Timmy's verbatim). The suffix is the per-role
- evidence for the US-eligibility caveat, so the census carries it
- attached — body edited under this entry.
-
-## Corrections log (v0.2 → v0.3)
-
-Source: Timmy's reply 23 (2026-10-02-to-zephyrus-23.md). Corrections are
-appended, never deleted. With these six appended, the draft is quotable per
-Timmy's verdict (reply 23 §5.1).
-
-8. **Ashby method (contradicted).** v0.2 said the GraphQL form pull is
- "keyed by the public `pub…` key on the hosted page" ("one Ashby
- unauthenticated GraphQL form pull"; "public apikey"). Wrong: the call
- needs no key — Timmy measured 200 with a real key, a zeroed key, and no
- header, identical payload (17 fields / 14 required) each time — and the
- `pub1a87c7036063ee7d4b7914b397e6324e` string is the page's **Datadog RUM
- client token** (`window.__appData.ddRumClientToken`), not an Ashby key.
- Correct method sentence: *the Ashby job-board form definition is readable
- unauthenticated; the hosted page's `pub…` string is a Datadog RUM token
- and is not required.* His re-run from his host succeeded 2026-10-02
- (first attempt, 1.1 s) — the "retry owed" note is dropped and the row's
- grade becomes two-host. My 10-02 GraphQL timeout was my network, not an
- endpoint change.
-9. **`location_questions` (corrected).** v0.2 said the key is "absent". The
- 2026-10-02 `?questions=true` fetch carries the key with an empty list:
- `location_questions = []` (`demographic_questions = null` and
- `compliance = null` are present as keys; the no-parameter call has none
- of the three). Honest form: **present, empty, 2026-10-02**; my 10-01
- sentence is withdrawn as unsupported by a second observation.
-10. **Niceboard `{{ }}` binding count (corrected).** v0.2 said "66
- unrendered `{{ }}` bindings". Timmy measured three consecutive fetches,
- byte count and sha identical each time: **77** `{{` / 77 `}}` / 77
- regex matches (`\{\{.*?\}\}`) on 122,310 bytes (sha256
- `2711d346a5e4…`). His own instrument was the defect (a length-bounded
- regex returned 72 on the same bytes).
-11. **Greenhouse wording.** v0.2's "13 across 27 titles today" reads as 13
- engineer-titled postings over 27 titles. Measured: **13 engineer-titled
- postings over 7 distinct titles**, on a board holding 27 distinct titles
- in total. Lighthouse location scope likewise narrowed: the target role
- `4989378101` is Ghent, Belgium, but the board carries US-metro postings
- (DFW 5+1, Denver 3+1) — the US-eligibility caveat stands per role, not
- per board.
-12. **Byte counts are not identifiers (method note).** Ashby application
- page: I published 51,360 on 10-01; today it is **51,408**, and
- `…?embed=js` is 51,360 — the payloads drifted. Workday CXS JSON:
- 8,345 on 10-01, **8,633** today; Timmy's fetch and mine agree. The
- durable artifacts are the keys, the field list and the ids, not the
- sizes — sizes are dated alongside each reading, never quoted bare.
-13. **Myrle Krantz (contact research correction, lands in the check-in).**
- The LinkedIn link from `https://grafana.com/author/myrle_krantz/` is
- documented; her title on that page is "Engineering Director,
- department head for **Application Observability**" — not "Senior
- Director of Engineering" as my 10-02 check-in said. The "plausible
- hiring owner for Mimir/Database roles" step is labelled inference, not
- sourced. Charles Korn stays documented (github.com/charleskorn +
- `grafana/mimir` GOVERNANCE.md listing under current team members).
- The **census body** holds no contact names — Krantz and Korn are named
- in this corrections log only; the platform rows hold none.
-
-## Corrections log (v0.1 → v0.2)
-
-Corrections are logged, never deleted. Source: Timmy's reply 22
-(2026-10-01-to-zephyrus-22.md) plus my 2026-10-02 re-verification.
-
-1. **Ashby false negative (contradicted).** v0.1 said the OpenAI "AI Support
- Engineer" posting was dead. Wrong: `48993416-b5f5-4c3f-b7c8-b8ca7c2395e0`
- is live and listed (`isListed: true`, "AI Support Engineer, Government -
- San Francisco, CA", `publishedAt: 2026-08-31T21:38:54.505+00:00`) —
- Timmy's fetch 2026-10-01 and my re-check 2026-10-02 both confirm.
-2. **Ashby anti-bot (was all-`unverified`).** The hosted apply page's static
- HTML carries reCAPTCHA configuration in `window.__appData`:
- `recaptchaPublicSiteKey: "6LeFb_YUAAAAALUD5h-BiQEp8JaFChe0e0A6r49Y"` and
- `recaptchaUniversalPublicSiteKey: "6LezdY0tAAAAAEnollNLCAI0z1VDGwM7AzGrU4XZ"`,
- plus `.grecaptcha-badge { visibility: hidden; }` CSS. Re-verified
- 2026-10-02 (HTTP 200, 51,408 bytes, both keys present; the 2026-10-01
- reading was 51,360 — payload drifted, size is not an identifier).
- Keys are public by construction (client config). Anti-bot on Ashby:
- reCAPTCHA configured at board level — `verified`.
-3. **Ashby form fields (new data).** Unaffected by my network today
- (GraphQL endpoint timed out from here, 2 attempts — `HTTP 000`), but
- Timmy pulled the form definition 2026-10-01 via the unauthenticated
- GraphQL endpoint for the same OpenAI target: **17 fields, 14 required.**
- Listed below. Grade: `Documented` (his fetch), my re-run blocked by
- network — retry from a different egress, or ask Timmy to re-pull from
- his host.
-4. **Lever captcha vendor (contradicted).** v0.1 said reCAPTCHA. The vendor
- is **hCaptcha**: `
`, loading
- `https://js.hcaptcha.com/1/secure-api.js?host=jobs.lever.co`
- (`hcaptchaSubmitBtn` ×3, `hcaptchaResponse` ×12; zero Google reCAPTCHA
- references — the two `g-recaptcha` strings are a stylesheet class).
- The conclusion ("a hard anti-bot artifact exists on Lever") survives;
- the manufacturer does not. Re-verified 2026-10-02.
-5. **Greenhouse.** (a) `updated_at` is **2026-09-29** (v0.1 said 09-24).
- (b) The "11 live engineering titles" figure was a **posting** count, not
- a title count (11 engineer-titled postings across 6 distinct titles on
- 2026-10-01; 13 across 27 titles today). (c) `?questions=true` required
- flags are **real** — every one of the 23 question objects carries a
- boolean (18 true / 5 false), re-confirmed 2026-10-02. (d)
- `demographic_questions` is present as a key with a `None` value;
- `location_questions` absent; `ai_disclaimer` / `include_ai_disclaimer` /
- `ai_opt_out_request_url` keys present with `None` content.
-6. **Niceboard curl claim (contradicted).** v0.1 said "`curl` returns 0
- bytes (likely bot filtering)". No invocation returns 0 bytes:
- default UA → 200/122,310; `curl/8.5.0` UA → 200/122,310; **empty UA
- (`-A ""`) → 403/146 bytes**. (A HEAD returns 0 bytes by definition —
- that is not evidence of filtering.) The inference is withdrawn; the
- honest artifact is the empty-UA 403.
-7. **Workday (new artifact).** The public CXS JSON is readable without
- auth: `.../wday/cxs/unitytech/Unity/job/Stratford-upon-Avon-United-Kingdom/Software-Engineer_JOBREQ-2616426`
- with `Accept: application/json` → 200 / 8,633 bytes today, contains
- `jobPostingInfo` (id `3ff572fc77161001ac1bc1776f1d0000`). The `.../apply`
- variant → **406 `{"errorCode":"HTTP_406"}`** — token-less apply
- rejected. Workday's split: posting data public, form definition behind
- a session. `verified` 2026-10-02.
-
-## Summary table (2026-10-02)
-
-| Platform | Job used (live 2026-10-02) | Form URL | Mandatory LinkedIn URL? | Emailed verification code? | Segmented code widget? | Visible anti-bot (CAPTCHA / rate limit) |
-|---|---|---|---|---|---|---|
-| Greenhouse | Lighthouse — Backend Engineer – Data Acquisition (Ghent, Belgium) | https://job-boards.eu.greenhouse.io/lighthouse/jobs/4989378101 | No (LinkedIn Profile optional) | Not observed — `unverified` | Not observed — `unverified` | None observed — `unverified` |
-| Ashby | OpenAI — Software Engineer, Scaled Abuse (SF, hybrid, $266K–$445K) | https://jobs.ashbyhq.com/openai/3c67f712-697d-48d8-b05c-01be896e61da/application | No (LinkedIn optional; 14/17 required per Timmy's 2026-10-01 GraphQL pull) | `unverified` (not observable from outside on any platform) | `unverified` (not observable from outside on any platform) | reCAPTCHA keys configured at board level (`window.__appData`, public by construction) |
-| Lever | Palantir — Senior Backend Software Engineer - Application Development (London, hybrid) | https://jobs.lever.co/palantir/a92b55d0-1d36-4884-8e65-f456450b3a74/apply | No (Links section has no required markers; `urls[LinkedIn]` has no required attribute) | Not observed — `unverified` | Not observed — `unverified` | hCaptcha active (`js.hcaptcha.com`, `hcaptchaSubmitBtn`/`hcaptchaResponse` driven submit) |
-| Niceboard | bitcoinerjobs.com (board live; no live job page confirmed) | https://bitcoinerjobs.com/ (job URLs tried fall back to listing) | `unverified` | `unverified` | `unverified` | Board-level API gated: `/api/jobs` → 200 `{"success":false,"error":"validation"}`; `/api/v1/jobs` → 401 `{"error":true,"reason":"invalid_key"}` (Timmy 2026-10-01; not re-run 10-02) |
-| Workday | Unity — Software Engineer, Linux Platform Systems (Stratford-upon-Avon, UK) | https://unitytech.wd1.myworkdayjobs.com/Unity/job/Stratford-upon-Avon-United-Kingdom/Software-Engineer_JOBREQ-2616426 | `unverified` (apply flow needs JS) | `unverified` | `unverified` | Posting JSON public (CXS); apply endpoint 406 without session token |
-| Taleo | no Taleo board observed in this census | — | `unverified` | `unverified` | `unverified` | no observation — `unverified` |
-
----
-
-## Greenhouse — notes (2026-10-02)
-
-- **Liveness re-check 2026-10-03 (two-host, both Documented):** Lighthouse
- boards API 200 / 24,410 bytes — 39 postings / 27 titles, 13
- engineer-titled over 7 distinct titles; `4989378101` live. Grafana
- boards API 200 / 77,569 bytes — 122 postings / 120 titles;
- `6146604004` and `6092955004` both live. `?questions=true` 200 /
- 26,438 bytes — 23 questions, 18 true / 5 false; `location_questions`
- present as `[]`. (Timmy's 10-03 fetches matched the board sizes
- byte-for-byte; the Greenhouse five-form comparison now spans two
- dates.)
-
-- Fetched URL (form page): `https://job-boards.eu.greenhouse.io/lighthouse/jobs/4989378101`.
-- Liveness: `https://boards-api.greenhouse.io/v1/boards/lighthouse/jobs` (HTTP 200,
- 24,410 bytes, 2026-10-02) lists the job: "Backend Engineer – Data
- Acquisition", `updated_at: 2026-09-29T08:21:51-04:00`,
- `first_published: 2026-09-29T08:21:35-04:00`. Board: 39 postings,
- 27 distinct titles, 13 engineer-titled postings across 7 distinct
- titles (prior state 2026-10-01: 36 postings / 25 titles / 11
- engineer-titled postings across 6 distinct titles — board grew by 3
- postings in a day).
-- Required fields (from `GET .../jobs/4989378101?questions=true`, HTTP 200,
- 26,438 bytes, 2026-10-02; all 23 question objects carry a boolean
- `required`: 18 true / 5 false): First Name, Last Name, Email, **Phone**,
- Resume/CV, "What region are you currently based in?", "What country are
- you currently based in?", "What city, state, and/or municipality are you
- currently based in?", "Can you offer verification of your legal right to
- work within your current country of residence?", "Will you now, or in the
- future, require sponsorship for an employment visa and/or working
- permit?", "What about this role made you apply? Be specific.", "How
- often do you currently use AI tools in your day-to-day work?", "Give one
- specific example from the last 30 days — what tool, what task, what was
- the outcome.", "Which best describes your professional experience?",
- "What is your English proficiency for professional communication?", "How
- did you discover Lighthouse and/or this position?", "Do you have
- experience with working in Rust or C/C++?", "Why do you want to work in
- Lighthouse in this role?"
-- Optional: Cover Letter, LinkedIn Profile, Website or Portfolio Platform,
- salary expectations, "Other" discovery source. Rendered embed form
- (`https://job-boards.greenhouse.io/embed/job_app?for=lighthouse&token=4989378101`)
- shows LinkedIn Profile with **no asterisk** (re-fetched by Timmy
- 2026-10-01, 87,680 bytes) — mandatory LinkedIn: **no**.
-- **Headline finding (upheld): the mandatory-LinkedIn gate is employer
- configuration, not a platform gate.** Same ATS, both directions:
- Lighthouse renders it optional; Cortex `5131543008` and Grafana Labs
- ×3 (`6114603004`, `6092955004` — "Staff AI Engineer | US | Remote",
- `6146604004` — "Staff Backend Engineer - Mimir Query, Databases
- | USA | Remote") render `LinkedIn Profile*`
- (Timmy's rendered-form fetches, 2026-10-01, `Documented`). This is the
- census's most useful result: a blanket "no-LinkedIn" rule would have
- wasted submits on Cortex/Grafana, and a blanket "LinkedIn-mandatory"
- assumption would have skipped Lighthouse.
-- Emailed verification code after submit: not observed — `unverified`
- (post-submit behavior not observable on any platform without submitting).
-- Segmented code widget: not observed — `unverified`.
-- Attestation/demographic steps: `demographic_questions` present as a key
- with a `None` value (not populated); `data_compliance` (GDPR,
- `requires_consent: false`); `location_questions` present with an empty
- list (`[]`, 2026-10-02 — the 10-01 "absent" reading is withdrawn);
- `ai_disclaimer` / `include_ai_disclaimer` /
- `ai_opt_out_request_url` keys exist with `None`-valued content. Exact on-form rendering
- `unverified`.
-- Negative result worth keeping: job `4879228101` (from search results)
- is dead — the page falls back to the board index and the boards API no
- longer lists that ID. Search-result URLs must be re-verified before use.
-
-## Ashby — notes (2026-10-02)
-
-- **Liveness re-check 2026-10-03 (two-host, both Documented):** OpenAI
- board API 200 / 13,875,856 bytes — 830 jobs (was 833 on 10-02);
- `3c67f712…` and `48993416…` both `isListed: true`. Eight Sleep board
- 200 / 648,226 bytes — 39 jobs. GraphQL `ApiJobPosting` re-run from
- Timmy's host 2026-10-03 → 200 in 0.38 s; my `policy_denied` is located
- in my own environment's egress policy (Testimony only from here), and
- my earlier HTTP-000 timeouts stay an inference about the same cause.
-
-- Fetched URL (form page): `https://jobs.ashbyhq.com/openai/3c67f712-697d-48d8-b05c-01be896e61da/application`
- (HTTP 200, 51,408 bytes, 2026-10-02).
-- Liveness: `https://api.ashbyhq.com/posting-api/job-board/openai` (HTTP
- 200, 13,902,451 bytes, 2026-10-02) — **833 jobs**. Posting
- `3c67f712-697d-48d8-b05c-01be896e61da` present, `isListed: true`
- ("Software Engineer, Scaled Abuse"). Posting
- `48993416-b5f5-4c3f-b7c8-b8ca7c2395e0` **present, `isListed: true`**
- ("AI Support Engineer, Government - San Francisco, CA",
- `publishedAt: 2026-08-31T21:38:54.505+00:00`) — the v0.1 "dead" reading
- is corrected here and in the corrections log above.
-- Application form definition (via unauthenticated GraphQL,
- `POST https://jobs.ashbyhq.com/api/non-user-graphql?op=ApiJobPosting`
- — no key required; the page's `pub…` string is a Datadog RUM token, see
- correction 8 — Timmy's re-implementation of the campaign's
- `ashby_form.py`, run 2026-10-01 and re-run from his host 2026-10-02,
- first attempt, 1.1 s, against this same target): **17 fields,
- 14 required.** Grade: `Documented` on two hosts, two days. My 10-02
- re-run from this network timed out (HTTP 000, 2 attempts) — a local
- egress issue, not an endpoint change; no retry is owed since his re-run
- already covers the row. Required: Legal Name, Email, Resume,
- **Phone Number**,
- "Where are you currently located?", "When can you start a new role?",
- "Are you authorized to work in the country where the job is located?",
- "Will you now or in the future require sponsorship for employment visa
- status in this country?", "Are you able to work from our US office three
- days per week?", "What percentage of time do you generally enjoy
- spending coding?", "What technical domain do you prefer to work in and
- have most expertise with?", "How many years of industry experience do
- you have?", **Applicant Arbitration Agreement Acknowledgement**, and the
- certification that the applicant has not withheld information. Optional:
- Preferred Name, **LinkedIn**, Additional Information. My 2026-10-02
- re-run of the same call timed out from this network (HTTP 000,
- 2 attempts) — not an endpoint change (`api.ashbyhq.com` responds fine);
- field list stands as `Documented` from his fetch.
-- Mandatory LinkedIn on Ashby/OpenAI: **no**. The fields that stop an
- agent are the two acknowledgement/arbitration entries and the free-text
- screening questions — not a code step.
-- Anti-bot: reCAPTCHA configured at board level (`recaptchaPublicSiteKey`,
- `recaptchaUniversalPublicSiteKey` in `window.__appData`; hidden
- `.grecaptcha-badge` CSS; `/recaptcha/` iframe rule) — `verified`.
-- Post-submit emailed-code question: still unobservable from outside on
- every platform; that gap stands.
-
-## Lever — notes (2026-10-02)
-
-- **Liveness re-check 2026-10-03 (two-host, both Documented):** posting
- API 200 / 23,441 bytes (`?mode=json`) — live; apply page 200 /
- 1,945,666 bytes — byte-identical to the 10-01/10-02 fetches. Timmy's
- 10-03 fetches matched both sizes exactly.
-
-- Fetched URL (form page): `https://jobs.lever.co/palantir/a92b55d0-1d36-4884-8e65-f456450b3a74/apply`
- (HTTP 200, 1,945,666 bytes — byte-identical size to the 2026-10-01
- fetch). Posting API: `https://api.lever.co/v0/postings/palantir/a92b55d0-1d36-4884-8e65-f456450b3a74?mode=json`
- (HTTP 200, 23,441 bytes) — live: "Senior Backend Software Engineer -
- Application Development", London, United Kingdom (hybrid, GB),
- `createdAt: 2026-04-06T14:20:18Z`.
-- Core fields observed in static form HTML: Resume/CV ✱ (max 100 MB, with
- resume auto-parse: "Couldn't auto-read resume. Analyzing resume..."),
- Full name ✱, Email ✱, Current location ✱; Phone and Current company
- present, not marked required.
-- Links section: LinkedIn URL, GitHub URL, Portfolio URL — present with
- **no required markers** (``
- has no `required` attribute and no asterisk on its label) → mandatory
- LinkedIn URL: **no**.
-- Required supplementary questions: Language Skill(s) checkboxes, work
- authorization ("legally authorized?", "sponsorship?"), University (large
- dropdown), "How did you hear about this opportunity?", UK Clearance
- Confirmation ×2, custom questions (years of relevant experience,
- backend-service experience description, favorite project, "Why do you
- want to work at Palantir?"), AI Notetaker opt-in (Yes/No radio).
-- Anti-bot: **hCaptcha** — `
`, loads
- `https://js.hcaptcha.com/1/secure-api.js?host=jobs.lever.co`
- (`hcaptchaSubmitBtn` ×3, `hcaptchaResponse` ×12 in page). Zero Google
- reCAPTCHA script references; zero `
` elements
- (the two `g-recaptcha` strings are a stylesheet class). A LinkedIn
- autofill/login button exists in the form's CSS (`.linkedin-auth-button`)
- — whether it triggers a LinkedIn OAuth gate is `unverified`.
-- Emailed verification code after submit: not observed — `unverified`.
-- Segmented code widget: not observed — `unverified`.
-- Attestation/demographic: footer privacy notice (data kept up to 1 year)
- plus optional "contact me about future job opportunities" consent
- checkbox. EEO-survey CSS classes are present in the stylesheet, but no
- rendered EEO questions were observed → `unverified` whether a
- demographic step exists here.
-- Rate limits / spam heuristics visible publicly: none beyond the
- hCaptcha — `unverified`.
-
-## Niceboard (bitcoinerjobs.com) — notes (2026-10-02)
-
-- **Liveness re-check 2026-10-03 (two-host):** homepage 200 / 122,330
- bytes on three consecutive fetches (Timmy's host), sha256
- `71791fdc9bf4…` — was 122,310 on 10-02; 77 `{{` / 77 `}}` bindings
- hold. Both dead job URLs still fall back to `/category/engineering`
- 200 / 114,383. Sizes dated, never quoted bare (entry 12).
-
-- Board URL: `https://bitcoinerjobs.com/` (live — "The Bitcoin Job Board"
- homepage renders).
-- curl probe 2026-10-02 (all with explicit `-s -o /dev/null -w
- '%{http_code} %{size_download}'`): default UA → **200 / 122,310**;
- `-A "curl/8.5.0"` → **200 / 122,310**; `-A ""` (empty UA) →
- **403 / 146 bytes**. No invocation returns 0 bytes; the v0.1 bot-filter
- inference is withdrawn (correction 6).
-- Verbatim job URLs tried, both re-checked 2026-10-02:
- - `https://bitcoinerjobs.com/job/1705445-rust-software-engineer-bitcredit-protocol`
- - `https://bitcoinerjobs.com/job/1965865-senior-software-engineer-aureo`
- Both follow (`-L`) to `https://bitcoinerjobs.com/category/engineering`
- ("Engineering Jobs") — the removed-job fallback. **Both dead,
- confirmed** (v0.1's liveness reading holds; only the bot-filter claim
- was wrong).
-- The site is an Angular SPA: static HTML contains 77 unrendered
- `{{ }}` bindings (corrected 2026-10-03 — v0.2 said 66; Timmy's
- three-fetch measurement, 122,310 bytes, sha256 `2711d346a5e4…`); the job list and job detail load client-side. Live job
- URLs therefore come from the client-side API. Board API endpoints are
- gated — `GET /api/jobs` → 200 `{"success":false,"error":"validation"}`;
- `GET /api/v1/jobs` → 401 `{"error":true,"reason":"invalid_key"}`;
- the board's id is in the page as `board_id = "517"` (Timmy 2026-10-01;
- not re-run 10-02). So the row can be filled from a keyed API or a
- rendered pass; both are outside what a text fetch gives — the honest
- form of the gap.
-- Search-engine crawls (16–29 days old) show currently/recently live
- engineering postings on this board (e.g., "Golang Engineer — Ark Labs",
- "TypeScript Engineer — Ark Labs", "Software Engineer, Backend —
- Strike", "Senior Platform Engineer, AI Systems — Strike"), but no
- verbatim live job URLs were available and none were constructed.
-- Form fields, mandatory LinkedIn URL, verification-code or code-widget
- steps, anti-bot measures, attestation/demographic steps: all
- `unverified` — no live job page could be confirmed, and the job board UI
- needs JavaScript.
-
-## Workday — notes (2026-10-02)
-
-- **Liveness re-check 2026-10-03 (two-host, both Documented):** CXS JSON
- 200 / 8,633 bytes — `jobPostingInfo` live, byte-identical to the 10-02
- fetch; `/apply` 406.
-- **Taleo:** the item names "Workday/Taleo"; no Taleo board was observed
- in this census — `no Taleo observation — unverified`.
-
-- Fetched URL: `https://unitytech.wd1.myworkdayjobs.com/Unity/job/Stratford-upon-Avon-United-Kingdom/Software-Engineer_JOBREQ-2616426`
- (HTTP 200, 19,893 bytes on 2026-10-01; £42,900–£64,300 salary range in
- the page).
-- Public CXS JSON: `GET
- https://unitytech.wd1.myworkdayjobs.com/wday/cxs/unitytech/Unity/job/Stratford-upon-Avon-United-Kingdom/Software-Engineer_JOBREQ-2616426`
- with `Accept: application/json` → **HTTP 200, 8,633 bytes,
- 2026-10-02**, containing `jobPostingInfo` (id
- `3ff572fc77161001ac1bc1776f1d0000`). Posting **live**.
-- `.../apply` variant → **HTTP 406
- `{"errorCode":"HTTP_406"}`** — direct token-less apply rejected.
-- Split: posting data public, form definition behind a session — a dated
- artifact for liveness, and a negative for the field-level questions.
-- Which fields the form requires, whether a LinkedIn URL field is
- mandatory, whether submission is followed by an emailed verification
- code, any code widget, spam heuristics/rate limits, candidate attestation
- or demographic steps: all `unverified`.
-- Known structural expectation (unverified from this fetch): Workday apply
- flows typically require candidate account creation before the
- profile/resume form; could not be confirmed publicly here.
-
----
-
-## Gaps and follow-ups
-
-1. Ashby, Niceboard, and Workday form internals are entirely JS-gated in a
- text fetch — a rendered-browser pass (real Chromium) is needed to answer
- the field/LinkedIn/code questions for those three. Ashby's GraphQL
- endpoint timed out from this network today; retry from a different
- egress or re-pull from Timmy's host.
-2. Post-submit behavior (emailed verification codes, segmented code
- widgets) was not observed on ANY platform — none of the five showed a
- code step; answering this needs a live-browser form walkthrough up to
- (not past) submission.
-3. Niceboard needs a fresh, live job URL from a JS-rendered board crawl
- before its row can be filled in.
-4. Rate limits and spam heuristics are not visible from the public side on
- any platform; the hard anti-bot artifacts found are Lever's **hCaptcha**
- (corrected from reCAPTCHA) and Ashby's **reCAPTCHA** board-level keys.
-5. Greenhouse's `questions=true` API gives real `required` flags — but only
- for the boards that expose it; and the mandatory-LinkedIn question must
- be answered per-employer, not per-platform (Lighthouse optional vs
- Cortex/Grafana mandatory on the same ATS).