---
title: "Write job postings and careers pages that candidates find in search"
description: "Help HR teams get job postings and careers pages found in search, with standard titles, JobPosting schema, careers structure, and ATS fixes."
canonical: "https://scalewithsearch.com/articles/seo-job-descriptions-hr"
date: "2026-03-20"
modified: "2026-09-25"
---
## Site navigation

- [Scale With Search](https://scalewithsearch.com/)
- Real estate
  - Real estate
    - [Real estate](https://scalewithsearch.com/for/real-estate)
- Work
  - Start here
    - [Send your brief](https://scalewithsearch.com/work#send-your-brief)
    - [Prepare your six-question brief](https://scalewithsearch.com/work#prepare-your-six-question-brief)
  - Build
    - [Site build, content library with SEO, signal desk](https://scalewithsearch.com/work)
- For your business
  - Trades and home services
    - [Auto body and collision shops](https://scalewithsearch.com/for/auto-body-and-collision-shops)
    - [Foundation and home repair contractors](https://scalewithsearch.com/for/foundation-and-home-repair)
    - [Garage door and fencing contractors](https://scalewithsearch.com/for/garage-door-and-fencing-contractors)
    - [HVAC contractors](https://scalewithsearch.com/for/hvac-contractors)
    - [Janitorial and commercial cleaning companies](https://scalewithsearch.com/for/janitorial-and-commercial-cleaning)
    - [Locksmiths](https://scalewithsearch.com/for/locksmiths)
    - [Moving companies](https://scalewithsearch.com/for/moving-companies)
    - [Pest control companies](https://scalewithsearch.com/for/pest-control-companies)
    - [Plumbing and electrical contractors](https://scalewithsearch.com/for/plumbing-and-electrical-contractors)
    - [Restoration and water or fire damage companies](https://scalewithsearch.com/for/restoration-and-water-fire-damage)
    - [Roofing companies](https://scalewithsearch.com/for/roofing-companies)
    - [Towing companies](https://scalewithsearch.com/for/towing-companies)
    - [Tree services and landscaping companies](https://scalewithsearch.com/for/tree-services-and-landscaping)
    - [Solar installers](https://scalewithsearch.com/for/solar-installation)
    - [General contractors](https://scalewithsearch.com/for/general-contractors-and-construction)
    - [Paving, concrete, and flooring contractors](https://scalewithsearch.com/for/paving)
  - Practices and professional services
    - [Bookkeeping and tax practices](https://scalewithsearch.com/for/bookkeeping-and-tax-practices)
    - [Dental practices](https://scalewithsearch.com/for/dental-practices)
    - [Family and criminal defense law firms](https://scalewithsearch.com/for/family-and-criminal-defense-law-firms)
    - [Med spas and aesthetics practices](https://scalewithsearch.com/for/med-spas-and-aesthetics)
    - [Personal injury law firms](https://scalewithsearch.com/for/personal-injury-law-firms)
    - [Veterinary clinics](https://scalewithsearch.com/for/veterinary-clinics)
    - [Gyms and fitness studios](https://scalewithsearch.com/for/fitness)
    - [Therapy and outpatient health practices](https://scalewithsearch.com/for/therapy-and-outpatient-health)
    - [Medical billing companies](https://scalewithsearch.com/for/medical-billing)
    - [Insurance agencies](https://scalewithsearch.com/for/insurance-agencies)
    - [Financial advisors](https://scalewithsearch.com/for/financial-advisors)
    - [Property management companies](https://scalewithsearch.com/for/property-management)
    - [Recruiting and staffing agencies](https://scalewithsearch.com/for/recruiting-and-staffing)
    - [Architects and interior designers](https://scalewithsearch.com/for/architects-and-interior-designers)
    - [Logistics and supply chain companies](https://scalewithsearch.com/for/logistics-and-supply-chain)
  - Agencies, MSPs, and manufacturing
    - [IT and managed service providers](https://scalewithsearch.com/for/it-and-managed-service-providers)
    - [Machine shops and precision manufacturers](https://scalewithsearch.com/for/machine-shops-and-precision-manufacturing)
    - [Marketing agencies and freelancers](https://scalewithsearch.com/for/marketing-agencies-and-freelancers)
    - [SEO agencies and consultants](https://scalewithsearch.com/for/seo-agencies-and-consultants)
    - [Small manufacturers and fabricators](https://scalewithsearch.com/for/small-manufacturers-and-fabricators)
  - Restaurants, shops, studios, and nonprofits
    - [Restaurants and hospitality businesses](https://scalewithsearch.com/for/restaurants-and-hospitality)
    - [Retail stores and ecommerce sellers](https://scalewithsearch.com/for/retail-and-ecommerce)
    - [Photographers, event planners, and travel agents](https://scalewithsearch.com/for/photographers)
    - [Churches and nonprofits](https://scalewithsearch.com/for/churches-and-nonprofits)
  - [All industries](https://scalewithsearch.com/for/)
- Learn
  - For your office
    - [Office job guides](https://scalewithsearch.com/guides/)
    - [Browser calculators](https://scalewithsearch.com/tools/)
  - Start here
    - [How it works](https://scalewithsearch.com/how-it-works)
    - [Free Starter Kit](https://scalewithsearch.com/kit/business-memory-starter-kit.zip)
    - [Synthetic specimen](https://scalewithsearch.com/specimen/working-session-specimen.zip)
  - Guides
    - [The Complete Guide to Business Memory for AI Agents](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [The Complete Small-Business Guide to AI Agent Governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [The Complete Guide to Leaving Vendor AI Memory](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - Articles by cluster
    - [Business memory](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [Agent governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [Migration and ownership](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - For machines
    - [llms.txt](https://scalewithsearch.com/llms.txt)
    - [llms-full.txt](https://scalewithsearch.com/llms-full.txt)
    - [Machine view](https://scalewithsearch.com/?view=machine)
- Company
  - Evidence
    - [Proof](https://scalewithsearch.com/proof)
  - Company
    - [About](https://scalewithsearch.com/about)

# Write job postings and careers pages that candidates find in search.

Your HR team posts each job on the company site and expects qualified candidates to find it. The applications all come from paid job boards. The careers page gets almost no traffic.

Search optimization can turn the careers site into a source of candidates of its own. It reduces your dependence on job platforms that charge per posting or per applicant. It also reaches passive candidates who research employers before they decide to move.

This guide covers job titles, description structure, schema markup, careers page structure, internal links, job aggregators, employer brand content, and applicant tracking systems.

## Use the job titles candidates search for

The job title decides whether a posting appears in a candidate's search. A creative internal title often does not match the words candidates type.

Use standard industry titles. "Software Engineer" has far more search volume than "Code Ninja" or "Programming Rockstar". "Marketing Manager" gets more searches than "Growth Hacker". Match the conventions on LinkedIn, Indeed, and Glassdoor. Keep creative titles for internal use, such as a team name, and post the standard title.

Add a seniority level: "Junior", "Senior", "Lead", "Principal", or "Director". Candidates filter by level, so a title with no level attracts mismatched applications. "Senior Software Engineer" reaches different candidates than "Software Engineer II", even when the work is similar.

Add the location. For a remote role, write "Remote" or "Remote - US" in the title. For an office role, add the city: "Marketing Manager - Austin, TX". Candidates often search in the pattern "[job title] [location]".

Add the specialization. "Software Engineer" is generic. "Backend Software Engineer - Java" or "Frontend Software Engineer - React" attracts specialists. A specific title reduces irrelevant applications and matches the searches of candidates with the right skills.

Spell out acronyms. Internal shorthand, such as "SWE" for Software Engineer or "PM" for Product Manager, reduces search visibility. Use the full title in the posting, even if the team uses the short form.

## Structure the job description

A job description must attract qualified candidates and rank in search. A wall of text does neither.

Open with a summary of the role, the team, and the impact. Use this pattern: "[Company Name] is seeking a [Job Title] to [primary responsibility]. You'll join our [team name] team working on [key projects or products]." The summary gives context at once and includes the company name, job title, and main responsibility.

List responsibilities as bullets that start with a verb: "Design", "Lead", "Build", "Manage", "Collaborate", "Analyze". Make each one specific and focused on results. "Build scalable microservices handling 10M+ daily API requests" says more than "Write code". Specific responsibilities help candidates and improve keyword relevance.

Split qualifications into required and preferred. Required qualifications are the gate: candidates without them should not apply. Preferred qualifications improve quality without excluding strong applicants. This split keeps qualified candidates from dropping out because they meet most, but not all, of a long requirements list.

Name specific benefits. "Competitive salary and benefits" tells the candidate nothing. Name the real ones, such as unlimited paid time off, a learning budget, remote-first work, equity, or a four-day week. Specific benefits become search terms that set you apart.

Describe the culture: the work environment, team dynamics, and mission. Many candidates weigh culture fit alongside pay. A clear description attracts candidates who fit and deters those who do not, so application quality rises.

## Add JobPosting schema

JobPosting schema lets Google show your posting as a rich job result in search. Google requires these properties:

- `title`: the job title.
- `description`: the full job description.
- `datePosted`: the date you posted the job.
- `hiringOrganization`: the company name and URL.
- `jobLocation`: the office address.

For a remote role, set `jobLocationType` to `TELECOMMUTE` and state where applicants may live in `applicantLocationRequirements`. Add `validThrough` with the application deadline. If you have no deadline, set a date about 30 days out and renew it while the role stays open. Add `employmentType`, such as `FULL_TIME`, `PART_TIME`, or `CONTRACTOR`.

Add salary with `baseSalary`. It holds a `MonetaryAmount` with a `currency`, and a `value` with `minValue`, `maxValue`, and `unitText`, such as `YEAR`. A published range filters out candidates whose expectations do not match, before they spend time on an application. Many candidates filter searches by salary, and a posting without a range can drop out of those results.

Several US jurisdictions require pay ranges in job postings. As of 2026, the list includes Colorado, New York City, California, and Washington. Check the law in each place you hire. If your pay is below market, fix the pay position before you advertise widely.

Use `directApply: true` when candidates apply on your own page. Otherwise, give the application URL on your applicant tracking system (ATS) in `url`. A clear route to apply reduces abandoned applications.

Test every posting in Google's Rich Results Test. The test catches broken JSON-LD, missing required properties, and wrong property types. Add the test to your deployment process, so invalid markup does not reach the live site. For the other schema types a site needs, read the [schema markup types guide](/articles/schema-markup-types-guide).

### Handle closed and reopened roles

Keep one stable URL for each recurring role. Use a descriptive slug, such as `/jobs/senior-software-engineer-backend`, not a date or an ID number.

When the role closes, keep the page and mark it "Closed" or "No longer accepting applications". Remove the JobPosting markup, or set `validThrough` to a past date, so that Google drops it from job results. A closed role still marked as open damages your employer brand and search engines' trust in your postings.

When the role reopens, update the dates and details on the same URL. The page keeps the ranking value it built. Create a new URL only for a different role.

## Build careers pages that rank

Many careers sections are only a job feed. Build them into pages that rank for searches about working at your company.

The careers homepage states your value as an employer. Include the mission and values, employee testimonials, culture photos and video, a benefits overview, and growth opportunities. Target "[company name] careers" and "[company name] jobs".

Create a page for each department: engineering, sales, marketing, customer success, and others. Each page describes what the department does, the team structure, career progression, the technologies or methods it uses, and its open roles. Target "[department] jobs at [company]" and "[company] [department] team".

Create location pages. A remote-first company needs a "Remote Careers" page. A company with offices needs a page for each office, such as "Austin Office". Include office photos, local benefits, neighborhood information, commute details, and the roles open there.

Publish employee spotlights. Ask employees about their career path, a typical day, favorite projects, growth, and why they joined. These stories are unique content, and they use role, technology, and culture terms naturally.

Publish career articles such as "Day in the Life of a [Job Title] at [Company]", "How We Interview Software Engineers", or "Career Growth Framework at [Company]". Candidates who research what your company is like find these pages before they apply.

## Link recruitment content together

Internal links connect postings, careers pages, and company content into one structure for candidates and search engines.

Link each posting to related company pages. A software engineer posting links to the engineering team page, engineering culture posts, the products engineers build, and the learning programs.

Link related postings to each other. A "Similar Roles" section on "Senior Backend Engineer" can point to "Staff Backend Engineer" and "Platform Engineer". These links help candidates and spread link value across job pages.

Feature priority roles on the homepage or in the main navigation. Job pages usually sit deep in the site, which lowers their crawl priority. A "We're Hiring: [Priority Roles]" section with links signals priority to search engines and reaches homepage visitors.

Build resource pages about the interview process, pay philosophy, remote work practices, and benefits. Link them from the relevant postings.

Link employee posts to open roles. An engineering post about a technical problem links to open engineering roles. An employee spotlight links to its department's careers page.

## Work with job aggregators

Many candidates find jobs through aggregators such as Indeed, LinkedIn, and Google's job search results. Plan for both direct search traffic and aggregator traffic.

Google's job results depend on JobPosting schema. Google crawls marked-up postings from employer sites and shows them in its job search experience. You do not need a job board to appear there. Google's Indexing API also accepts JobPosting pages, which gets new and closed postings recrawled faster. As of July 2026, Google limits the API to `JobPosting` pages and livestream `BroadcastEvent` pages. For how that works, read [IndexNow and the Indexing API for developers](/articles/indexnow-indexing-api-developers).

Post every role on Indeed and LinkedIn as well. Candidates use several sources. Keep the job details the same on every platform. Use each platform's features: promoted placement on Indeed for urgent roles, and LinkedIn's "Easy Apply" to reduce friction.

Create a separate XML sitemap for job postings. Include `<lastmod>` dates, so crawlers can find new and changed postings. Submit it where aggregators accept sitemaps. The [XML sitemap guide](/articles/xml-sitemap-best-practices-developers) covers the format.

Keep your careers site as the canonical version. When you control the syndicated copies, use canonical tags or `noindex` on them. Aggregators usually handle this correctly, but check. Google does not penalize duplicate content, but duplicates can outrank your own page.

Use paid job boards to supplement your own site, not to replace it. Use them for hard-to-fill or urgent roles. Put SEO effort into the owned channel, which lowers recruitment advertising costs over time.

### Compete with job boards in organic search

Job boards hold the generic "[job title] [city]" results. They do poorly on company-specific searches. Target long-tail combinations: "[job title] at [company name]", "[department] careers [location]", and "[company name] [department] team". Build employer brand content so candidates search for your company by name. Those queries face less competition.

## Attract passive candidates with employer brand content

Active job seekers are a small part of the candidates you want. Employer brand content reaches people who research employers before they consider a move.

Culture content targets "[company name] culture" and "[company name] work environment". Describe your values, work-life balance, remote work practices, inclusion practices, and team dynamics.

Behind-the-scenes content shows how the company works: meeting formats, decisions, onboarding, and hackathon recaps. Video works well here, such as office tours, team introductions, and project demos. This content rarely brings large traffic, but it builds trust with candidates who already research you.

Compensation content answers pay questions before a candidate applies. Publish your pay philosophy, salary bands by role and level, an explanation of equity, and the value of benefits. Some organizations publish full salary ranges for every position.

Career growth content answers questions about long-term development. Explain promotion criteria, typical career paths, learning budgets, mentorship programs, and internal moves. Ambitious candidates look for this.

Inclusion content matters to candidates from underrepresented groups and to others who want an inclusive workplace. Share your programs, employee resource groups, and hiring practices, and data where you have it. Publish only what your actual practices support.

## Fix the applicant tracking system

An ATS such as Greenhouse, Lever, or Workday hosts many job postings. It can also create SEO problems through poor URLs, thin content, and technical limits.

Use a custom domain. A posting on the ATS vendor's domain builds that vendor's authority, not yours. Serve the postings from `careers.yourcompany.com` or a path on your main domain. Most ATS platforms support custom domains.

Do not embed listings in an iframe. Framed content indexes poorly and gives a poor user experience. Use native ATS hosting on your domain. As an alternative, pull job data through the ATS API and render it on your pages.

Add context to thin ATS descriptions: team descriptions, office details, links to related company pages, and benefits.

Check that crawlers can reach ATS pages. Some ATS setups block crawlers with `robots.txt` rules or with pages that need JavaScript to show content. Use Google Search Console to confirm that job pages are indexed, and work with ATS support to fix problems. For rendering problems, read the [JavaScript SEO guide](/articles/javascript-seo-guide).

Check page speed. ATS performance varies, and a slow page hurts candidates and rankings. If your ATS pages are slow, host the job content on your own infrastructure and pull the data through the ATS API.

----

```text
                  .|########||.                                       .|########||.                                       .|########||.
               |##||.      .||##|.                                 |##||.      .||##|.                                 |##||.      .||##|.
             |#|.              .|#|.                             |#|.              .|#|.                             |#|.              .|#|.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
        .#.                          .#|                    .#.                          .#|                    .#.                          .#|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
      |#             ......             #|                |#             ......             #|                |#             ......             #|
     .#           ||#########|           #|              .#           ||#########|           #|              .#           ||#########|           #|
    .#.         |######||######|.        .#.            .#.         |######||######|.        .#.            .#.         |######||######|.        .#.
    #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#
   ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||
   #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #
 ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||
 #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#
 #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.
.|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||
||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||
#.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#
#    .||####|###########################|.     #    #    .||####|###########################|.     #    #    .||####|###########################|.     #
#      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #
#      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #
#      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #
#      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #
#   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #
#. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#
|| |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||
|| ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||
.# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.
 #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#
 ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||
  #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.
   ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||
    #.        .######|#|#########|        .#            #.        .######|#|#########|        .#            #.        .######|#|#########|        .#
    .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.
     |#           ||########||           #.              |#           ||########||           #.              |#           ||########||           #.
      |#             ......             #|                |#             ......             #|                |#             ......             #|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
        |#.                          .#.                    |#.                          .#.                    |#.                          .#.
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
            .|#|.              .|#|.                            .|#|.              .|#|.                            .|#|.              .|#|.
               |##||.      .||##|                                  |##||.      .||##|                                  |##||.      .||##|
                 .||########||.                                      .||########||.                                      .||########||.

Scale With Search  2026  [scalewithsearch.com](https://scalewithsearch.com)
```
