Skip to content
Hiring and retention

Writing a job post that attracts candidates (and follows the law)

By · Published · 8 min read

An employer standing on a job site, looking over notes

Monday, 7 a.m. Your residential cleaner post has been online for ten days, and you have three applications: someone who lives 200 km away, someone asking how much it pays, and your brother-in-law. The problem is not just the labour shortage: it is often the post itself. Here is how to write a job posting that answers the real questions up front, makes people want to apply and follows the Charter.

What workers read first

A service-trades worker reads your post on a phone, often in a truck, between two jobs. They are looking for three answers, in this order: how much, when, where. If those answers are not at the top, they move on to the next post. Your paragraph about the company's mission? They might read it later. Might.

So put this information in the first five lines, in numbers rather than adjectives:

  • Pay: an hourly rate or a precise range, plus premiums (nights, tips, mileage).
  • Schedule: "Monday to Friday, 7 a.m. to 3:30 p.m." beats "flexible hours" every time. In snow removal, say it straight: on call, at night, during storms.
  • Location: the town or area, and whether a vehicle is supplied.
  • Duration: permanent or seasonal, full time or part time.

Pay, above all, should never be hidden. In its advice to employers, the Government of Québec puts it plainly: the higher your selection criteria, the more attractive the pay you offer needs to be. For your overall strategy, also read our guide to hiring during a labour shortage.

Do it now: check that pay, schedule and location appear before the tenth line of your post. If not, move them up.

A clear title and tasks people can picture

The title is what people type into the search bar. "Residential cleaner" will be found. "Cleaning ninja" will get a smile, then sink to the bottom of the results. Québec.ca gives the same advice: a precise title everyone understands. In French, write it in both the masculine and feminine forms so nobody feels ruled out before they start reading.

Next, describe a real day. Not "general cleaning," but "three or four houses a day, in a team of two, products supplied: bathrooms, kitchens, floors." For a landscaping labourer: "laying sod and paving stones, mowing, moving materials." The person should be able to picture themselves doing it and decide alone whether it is for them.

Also separate requirements from assets. A requirement is something the job cannot be done without: a driver's licence if the person drives the truck, the card required on the job site. Everything else (snowblower experience, knowing your perennials) goes under assets. Every unnecessary requirement costs you people who would have done just fine.

Do it now: keep three requirements at most. For each one, ask yourself: "Could someone do the job without this?" If yes, it is an asset.

Words that scare people away

Some phrases show up in thousands of posts and say nothing. Experienced workers have learned to decode them. "Available at all times" reads as "say goodbye to your life." "Competitive salary" reads as "we are embarrassed by the number." And no, "we're like a family" is not a benefit if the pay shows up late.

AvoidWrite instead
Competitive salaryThe actual hourly rate, and when it is reviewed
Available at all times"On call on storm nights, November to April"
Young, dynamic team"Team of six, crew lead on site" ("young" touches on age, a protected ground)
Must be in good physical shape"Lift 25 kg bags of soil several times a day"

Watch your tone, too. A post in capital letters, full of "MANDATORY" and "PLEASE DO NOT APPLY IF…", sounds like a boss who yells. One line about what you actually provide (winter gear, guaranteed hours, a heated truck) does more than a paragraph of superlatives.

Do it now: search your post for "competitive," "dynamic," "versatile" and "at all times." Replace each one with a fact someone could check.

What the law forbids in a job post (and what it allows)

In Quebec, the Charter of Human Rights and Freedoms governs hiring. Section 16 prohibits discrimination in hiring, and section 11 prohibits publishing a notice that involves discrimination: your post is covered. Section 18.1 also prohibits asking, in an application form or an interview, for information about the protected grounds in section 10: race, colour, sex, gender identity or expression, pregnancy, sexual orientation, civil status, age (except as provided by law), religion, political convictions, language, ethnic or national origin, social condition and handicap. So your post should never include:

  • "Strong man wanted" or "ideal for a female student" (sex, age, social condition);
  • an age range, a date of birth or a request for a photo;
  • civil status, number of children or a question about pregnancy;
  • general health questions: the CDPDJ states that these fall under the handicap ground.

The Charter does, however, allow you to require the aptitudes or qualifications a job genuinely calls for (section 20): a driver's licence to drive the truck, the ability to lift specific loads. The test is simple: does the criterion describe the work, or the person? Section 18.2 also protects people with a criminal record for an offence unrelated to the job, or for which they have obtained a pardon.

On language, the job offer must be available in French. An English version is allowed if the French version is distributed at the same time, through the same type of medium. Requiring another language is allowed only if the nature of the work calls for it and you have taken reasonable steps to avoid it; according to Éducaloi, the post must then say why. And the wage must meet the minimum: $16.60 an hour at the general rate since May 1, 2026 ($13.30 for tipped employees). What that rate covers: Minimum wage in Quebec: what it covers and what it does not.

This is general information, not legal advice: for a specific case, check with the CDPDJ, the Office québécois de la langue française or the CNESST. Do it now: reread every criterion with the question "work or person?" and delete the ones aimed at the person.

A template to copy for the service trades

This structure works just as well in residential cleaning as in snow removal or painting. Replace whatever is in brackets with your real numbers, and keep the order: how much, when, where first.

[Trade title] – [permanent or seasonal, full time or part time] – [town or area]

Pay: $[actual hourly rate] an hour + [premiums].

Schedule: [days and hours]; [guaranteed hours]; [on call: when, with how much notice].

Location: [leave from the yard, or at clients' homes in the area]; [vehicle supplied or not].

Your day: [3 to 5 concrete tasks, with volume].

Requirements: [3 at most, all tied to the work].

Assets and what we provide: [useful experience; clothing, tools, training].

How to apply: [how, and how quickly you reply].

A snow removal example: "Snowblower operator – seasonal, November to April – Saint-Jérôme. $[your rate] an hour, night premium. On call during storms, text notice the day before. Tractor supplied. Requirements: valid driver's licence, available at night. Asset: snowblower experience. Coat and gloves supplied." Nobody has to wonder whether it is for them: it is all written down.

Do it now: fill in the template for your hardest-to-fill position and have one of your employees read it. If they have a question, the answer is missing from the post.

Publish, then reply fast

On GPP Emploi, publishing a post is free. Choose "Offre d'emploi" (job offer) if you are hiring an employee whose schedule and work you direct, or "Demande de soumission" (request for quotes) if you want a result delivered by a self-employed worker who sets their own price. Every post is checked automatically before it goes live (minimum wage, discriminatory criteria, signs of a scam) and stays online for 45 days. Everything is explained on the employers page, and you can create your employer account in a few minutes.

Fill in every field carefully: the match score compares trade, location, availability, cards, pay and working languages, and nothing else. You only pay for results, when a contact is accepted: usually 2 credits, or $50, depending on trade and region (see pricing). And reply: after 14 days without an answer, the application closes on its own and your response time is shown publicly on your posts. Why every day counts: Responding to candidates fast: why 48 hours make all the difference.

Do it now: block ten minutes a day in your calendar to answer applications, even with a simple "thanks, we'll get back to you Friday."

The bottom line

Before you publish, reread your post on your phone as if you were the candidate, standing in a client's driveway. If you know how much, when and where within ten seconds, it is ready.

Frequently asked questions

What should a job posting include in Quebec?

A precise title, pay, schedule, location, duration, main tasks, requirements tied to the work and a short description of the company. Québec.ca also reminds employers that the posting must be non-discriminatory.

Can I ask for age or a photo in a job posting?

No, not as a criterion. Age is a protected ground under section 10 of the Charter of Human Rights and Freedoms, and section 18.1 prohibits asking for information about those grounds. A photo reveals several of them, so it is best not to ask for one.

Can I require English in a job posting in Quebec?

Only if the nature of the work calls for it and the employer has taken reasonable steps to avoid the requirement. The posting must be available in French. For a specific case, the Office québécois de la langue française can help.

Can I turn down a candidate who has a criminal record?

Section 18.2 of the Charter prohibits refusing to hire someone solely because they were convicted of an offence unrelated to the job, or one for which they have obtained a pardon. For a specific case, check with the CDPDJ.

How long does a job post stay online on GPP Emploi?

A post lasts 45 days, and publishing it is free. You only pay when a contact is accepted.

Sources

Read next