career-lane: ATS gate census draft v0.1 (public form data only, no candidate data)
This commit is contained in:
1 parent
5ab889a115
commit
f29425a650
1 file changed
+83
@@ -0,0 +1,83 @@
|
|||||||
|
# ATS GATE CENSUS — DRAFT v0.1 (2026-10-01)
|
||||||
|
|
||||||
|
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: one page per platform, fetched 2026-10-01 (text fetch via browser
|
||||||
|
tool; one supplemental curl of already-fetched HTML for Lever; public
|
||||||
|
unauthenticated ATS job APIs used only to confirm posting liveness and, for
|
||||||
|
Greenhouse, to read the required-question list the form API exposes).
|
||||||
|
Everything below is from a fetched URL or marked `unverified`.
|
||||||
|
|
||||||
|
## Summary table
|
||||||
|
|
||||||
|
| Platform | Job used (live 2026-10-01) | 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 | `unverified` (form needs JS) | `unverified` (form needs JS) | `unverified` (form needs JS) | `unverified` (form needs JS) |
|
||||||
|
| Lever | Palantir — Senior Backend Software Engineer - Application Development (London) | https://jobs.lever.co/palantir/a92b55d0-1d36-4884-8e65-f456450b3a74/apply | No (Links section has no required markers) | Not observed — `unverified` | Not observed — `unverified` | reCAPTCHA present on form HTML (`g-recaptcha` ×2, `data-sitekey` ×1) |
|
||||||
|
| Niceboard | bitcoinerjobs.com (board live; no live job page confirmed) | https://bitcoinerjobs.com/ (job URLs tried fell back to listing) | `unverified` | `unverified` | `unverified` | `unverified` (curl returned 0 bytes — likely bot filtering) |
|
||||||
|
| 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` (apply flow needs JS) | `unverified` (apply flow needs JS) | `unverified` (apply flow needs JS) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Greenhouse — notes
|
||||||
|
|
||||||
|
- Fetched URL (form page): `https://job-boards.eu.greenhouse.io/lighthouse/jobs/4989378101` (fetch 2026-10-01).
|
||||||
|
- Liveness evidence: `https://boards-api.greenhouse.io/v1/boards/lighthouse/jobs` (fetched 2026-10-01) lists this job (`updated_at` 2026-09-24); 11 live engineering titles on this board.
|
||||||
|
- Required fields (from `GET .../jobs/4989378101?questions=true`, `required: true` flags): 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.
|
||||||
|
- Mandatory LinkedIn URL field: **no** (LinkedIn Profile is optional on this employer's form).
|
||||||
|
- Emailed verification code after submit: not observed — `unverified` (Greenhouse's standard flow is a single form POST; post-submit email behavior not observed).
|
||||||
|
- Segmented code widget: not observed — `unverified`.
|
||||||
|
- Spam heuristics / rate limits visible publicly: none observed — `unverified`.
|
||||||
|
- Attestation/demographic steps: the job object exposes `demographic_questions`, `data_compliance` (GDPR, `requires_consent: false`), `location_questions`, plus `ai_disclaimer` / `ai_opt_out_request_url` keys — contents not enumerated; exact on-form rendering `unverified`.
|
||||||
|
- Negative result worth keeping: the first candidate job I tried (`https://job-boards.eu.greenhouse.io/lighthouse/jobs/4879228101`, from search results) is dead — the page fell back to the board index, and the boards API no longer lists that ID. Confirms search-result URLs must be re-verified before use.
|
||||||
|
|
||||||
|
## Ashby — notes
|
||||||
|
|
||||||
|
- Fetched URL (form page): `https://jobs.ashbyhq.com/openai/3c67f712-697d-48d8-b05c-01be896e61da/application` (fetch 2026-10-01).
|
||||||
|
- Liveness evidence: `https://api.ashbyhq.com/posting-api/job-board/openai` (fetched 2026-10-01) lists this posting with `isListed: true` (835 jobs on board). The posting page renders title, location, comp, full benefits text.
|
||||||
|
- Application form fields: **not observable** — the page renders "Fetching application form"; the form itself requires JavaScript. Which fields are required, whether LinkedIn URL is mandatory, any verification-code or code-widget step, any anti-bot measures: all `unverified`.
|
||||||
|
- The Ashby posting API does not expose the form definition (observed top-level keys: address, applyUrl, department, descriptionHtml, descriptionPlain, employmentType, id, isListed, isRemote, jobUrl, location, publishedAt, secondaryLocations, team, title, workplaceType).
|
||||||
|
- Negative result: the first candidate posting (`/openai/48993416-b5f5-4c3f-b7c8-b8ca7c2395e0/application`, "AI Support Engineer") is no longer listed — not found in the 835 live postings; its page also shows the JS gate.
|
||||||
|
|
||||||
|
## Lever — notes
|
||||||
|
|
||||||
|
- Fetched URL (form page): `https://jobs.lever.co/palantir/a92b55d0-1d36-4884-8e65-f456450b3a74/apply` (fetch 2026-10-01; HTTP 200; ~1.95 MB HTML). Posting also live via `https://api.lever.co/v0/postings/palantir/a92b55d0-1d36-4884-8e65-f456450b3a74?mode=json`.
|
||||||
|
- 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** → 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: **reCAPTCHA present** on the form (`g-recaptcha` ×2, `data-sitekey` ×1 in page HTML). 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` (Lever submit is a single POST; post-submit behavior not observed).
|
||||||
|
- 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 for this posting → `unverified` whether a demographic step exists here.
|
||||||
|
- Rate limits / spam heuristics visible publicly: none beyond the reCAPTCHA — `unverified`.
|
||||||
|
|
||||||
|
## Niceboard (bitcoinerjobs.com) — notes
|
||||||
|
|
||||||
|
- Board URL: `https://bitcoinerjobs.com/` (fetched 2026-10-01; live — "The Bitcoin Job Board" homepage renders).
|
||||||
|
- Verbatim job URLs tried, both fetched 2026-10-01:
|
||||||
|
- `https://bitcoinerjobs.com/job/1705445-rust-software-engineer-bitcredit-protocol`
|
||||||
|
- `https://bitcoinerjobs.com/job/1965865-senior-software-engineer-aureo`
|
||||||
|
Both render the category fallback ("Engineering Jobs", "No jobs were found. Loading...") — these jobs are **not live** (Niceboard falls back to the listing for removed jobs).
|
||||||
|
- The site is an Angular SPA: static HTML contains unrendered `{{ }}` bindings; the job list and job detail load client-side. `curl` to the host returns 0 bytes (likely bot filtering), so only the browser-tool fetch path worked.
|
||||||
|
- 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
|
||||||
|
|
||||||
|
- Fetched URL: `https://unitytech.wd1.myworkdayjobs.com/Unity/job/Stratford-upon-Avon-United-Kingdom/Software-Engineer_JOBREQ-2616426` (fetch 2026-10-01; live; full job description renders in text, incl. £42,900–£64,300 salary range).
|
||||||
|
- The posting page renders, but the application flow (Apply button and everything after) requires JavaScript — no form fields were observable in the fetched text.
|
||||||
|
- 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.
|
||||||
|
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 only hard anti-bot artifact found was Lever's reCAPTCHA.
|
||||||
Reference in new issue
Block a user