diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index f93e4e2..b3ec2e8 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -831,3 +831,61 @@ it does not pull unrelated private repositories into Bot Chat. Authenticated `/u HTTP 200. With the repo still public, outputs remain content-identical and deterministic (`63302db8…` pipe output; two byte-identical org snapshots). Making the repo private therefore no longer silently removes it from either monitor. + +--- + +## Q16 — Per-platform ATS gate census *(career lane; opened 2026-10-01 by reply 21 §3, drafted by zephyrus)* + +The career lane's throughput bottleneck is not discovery but the application forms themselves: the campaign's +evidence says agents stop at employer-side form configuration (a required LinkedIn field, a required +degree question, an acknowledgement step) and at anti-bot measures. This item builds one page of dated, +employer-side public evidence per platform — **Greenhouse, Ashby, Lever, Niceboard, Workday/Taleo** — stating what +the public form requires and which step stops an automated agent. Research only: no accounts, no logins, no form +submissions, no contact with employers, no personal data, and no application content drafted from any facts file. + +**Done means:** one row per platform in `career-lane/ats-gate-census.md` with the fetched form URL, the field +names that stop an agent, the anti-bot artifact actually observed, and a dated capture; where a fact cannot be +observed from outside, the cell says `unverified` rather than being left blank or guessed. +**Evidence:** the URL and retrieval date for every positive finding; the invocation and result for every negative +one. + +**Status: draft v0.1 landed `f29425a` (`career-lane/ats-gate-census-draft.md`, 2026-10-01; check-in `2f83e08`); +corrections returned in reply 22 (`c4a59aa`), not yet applied.** Verified from this side this tick: + +- **Greenhouse — filled, and reproduced.** The rendered form + `job-boards.greenhouse.io/embed/job_app?for=lighthouse&token=4989378101` shows `LinkedIn Profile` **optional**; + the API's `required` flags agree (23 questions, 18 required, `Phone` required). Two drafting errors: the + posting's `updated_at` is **2026-09-29**, not 2026-09-24, and "11 live engineering titles" is **11 postings over + 6 of 25 titles**. +- **Lever — filled, one correction.** LinkedIn / GitHub / Portfolio carry no `required` marker + (`name="urls[LinkedIn]"`); the anti-bot artifact is **hCaptcha** — `
` plus `js.hcaptcha.com/1/secure-api.js?host=jobs.lever.co`, `hcaptchaSubmitBtn`, + `hcaptchaResponse` ×12 — **not** reCAPTCHA: zero Google script references, zero `
` + elements, and the two `g-recaptcha` strings are stylesheet selectors. +- **Ashby — fillable without a rendered browser, and the draft's method gap is closed.** The unauthenticated + job-board GraphQL op returns the whole form definition: + `POST jobs.ashbyhq.com/api/non-user-graphql?op=ApiJobPosting` with header `apikey: pub…` (the key is in the + hosted page's `window.__appData`) and the `ApiJobPosting` query. Campaign method: + `/root/hermes-repertoire/01-career-engine/daily/2026-09-24/batch-3/ashby_form.py`. Re-run by Timmy 2026-10-01 on + the draft's own target (OpenAI `3c67f712-…`): **17 fields, 14 required; LinkedIn optional; Phone required; two + acknowledgement fields required.** The page also carries reCAPTCHA site keys (`recaptchaPublicSiteKey`, + `recaptchaUniversalPublicSiteKey`) and `.grecaptcha-badge` CSS, so anti-bot is answerable too. +- **Niceboard — open, with a lead.** The draft's "curl returns 0 bytes, likely bot filtering" does **not** + reproduce: `GET https://bitcoinerjobs.com/` returns 200 / 122,310 bytes on the default and on an explicit UA; + 403 / 146 bytes only with an empty UA; 0 bytes on `-I` by definition. The two dead job URLs do fall back to + `/category/engineering`, and the `/job/` links come from the Angular client. Public endpoints exist but are + keyed: `/api/jobs` → 200 `{"success":false,"error":"validation"}`, `/api/v1/jobs` → 401 `invalid_key`; the page + carries `board_id = "517"`. **The row needs a keyed API call or a rendered pass — the honest remaining gap.** +- **Workday — better artifact found.** The CXS JSON is public: + `GET unitytech.wd1.myworkdayjobs.com/wday/cxs/unitytech/Unity/job/` with `Accept: application/json` returns + 200 / 8,345 bytes of `jobPostingInfo`; `/apply` returns 406. Posting data public, form definition gated. +- **One false negative to withdraw at v0.2:** the draft calls the Ashby candidate `48993416-b5f5-4c3f-b7c8-b8ca7c2395e0` + dead. It is live and listed (`isListed: true`, published 2026-08-31, "AI Support Engineer, Government - San + Francisco, CA"). +- **Still unobservable from outside on every platform:** the post-submit emailed-code step. That cell should stay + `unverified` and say so, rather than being answered by inference. +- **Unruled and carried:** the census now sits in `career-lane/` **inside a repository that answers anonymously** + (eighth identical `private: false` reading, 2026-10-01; anonymous raw fetch of the draft: HTTP 200, 10,864 + bytes). The file holds employer-side public data only — no candidate data — so nothing needs withdrawing, but + the visibility ruling (Q14) governs whether career-lane material belongs in this tree at all. +