Job posting optimization makes a job ad easy to find and easy to apply to. Here is how to write the title, structure the posting, add Google for Jobs structured data, and measure what works.
- The job title does most of the work in search, so use the plain title candidates type, without codes, locations or salary in it.
- Put pay, location type, schedule and the top three requirements in the first screen of the posting.
- For Google for Jobs, each job page needs JobPosting structured data with five required fields: title, description, datePosted, hiringOrganization and jobLocation.
- Expired jobs must come down: set validThrough to a past date, return a 404 or 410, or remove the markup, then tell Google.
- Track views, apply rate and qualified-applicant rate per posting, and change one thing at a time.
In this article
Job posting optimization is the work of making a job ad easy to find and easy to say yes to: a searchable title, the facts candidates filter on (pay, location, schedule) near the top, a short and scannable description, a quick application, and correct Google for Jobs structured data on your careers page. Then you measure views, apply rate and quality, and revise.
What job posting optimization covers
A job posting is an ad; a job description is the internal document behind it. Optimizing the posting means improving three things:
- Visibility: whether the right people see it in job board search, Google and your careers site.
- Conversion: whether people who open it actually apply.
- Fit: whether the people who apply can do the job, so you aren’t screening hundreds of mismatched applications.
Most weak postings fail on all three for the same reasons: an internal title nobody searches for, a long block of company history before any facts, missing pay, and an application that takes 20 minutes.
Write a job title candidates actually search for
Job boards and Google match searches mainly against the title. Use the common market name for the role and add a level or specialty only if candidates search for it.
| Weak title | Better title | Why |
|---|---|---|
| Customer Happiness Ninja | Customer Service Representative | Nobody searches for internal or playful titles |
| AP Spec II – Req #4471 | Accounts Payable Specialist | Codes and abbreviations hurt matching |
| RN – Dallas – $45/hr – Nights!! | Registered Nurse (Night Shift) | Location and pay belong in their own fields |
| Software Engineer Rockstar | Senior Software Engineer, Backend | Level and specialty are real search terms |
Google’s own guidelines for job markup say the title should be the job title only, without job codes, addresses, dates, salaries or company names (Google Search Central). Following that rule also makes your ads cleaner on every other board.
Structure the posting so it can be scanned in seconds
Most candidates skim on a phone. Put decision-making facts first and keep sections short. This template works for most roles:
- Snapshot (3-5 lines): pay range, location and on-site/hybrid/remote, schedule, employment type (full-time, contract, temporary), start date if relevant.
- What you’ll do (4-6 bullets): the real tasks, with scale. “Process 300+ invoices a month in NetSuite” beats “handle AP duties.”
- What you need (3-5 bullets): true requirements only. Each extra requirement shrinks the pool.
- Nice to have (2-3 bullets): clearly labeled as optional.
- Pay and benefits: the range, how pay is structured (hourly, salary, bonus, overtime), and the main benefits.
- About the team (2-3 sentences): who they’ll work with and why the role exists. Save company history for the careers site.
- How to apply: what happens next and how long the process takes.
Keep the whole posting readable in a couple of minutes. Write in second person (“you’ll”), use plain words, and drop vague phrases such as “self-starter” or “fast-paced environment.” Our guides on writing job descriptions and the types of job postings go deeper on wording and format.
Tip: Avoid wording that signals a preference for a protected group, such as “recent graduates” or “young, energetic team.” The EEOC lists “recent college graduates” as an example of ad language that may discourage people over 40 from applying (EEOC).
Show pay, location and schedule up front
Pay is the first filter for most job seekers, and a growing number of states and cities require a pay range in postings. Requirements differ on which employers are covered, what counts as a “good faith” range and whether remote roles are included, so check our pay transparency laws by state guide before you post.
Even where it isn’t required, listing a real range tends to filter out people whose expectations don’t match before they apply. If you’re unsure what range is competitive, benchmark it first with the free Careerscape Salary Guide.
Be just as specific about location. “Hybrid” means little on its own; “on-site Tuesday to Thursday in Plano, TX” tells candidates whether the commute works.
Cut friction from the application
Every extra step loses applicants, and the best ones usually have other options. Test your own application on a phone and time it.
- Allow applying with a resume upload or a job board profile; don’t make people retype their work history.
- Don’t require an account or login before people can read the full posting.
- Limit screening questions to true knockouts (license, shift availability, work authorization).
- Save assessments for after the first screen, not before anyone has spoken to you.
- Confirm receipt automatically and say when they’ll hear back.
Google for Jobs structured data basics
Google shows job listings in a special search experience when the job page includes JobPosting structured data (JSON-LD on the page). Your ATS or careers-site plugin may add it for you; check that it does, and that the values are right.
| Property | Status | What to put in it |
|---|---|---|
title |
Required | The job title only, no codes, locations or pay |
description |
Required | The full posting text in HTML, matching what’s on the page |
datePosted |
Required | The original posting date (ISO 8601, for example 2026-10-21) |
hiringOrganization |
Required | The company name (use “confidential” for a confidential search) |
jobLocation |
Required | The physical work address; for fully remote jobs see jobLocationType |
baseSalary |
Recommended | The employer’s actual base pay or range, which must also appear on the page |
employmentType |
Recommended | FULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY, INTERN, PER_DIEM and others |
jobLocationType + applicantLocationRequirements |
Recommended | TELECOMMUTE for 100% remote jobs, plus at least one country where applicants may live |
validThrough |
Recommended | The date the posting expires; omit if there’s no set end date |
identifier, directApply |
Recommended | Your internal job ID; whether candidates can apply on that page |
A minimal example looks like this:
{ "@context": "https://schema.org/", "@type": "JobPosting",
"title": "Accounts Payable Specialist",
"description": "<p>Process 300+ invoices a month...</p>",
"datePosted": "2026-10-21", "validThrough": "2026-12-15",
"employmentType": "FULL_TIME",
"hiringOrganization": { "@type": "Organization", "name": "Example Co" },
"jobLocation": { "@type": "Place", "address": { "@type": "PostalAddress", "addressLocality": "Plano", "addressRegion": "TX", "postalCode": "75024", "addressCountry": "US" } },
"baseSalary": { "@type": "MonetaryAmount", "currency": "USD", "value": { "@type": "QuantitativeValue", "minValue": 52000, "maxValue": 60000, "unitText": "YEAR" } } }
Rules from Google’s JobPosting documentation that trip employers up:
- One job per page. Don’t add the markup to search-results or list pages.
- No expired jobs. When a role closes, set
validThroughto a past date, return a 404 or 410, or remove the markup. - Tell Google about changes. Google recommends its Indexing API for job URLs because it prompts faster crawling, with a sitemap for overall coverage.
- Candidates must be able to apply, and the description can’t sit behind a login.
- Test before launch. Run the URL through Google’s Rich Results Test, and make sure the page isn’t blocked by robots.txt or a noindex tag.
Measure job posting performance and keep improving
Track the same few numbers for every posting, by source, so you can compare. Your ATS and job board dashboards usually report them.
| Metric | Formula | What a weak result suggests |
|---|---|---|
| Views (impressions) | Times the posting appeared or was opened | Title doesn’t match searches, or the posting isn’t indexed |
| Apply rate | Applications started ÷ views | Missing pay, weak first screen, unclear location |
| Completion rate | Applications finished ÷ applications started | Application is too long or not mobile-friendly |
| Qualified-applicant rate | Applicants who pass screening ÷ total applicants | Requirements are vague, or the title attracts the wrong level |
| Cost per qualified applicant | Posting spend ÷ qualified applicants | Paying for volume on the wrong board |
Worked example: a posting gets 1,200 views and 60 applications started, of which 42 are finished and 12 pass screening. The apply rate is 5% (60 ÷ 1,200), completion is 70% (42 ÷ 60), and the qualified-applicant rate is about 29% (12 ÷ 42). If you spent $300, the cost per qualified applicant is $25.
Change one element at a time (title, pay display, first paragraph, application length), run it for a week or two, and compare. For more metrics, see our recruitment metrics list, and for where to post, our comparison of job posting sites.
Job posting optimization checklist
- Title is the plain market name for the role, with no codes, pay or location.
- Pay range, location type, schedule and employment type are in the first few lines.
- Requirements list only true must-haves; nice-to-haves are labeled.
- Language is inclusive and free of age or gender signals.
- Posting meets pay transparency rules for the job’s location.
- Application works on a phone in a few minutes without creating an account.
- JobPosting structured data passes the Rich Results Test, and
baseSalarymatches the page. - Expired jobs are removed or marked expired, and Google is notified.
- Views, apply rate and qualified-applicant rate are tracked per posting and source.
How Careerscape can help
Careerscape is a U.S. staffing and recruiting firm, and we also run a job board. If a role isn’t drawing qualified applicants, our recruiters can help you rework the posting, set a competitive pay range and source candidates directly through direct hire or contract staffing.
Frequently asked questions
How do I get my jobs on Google for Jobs?
Add JobPosting structured data to each individual job page on your careers site, with at least title, description, datePosted, hiringOrganization and jobLocation. Make sure the page is crawlable (not blocked by robots.txt or noindex), test it with Google’s Rich Results Test, and notify Google through the Indexing API or a sitemap. Many ATS platforms add this markup automatically.
Should I include salary in a job posting?
In many states and cities you must, and elsewhere it’s still a strong practice because pay is one of the first things candidates check. A real range helps people self-select before applying. If you add salary to Google structured data, it must be the employer’s actual base pay and must also appear on the page itself.
How long should a job posting be?
Long enough to cover pay, location, schedule, the main tasks, real requirements and how to apply, and short enough to read in a couple of minutes on a phone. Cut company history, long lists of generic soft skills and requirements nobody screens on. Bullets and short sections make longer postings easier to scan.
How often should I update or repost a job?
Review a posting after a week or two if the apply rate or qualified-applicant rate is low, and change one element at a time. Don’t repost the same job repeatedly just to look new; update the existing posting instead. When the job is filled, take it down promptly and mark it expired in your structured data.
Why am I getting lots of unqualified applicants?
Usually the title is too broad, the requirements are vague, or the pay and location are missing, so people apply without knowing whether they fit. Make the title specific, put two or three true must-haves near the top, show the pay range, and add one or two knockout questions for hard requirements such as a license.