If you hire HVAC technicians more than once a year, two free tools deserve an hour of your time. The first is Google's job-posting structured data, a block of code on each role page that tells Google exactly what the job is. The second is Job Bank, the federal government's job board, which is free for employers. Used together with a proper careers section on your own site, they let one well-written ad reach much further.
This guide explains both in plain language, as of October 2026, from the official documentation. It is written for owners and office managers, not programmers.
Part 1: what job-posting structured data does
Structured data is a standard way of labelling the content on a web page so search engines can read it reliably. For job pages, Google uses a format called JobPosting. When a page carries correct JobPosting markup, it becomes eligible for Google's job search features, where people see roles in a dedicated job listing layout.
Eligible is the key word. Google's documentation sets the requirements; meeting them doesn't promise anything is shown.
The five required properties
Google lists five required properties. Here is each one, with an HVAC example.
| Property | What it holds | HVAC example |
|---|---|---|
| title | The job title only, with no codes, dates, pay or company name | "Residential HVAC Service Technician" |
| datePosted | The original posting date, in a standard date format | 2026-10-15 |
| description | The full job description, with responsibilities and qualifications | The full text of your ad |
| hiringOrganization | Your company name | [Company name] |
| jobLocation | The physical place of work, including country | [Town], [Province], CA |
Recommended properties worth adding
Google also recommends several more. The ones that matter most for HVAC shops:
- baseSalary. Google says this must be the employer's actual base salary, provided by the employer, and that it must also appear on the visible page. Use a minimum and maximum for a range, and the right unit (hour or year).
- employmentType. Full time, part time, contractor and so on.
- validThrough. The date the posting expires, if it has one.
- identifier. Your internal reference for the role, useful if you run several similar postings.
- directApply. Whether someone can apply directly from your page with a short process. Google notes it is still developing how it uses this.
Avoid the remote-work property for field roles. Google says it is only for jobs that are 100% remote, and an HVAC service technician obviously isn't.
The rules that trip people up
From Google's guidelines, the ones that matter most for contractors:
- One job per page. Markup belongs on the most specific page for a single job, not on a page listing several roles.
- Markup must match the page. Everything in the markup must describe a job visible on the same page.
- No expired jobs. When a role closes, remove the markup, set a past expiry date, or remove the page. Google warns that failing to act can lead to a manual action against the site.
- No fake or evergreen postings. Google says résumé collection when you aren't currently hiring, and promotional content disguised as job postings, are not eligible.
- There must be a way to apply. A posting with no application route is not eligible.
Rule 4 is the one HVAC shops break most often, usually with a permanent "always hiring techs" page. Keep that page for your general careers story, but don't mark it up as a job posting.
Getting pages crawled quickly
Google's documentation recommends its Indexing API over sitemaps for job posting URLs, because it prompts faster crawling and can also request removal when a job closes. A normal sitemap is still recommended for the whole site. For a contractor posting a handful of roles a year, a sitemap plus prompt removal of filled roles is usually enough; the Indexing API is worth it for larger or multi-branch employers.
Part 2: Job Bank for HVAC contractors
Job Bank is run by the Government of Canada. Its employer page (modified 2026-09-24) describes these features:
- Free advertising. Employers can advertise jobs for free.
- Guided job creation. Postings are built from predefined job titles, skills and education choices.
- Both official languages. Published postings are made available in English and French automatically.
- Verified label. After your employer file is approved, postings are reviewed and shown with a "Verified job" label.
- Job Match. Postings are matched to job seekers' profiles. You can review ranked profiles, invite people to apply and see an activity report.
- Targeting. You can target groups such as students or apprentices, which suits apprenticeship openings.
- Wider reach. The page says postings reach candidates through several job boards across Canada.
Setting it up, step by step
- Create a Job Bank user account.
- Create an employer file. You will need your 15-digit CRA payroll account number, and the business details must match your CRA documents.
- While the file is pending, you can create and submit postings. Once it is approved, postings are reviewed and labelled as verified.
- Write the posting from your existing ad, choosing the closest predefined job title, and include the pay, ticket and location exactly as they appear on your careers page.
- Check the Job Match activity report weekly and invite promising profiles.
Because the account uses your payroll number, you should create it yourself. We can write and maintain the postings once it exists.
Part 3: how the pieces fit together
A sound setup for an HVAC contractor has one source of truth: the role page on your own website. Everything else copies from it.
- Your careers role page holds the full ad, the pay, the ticket and how to apply, with JobPosting markup.
- Job Bank carries a matching posting.
- Paid job boards you already use carry matching postings.
- Social posts and referral texts link back to the role page.
When the role is filled, you close it in one place first, then remove it everywhere else the same day. This prevents the classic problem of a tech calling about a job you filled six weeks ago.
A short worked example
Suppose you post a gasfitter role on your site with correct markup, on Job Bank, and on one paid board, and you track where each applicant came from. After four weeks you have 14 applicants: 5 from Google job features and organic search, 4 from Job Bank, 3 from the paid board and 2 from referrals. If the paid board cost you a few hundred dollars and produced 3 applicants while the two free channels produced 9, you know where next month's money should go. You only get that answer if the tracking is set up before you post.
Where to go next
The content of the posting matters as much as the markup. The job ad guide covers what to write and the BC and Ontario posting rules. If you sponsor apprentices, Job Bank's apprentice targeting pairs well with the approach in the apprenticeship guide.
Our careers page service builds all of this for you. Call, text or email if you want us to check your current job pages.
Frequently asked questions
Do I need a developer to add job-posting markup?
Not always. Some website platforms and plugins generate it. Someone still needs to check that the markup matches the visible page and that expired roles are handled, which is where most problems start.
Does job-posting markup make my role appear in Google?
No. Markup makes a page eligible; Google decides what to show. Correct, complete markup on a clear, single-role page simply gives you a fair chance.
What do I need to post on Job Bank?
Job Bank's employer page says you need a Job Bank account and an employer file, which requires your 15-digit Canada Revenue Agency payroll account number. Business details must match your CRA records.
Should the Job Bank posting match my careers page exactly?
The key facts should match: title, ticket, location, pay and how to apply. Mismatched pay or titles confuse applicants and, in provinces with posting rules, can create compliance questions.
Sources
- Google Search Central: Job posting structured data (2026-10-23)
- Job Bank: Employers (2026-10-23)