Repository navigation
Six traps from Turkish job boards, and --json accepts a BOM - #71
Conversation
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
left a comment
There was a problem hiding this comment.
Thanks for this one, and for the measurements; most of it is exactly what reference/ is for.
Ready to merge as they are
--jsonaccepting 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:
- It bypasses the resume engine. Resumes are kept as data in
resume.json, printed byscripts/resume.mjs, and held to the profile byvalidate. The tailored CV is hand-written HTML printed with Chrome, and the only number check is a manual look at the fact bank. Neitherresume.mjs validatenorclaims.mjsruns 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 ofresume.json, printed and validated byresume.mjslike the other resume types. - 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. - 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.
- Small one: the record step says to put the file name in
--notes; records are now written through--json, so it's thenotesfield.
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>
selfishprimate
left a comment
There was a problem hiding this comment.
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.
Six lessons from two weeks of runs on Turkish job boards, one commit each.
--jsonaccepts a UTF-8 byte-order mark. Windows PowerShell 5.1 writes one, and everyadd/movefrom that shell was refused. A test covers it./tum-basvurular, never by mail; a mandatory question can have no truthful option; the cover-letter step's mechanics.tr.whatjobs.comreturns NXDOMAIN, so whatjobs records are leads only.tailor_cvis 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