Skip to content

Six traps from Turkish job boards, and --json accepts a BOM - #71

Merged
selfishprimate merged 8 commits into
selfishprimate:mainfrom
dckaratas:seekter/2026-10-24-tailored-cv-and-turkish-boards
Oct 25, 2026
Merged

selfishprimate merged 8 commits into
selfishprimate:mainfrom
dckaratas:seekter/2026-10-24-tailored-cv-and-turkish-boards

Conversation

@dckaratas

@dckaratas dckaratas commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Six lessons from two weeks of runs on Turkish job boards, one commit each.

  • --json accepts a UTF-8 byte-order mark. Windows PowerShell 5.1 writes one, and every add/move from that shell was refused. A test covers it.
  • Talentics (new ATS file): no account, autofill from the CV, but the parsed work history comes back with every month as January.
  • Recruitcrafts: the email is checked only on Continue, so an address that already has an account turns a filled form into a hand-off. A bank careers site with a password wall goes in the identify table too.
  • Peoplise: the first step differs per tenant; read each consent label before you decide to hand it off.
  • Kariyer.net: replies show only at /tum-basvurular, never by mail; a mandatory question can have no truthful option; the cover-letter step's mechanics.
  • freehire: tr.whatjobs.com returns NXDOMAIN, so whatjobs records are leads only.

tailor_cv is taken out, per review: the first commit is reverted by the last one, together with the two sentences that pointed to it, so nothing about it lands. It will come back as a proposal issue first.

A leak scan against the candidate profile and the email, phone and postcode patterns found nothing. node --test tests/seekter.test.mjs: 106 pass.

🤖 Generated with Claude Code

dckaratas and others added 7 commits October 24, 2026 11:37
tailor_cv (off by default) builds a CV per posting from the profile before
every form that takes a file: reordered and reworded toward the posting's
requirements, never a skill, number or date the profile lacks. Boards that
send the CV stored in the account get a tailored cover letter instead.

Measured 12-13 Oct 2026: dates floated right with CSS were extracted after
the role's bullets, so the format rules keep them inline; pdftotext without
-enc UTF-8 dropped Turkish letters from a correct PDF; and a Java posting
asked for Spring MVC and Agile, both true and both missing from the profile,
which is why an unclear requirement is a question for the candidate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Windows PowerShell 5.1 writes UTF-8 files with a BOM, and JSON.parse
rejects it, so every add and move written from that shell failed with
"is not valid JSON". Measured 23 Oct 2026: the day's tracker records written
with Set-Content were refused and had to be rewritten. The CLI now strips
the mark; a test covers it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A Turkish employer's Talentics page (measured 14 Oct 2026) takes no account
and fills the whole form from the uploaded CV, then builds a work history
in which every month came back as January. That list is what the recruiter
reads, so it has to be corrected before submitting.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The agency ATS asks for no account up front, then refuses an address that
already has one with "already registered, log in" once name, phone, CV
and consent are filled. Measured 22 Oct 2026: two postings from one agency
both became hand-offs this way, after a tailored CV was built for each.
Also a bank's careers site whose Apply opens a password sign-in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The bank tenant measured on 9 Oct asks three mandatory consents, one of
them sharing data with the parent holding, which forces a hand-off. An
airline tenant on 23 Oct asked for phone and CV upload as well and had only
the two consents that belong to the application. Read the labels each time.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…answer

Measured 12 Oct 2026: 20 Kariyer.net applications over six days produced
no mail at all; the employer's views and downloads show only at
/tum-basvurular, so an inbox sweep has to read that page. On 23 Oct a
senior posting made "which university year are you in" mandatory with
only years 1-4, which is a hand-off, not a guess. Plus the cover-letter
step's mechanics (13 and 24 Oct): Quill fills by setText, the name field
takes typing only after a real click, and employers without questions get
a two-step form.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Measured 17 Oct 2026: tr.whatjobs.com returns NXDOMAIN, so the Turkish
postings freehire carries under whatjobs-tr cannot even be opened. The
title and company in the record are the only lead to the employer's own
posting.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@selfishprimate selfishprimate left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this one, and for the measurements; most of it is exactly what reference/ is for.

Ready to merge as they are

  • --json accepting the UTF-8 byte-order mark, with its test. A real bug for anyone on Windows PowerShell 5.1.
  • Talentics (new ATS file), Recruitcrafts, Peoplise per-tenant first step, the Kariyer.net notes (replies only at /tum-basvurular, the question with no truthful option, the cover-letter step), the Garanti BBVA account wall, and the whatjobs NXDOMAIN note. Measured, dated and person-independent.

tailor_cv needs a proposal issue first
tailor_cv is a new feature, and it changes how /seekter-run behaves (§4). CONTRIBUTING asks for a proposal issue before anything of that size, and before a change to a skill's behaviour: see "Propose before you build", and the proposal template under New issue. Please open one so we can agree on the direction before it lands. A few points the discussion needs to settle:

  1. It bypasses the resume engine. Resumes are kept as data in resume.json, printed by scripts/resume.mjs, and held to the profile by validate. The tailored CV is hand-written HTML printed with Chrome, and the only number check is a manual look at the fact bank. Neither resume.mjs validate nor claims.mjs runs on it, so the kit's guarantee that no invented number reaches a form doesn't hold on this path. If tailoring goes in, it should be a per-posting variant of resume.json, printed and validated by resume.mjs like the other resume types.
  2. It adds an outside dependency. The verification step relies on pdftotext (poppler), which isn't installed by default on macOS and goes against the kit's Node-only, no-packages rule.
  3. It contradicts the documented behaviour. The Resumes docs say Seekter does not tailor resumes per posting, so this is a product decision rather than a reference note.
  4. Small one: the record step says to put the file name in --notes; records are now written through --json, so it's the notes field.

Could you split this PR? Everything except tailor_cv (the skill line, tailored-cv.md, the settings key and its check, and the Kariyer.net sentence that points to it) can be merged now, and tailoring can come back as its own PR once the proposal issue has settled the approach.

Review on this pull request: a per-posting CV changes how /seekter-run
behaves, bypasses resume.mjs validate and claims.mjs, and depends on
pdftotext, so it needs a proposal before it lands. This reverts the
switch, its settings check, tailored-cv.md and the run step, and drops
the two sentences elsewhere that pointed to it. The board and ATS notes
stay.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dckaratas dckaratas changed the title A CV tailored to each posting, and six traps from Turkish boards Six traps from Turkish job boards, and --json accepts a BOM Oct 25, 2026

@selfishprimate selfishprimate left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for splitting it. The remaining changes (the BOM fix with its test, and the Talentics, Recruitcrafts, Peoplise, Kariyer.net and whatjobs notes) are good to go. Tailoring can come back through a proposal issue.

@selfishprimate
selfishprimate merged commit aaa1e41 into selfishprimate:main Oct 25, 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.

2 participants