Skip to content

Form fields that look filled and are not, and two checks that read the page - #87

Merged
selfishprimate merged 8 commits into
mainfrom
seekter/2026-11-12-form-traps
Nov 12, 2026
Merged

selfishprimate merged 8 commits into
mainfrom
seekter/2026-11-12-form-traps

Conversation

@selfishprimate

Copy link
Copy Markdown
Owner

Lessons from the runs of 5 to 12 November.

Scripts

  • posting.mjs now tells Ukrainian and Russian apart. A Ukrainian posting on an English Ashby page came back CLEAR on 5 Nov because there were no Cyrillic stop words at all.
  • live.mjs calls an expired Teamtailor ad CLOSED. Teamtailor keeps answering 200 with "This position is no longer active" on the page; only a removed ad answers 404 (6 Nov).

Forms

  • Ashby's form query comes back null with HTTP 200 when it also asks for locationName workplaceType, which looks exactly like a wrong slug. The example asks for title and applicationForm only (12 Nov, three tenants).
  • Four fields that look filled and are not: an Ashby start-date text input that is really a calendar, a Greenhouse select that shows its value after PICKOPT and submits empty, Rippling's resume parse pre-answering fields, a Teamtailor phone picker stuck on the employer's country.
  • Recooty and GlobalLogic added; both end on a reCAPTCHA.

Sources

  • An Easy Apply card can hide the employer's own Greenhouse form: ESW went from fit 3 on the card to fit 5 on its own board and was sent as a company form.
  • freehire's arc.dev records are LinkedIn postings (17 of 37 on 5 Nov).
  • Jobicy tags with a space work, but match loosely.

Tests: 126/126.

selfishprimate and others added 8 commits November 12, 2026 13:35
Measured 5 Nov 2026: a posting written in Ukrainian on an English Ashby page came back CLEAR from posting.mjs, because the language guess had no Cyrillic stop words at all. Ukrainian and Russian now each have a list of the words the two languages spell differently, so the guess tells them apart and a Ukrainian-only posting closes the door.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Measured 6 Nov 2026: live.mjs called a Teamtailor posting OPEN because the job page answered 200, while the page itself said "This position is no longer active". Only a removed ad answers 404. The check now reads the page text on a 200.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Measured 12 Nov 2026 on three tenants: adding locationName and workplaceType to the ApiJobPosting selection made jobPosting null with HTTP 200, which reads exactly like a wrong slug or a closed posting. The example now asks for title and applicationForm only; the location comes from the public board API. An organization name with spaces works as the slug.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Ashby (Spruce, 9 Nov 2026): a "When can you start?" text input is a calendar; a sentence typed into it fails as a missing entry.
- Greenhouse (ESW 5 Nov, Financial Times 6 Nov): a select picked with PICKOPT shows its value and submits empty; picking it by keyboard registers it.
- Rippling (Multiplayer Studio, 9 Nov): the resume parse pre-answers the SMS consent and Current company and cuts the first name.
- Teamtailor (ENSEK, 9 Nov): a phone picker opened on the employer's country turns a national number into a foreign one; typing the full international number switches the flag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Measured 11 Nov 2026. Recooty fills name, email and phone from the uploaded resume. GlobalLogic's country field is a Bootstrap selectpicker that ignores the native select, and its first submit can fail silently even after the reCAPTCHA is ticked; a second try went through.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Measured 5 Nov 2026: ESW's Senior Product Design Engineer was listed as Easy Apply at fit 3 from the alert card alone, while the employer's Greenhouse board held the same role, which read as fit 5 and went out as a company form the same day. Probe the employer's board before writing the Easy Apply list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Measured 5 Nov 2026: 17 of a day's 37 candidates came through arc.dev and every one resolved to a LinkedIn job, five of them already tracked under their LinkedIn id. Dedup and read them as LinkedIn postings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Measured 9 Nov 2026: six spaced tags returned 148 unique rows, mostly unrelated, because the matching is semantic. Filter on jobTitle; no new application came of it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@selfishprimate
selfishprimate merged commit 2b833d2 into main Nov 12, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant