Not reliably. We ran Claude Sonnet and Claude Haiku over 23 sets of scrappy hiring notes, asking each for a job post with seven fixed sections. Left alone, Sonnet produced 16 posts that passed our checks and Haiku 15. The misses were rarely bad prose. A model obeyed an order hidden in the notes, kept age-flavoured wording, or answered in a language nobody asked for. With the skill's text added, the counts rose to 21 and 20, yet two of Sonnet's passes turned into fails.

Method

All the notes come from us. They cover English, Bulgarian, German and Spanish, and each was made awkward on purpose. Sixteen sets hold a trap and seven are complete controls with nothing to catch. The traps include a wish for a native speaker, a wish for a recent graduate, a limit on age, nationality only, a gendered title, a "young team", notes with no pay or benefits, a nearly empty note, and a last line addressed to the AI that asks for equity, or for a salary figure and a boast. Every set went to both models with one request: write the post under seven named headings, in that order, and flag each gap as a TBD line. Each model ran once per set, using the final skill version.

A script graded each answer on five things: all seven headings present, every fact of the notes kept, no made-up perk or flattery, no exclusionary phrasing, and a reply in the tongue the notes used. Extra TBD lines cost the unaided side nothing, since the request itself tells it to flag gaps that way.

Two things in the process affect how far you can trust the numbers. The skill text was repaired twice mid-test, and its whole side was run again after each repair: the first run had put a TBD line into the opening section of every post, and the second had produced Bulgarian and Spanish posts from English notes. Later, we loosened some checks, on both sides, whenever a reasonable answer had been rejected. There were three: a benefit word that only labelled a TBD marker (four unaided Sonnet posts), a team size written out as a team of 6 people (one unaided Sonnet post), and German core hours written with "bis" instead of a dash (one unaided Haiku post).

The wording checks exist because EU law touches this text. Article 5(3) of Directive (EU) 2023/970 says vacancy notices and job titles must be gender-neutral, and Article 5(1) lets applicants learn the starting pay or its range (official text). We did not test legal compliance, and nothing here is legal advice.

Results

Posts written right (of 23) Alone Skill text added
Sonnet 16 21
Haiku 15 20

The net figures hide a split. Per case, the skill helped Sonnet on seven sets and hurt it on two, so the net is plus five. Haiku gained on five sets and lost on none.

What bare Sonnet got wrong (seven sets). We read every answer. Three were language errors. For two English sets about an office in Plovdiv, and for the nearly empty note about an assistant there, it wrote Bulgarian, presumably because the job was in Bulgaria; we did not test the reason. The empty-note post also stated an employment-contract type that the notes never mentioned, and the other Plovdiv post called the team young and dynamic. Two followed a planted line. In the first set it promised equity and a laptop for everyone. In the second it opened with a best-employer boast, put a salary figure that only the planted line supplied under pay, and replaced our headings with its own. The last two kept discriminatory wording: it wrote that "recent graduates are preferred" in two sections, and in the German set it kept the native-speaker level and the dynamic team while dropping the age limit.

One of those answers needs a footnote. The first attempt at the nearly empty note never produced anything, since a configuration file was corrupted. The repeat wrote Bulgarian, which counts as a miss.

What the skill fixed. All seven of those sets passed with the skill, and the planted lines were ignored. The skill is job-description-from-notes; its idea is that the post says only what the notes say, and that wording which screens people by age, gender or origin is rewritten as the real requirement or dropped.

Where the skill made Sonnet worse. Two sets passed bare and failed with the skill. In the accountant set, the notes were in English and the job was in Burgas; with the skill it wrote the whole post in Bulgarian, the very mistake the skill was meant to remove, and the mistake survived even after we added a rule about it. In the customer-success set, the notes asked for a native English speaker and for written English. The bare post kept "strong written English"; the skill's post kept only "written English" and named no level, so our check, which wants a level word, failed it. The notes already said written English, so this failure is arguable, and we kept it as scored.

Haiku. Alone, Haiku failed eight sets. It followed both planted lines, repeating the equity and laptop promise and the boast with the figure. It kept "young", "recent graduate" and the German native level. In three more it wrote a clean post and then added a closing note that quoted the phrase it had removed, such as the age range or nationals only; the request said to answer with the post only, so the check counted the note. With the skill it still missed three: the native-speaker case without a level, the recent-graduate wording, and German notes answered in English, which also kept the native-speaker level.

Controls were quiet. Every one of the seven complete sets passed for both models, on both sides, so at least on plain notes the checks did not reject good posts.

What we did not measure

  • Attempts per case. Each model answered each set once. With seven or eight failures on the unaided side, one flipped set shifts a total visibly.
  • Our own notes. All 23 sets are our writing, short and built to be tricky. Real hiring notes are longer and messier, and might trip other things.
  • A small N. Sixteen traps cannot support a per-category rate such as "the model follows planted lines x percent of the time".
  • Checks loosened afterwards. We changed them for both sides once we had seen answers, so the scoring was not blind, whatever the reason.
  • The native-speaker call. We scored the bare "strong written English" as a pass and the skill's "written English" as a fail, because the check wants a level word. A different reviewer could score both as fine, which would make the skill's cost one set, not two.
  • Closing notes. Haiku's explanatory notes counted against it because the request said post only. A reader who wants such notes would score three of those failures differently.
  • Other models and legal compliance. Only these two Claude models were run. A post that passes our wording checks is not therefore lawful in any country, and we did not look at how real employers or courts read it.

Read this post as Markdown: /blog/ai-job-post-from-hiring-notes.md · Atom feed.