Drafting a Job Posting With AI That Attracts the Right Tech

Why this matters

Ask a chat assistant for "a job posting for a service plumber" and you get a fluent page built from ten thousand other job postings, which is the problem twice over. It describes an average job rather than yours, so the tech who would fit your shop reads it and keeps scrolling. And it reproduces the phrasing that is common in job ads and unlawful in a good share of them: "young and energetic team", "native English speaker", "he will run his own truck". The model is not biased on purpose; it predicts the words that usually appear. The fix is to feed it the facts only you have, then run a legal pass and a truth pass over what comes back.

Pass one: feed it the job, not the job title

The model knows nothing about your shop. Everything it does not know it fills with the average. So before prompting, write an input sheet of facts a candidate actually decides on. For a service tech those are:

  • The work itself. Call mix (service versus install versus new construction), typical calls per day, residential or commercial, the area covered.
  • License level. What credential the role needs on day one and what you will help them reach. Use your state's own title for it.
  • Pay basis and range. Hourly, salary, flat rate per job or a commission on sales, and the actual range. A tech choosing between three shops compares this first.
  • Schedule. Days, start time, how overtime happens, and the on-call rotation in plain numbers.
  • Truck and tools. Take-home or not, what the shop supplies, what the tech brings.
  • The physical reality, honestly. What gets lifted, how often, attics and crawlspaces, ladders.
  • What a good first year looks like, and who they report to.

Then prompt with constraints:

Write a job posting for the role described below. Use only the facts given; do not add benefits, perks or requirements I have not listed. Plain, direct language a working tradesperson would use. No references to age, gender, national origin, citizenship, religion or disability. Put pay and schedule near the top.

The constraint list reduces the problem; it does not remove it, because coded language is the model's default register for this genre. That is what pass two is for.

Worked example, the input sheet. A residential plumbing shop with 11 employees in one state is hiring a service plumber:

  • Service and repair, about 70 percent residential repair and 30 percent water heater and fixture replacement, 4 to 6 calls a day, one county.
  • Journey-level plumbing license required; the shop pays renewal and continuing education.
  • Hourly, with a stated range, plus a percentage of each approved replacement sale the tech recommends.
  • Monday to Friday, 7:30 start; on-call one week in five, with a per-night stipend and call-out pay on top.
  • Take-home van stocked by the shop; the tech brings hand tools, the shop supplies power tools and the camera.
  • Water heaters handled with a dolly and a second person over a stated weight; regular lifting about 50 lb; crawlspaces weekly.
  • Reports to the service manager; ride-along week first.

Pass two: the legal pass

Read the draft phrase by phrase for language that tells a protected group it need not apply. The federal floor: Title VII forbids ads indicating a preference based on race, color, religion, sex or national origin (42 U.S.C. 2000e-3(b)) for employers of 15 or more; the ADEA does the same for age 40 and over (29 U.S.C. 623(e)) at 20 or more; the ADA covers disability at 15 or more; and the immigration law's anti-discrimination provision reaches citizenship status at 4 or more employees and national origin at 4 to 14, the employers Title VII misses (8 U.S.C. 1324b). The state layer routinely goes lower: New York and New Jersey cover employers of any size, and most states set their own threshold below the federal one. Assume your posting is covered. This is not legal advice; if a requirement in your posting turns on a legal question you cannot answer, such as whether a criminal-history screen or a citizenship requirement is lawful for your situation, take the posting and the reason for the requirement to an employment attorney before it goes live.

Worked example, what the draft from that input sheet contained. Despite the constraints, the first draft carried eight problem phrases:

Draft phrase Problem Rewrite
"Join our young, energetic team" Age preference "Join a crew that takes pride in clean, careful work"
"Recent trade school grads encouraged to apply" Age-coded when it is the only invitation "New and experienced plumbers welcome; we train"
"Native English speaker" National origin "Explains problems and options clearly to homeowners", which is the real requirement
"He will run his own van" Sex "You will run your own stocked van"
"Must be a U.S. citizen" Citizenship discrimination unless a law or government contract requires it, and nothing here did Removed; "Must be authorized to work in the U.S." if you want to say anything
"Clean criminal record required" Blanket screens are risky under EEOC guidance, and many states and cities limit when you may ask, California among them for employers of five or more Removed; any lawful check happens later, per your attorney and your state's rule
"Must lift 100 lb regularly" Overstates the job, and an inflated physical requirement screens out disabled applicants who could do the real work "Regular lifting around 50 lb; heavier items with a dolly and a second person"
"Competitive pay" Says nothing, and in a pay-transparency state it is a violation The actual hourly range and the commission basis

Two notes on that table. "Journey-level" stayed: it is the license the job requires, and a credential is not a coded preference. Some states use "journeyman" as the formal license title, and quoting the official title is fine. And the citizenship line came from the model, not the owner: it appears in enough postings that the model treats it as standard.

Pay transparency, the fastest-moving layer. As of 2026 a growing list of states requires a pay range in the posting itself, with thresholds ranging from Colorado, which reaches an employer with a single employee in the state, through New York at 4, to California, Washington and Illinois at 15, and several more states and cities added in 2025. Check your own state's labor department page each time you post, because this list has changed every year since 2021.

Pass three: the truth pass

The legal pass catches what the model copied from bad postings. The truth pass catches what it invented to make yours sound complete. Underline every benefit, perk, requirement and claim, and match each to a line on your input sheet.

Worked example, the inventions. The draft promised "a full benefits package including 401(k) match" and "a clear path to management". The shop offered health coverage and no retirement match, and had one service manager role, filled. Both came out. A candidate who takes the job and finds the 401(k) match was never real does not stay long, and tells the next three techs why.

Count of what that draft needed: eight legal rewrites and two inventions removed, ten changes to a page the owner had been ready to post as it was.

What makes it attract the right tech, once it is clean

A posting that survives both passes is lawful and true; that does not make it good. The things that move a working tech who is not actively looking:

  • Pay and schedule in the first three lines. Burying them reads as hiding them.
  • The on-call rotation in numbers. "One week in five" reads very differently from "some on-call required".
  • One sentence about the work that only your shop could write. For the example shop: "Most of our calls are repeat customers who ask for their plumber by name." The model cannot write that sentence, because it is not in its training data. It is in your call log.
  • Short. Most good postings fit on one phone screen plus a scroll. The model's default length is about twice that.

The last check: hand it to your best tech

Before it posts, give the cleaned draft to the tech you would most like to clone and ask two questions: "Would this have made you call us?" and "What would you want to know that isn't here?" In the example shop the answer to the second was immediate: how the on-call stipend compares with a normal day, and whether the van goes home with you on the off week. Both went in as one line each.

That check does something neither pass can. The legal pass removes what should not be there and the truth pass removes what is not true, but only someone doing the job knows what is missing. It also catches tone: a posting the model wrote in recruiter voice ("dynamic, fast-paced environment") reads to a tradesperson as a shop that does not know what the work is like. Your tech will say so in about four words.

What changes the answer

Commission or flat-rate pay. If pay is mostly per-job or commission, the posting must say so plainly, and pay-transparency states generally want the basis and a good-faith range, not "earn what you're worth". Some states also restrict how commission plans are documented; check yours.

Government or prevailing-wage work. Where public contracts make a citizenship or clearance requirement lawful, the posting may state it, but tie it to the contract ("this role works on federal facilities requiring") rather than making it a general condition.

Apprentice postings. Inviting apprentices is fine. Inviting only "recent graduates" or "young people starting out" is the age problem from the table. Say what the apprenticeship involves and leave out who you picture doing it.

Posting through an AI feature in a job board or your field software. The same passes apply, and you cannot always see the prompt. Treat the generated posting as a first draft from a stranger.

References

  • 42 U.S.C. 2000e-3(b), Title VII, notices and advertisements
  • 29 U.S.C. 623(e), Age Discrimination in Employment Act, advertising
  • 8 U.S.C. 1324b, unfair immigration-related employment practices
  • U.S. EEOC, enforcement guidance on the use of arrest and conviction records in employment decisions
  • See related: The Verify-Before-You-Send Rule for AI Output