What exactly is GEO?
GEO stands for Generative Engine Optimization. It refers to the optimization of content for systems that do not merely index information in the traditional sense but also process it into generative responses—such as AI-powered search systems, assistants, and other automated crawlers.
While there is significant overlap with SEO, the two are not identical:
SEO helps traditional search engines find, understand, and display pages in search results.
GEO goes a step further: content must also be presented in a way that is as clear, structured, and machine-readable as possible for automated systems and AI models.
This is becoming increasingly relevant, particularly in recruiting. Job openings need to look good on a career site, but they also need to be technically structured so that search engines, job aggregators, and modern AI systems can easily detect and process them.
That is why, over the past few months, we have implemented several technical measures within softgarden Career Sites that specifically address this need.
What we have already implemented
1. Machine-readable job feed as a central data source
One of the key measures is a machine-readable job feed that provides all current vacancies in a structured format.
This feed is not intended for human readers but for systems designed to process job data automatically.
Why this is important
Such a feed makes it significantly easier for external systems to capture job listings without having to analyze the entire website. Instead of having to "guess" the HTML structure, crawlers are provided with a clearly structured data source.
Benefit
Vacancies are not only displayed on the career page but are also made available in a standardized, easily processable format.
2. Visible link to the job feed in the footer
To ensure that automated systems can actually find the job feed—rather than just potentially being able to use it—we have also included a visible link to it in the footer.
Why this is important
Many systems begin their analysis in the traditional way by looking at a page's HTML. A visible link helps them discover the feed in the first place.
Benefit
The machine-readable job source is not "hidden" but is actively discoverable.
3. Custom llms.txt as an additional guide for AI systems
We also support a file located at /llms.txt.
You can think of it somewhat like a signpost file for AI.
Such files are currently emerging as a new standard. Many modern LLMs already use them to quickly identify where a website’s most important content is located—without having to crawl the entire site.
Why this matters
Much like a robots.txt file or a sitemap, this type of file helps guide machines more quickly to relevant content.
Benefit
Important content is not merely published but actively flagged as a relevant source.
4. HTML overview page for jobs as an additional fallback
In addition to the JSON feed, we also provide an HTML overview page of the jobs:
This page may be picked up by search engines, but is designed not to appear in search results. It serves purely as a technical support page to make content easier to find.
Why this is important
Not every system handles JSON feeds or structured data equally well. A simple HTML overview is therefore an additional, robust fallback.
Benefit
The job content is more accessible not only to browser users, but also to simpler crawlers.
5. Structured data
In addition to the technical interfaces, we also provide important information in a structured manner directly in the page source text. This happens via so-called structured data (JSON-LD) in the background of the page.
Among other things, an employer aggregate rating was already available. We have also added further structured notes so that machines can classify content better.
Example: JobPosting
Structured data can be integrated into the JobPosting schema on job detail pages.
Example: ItemList
We have also added an ItemList to create a machine-readable connection to the central job list or job feed.
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "ItemList",
"name": "Job offers at softgarden e-recruiting GmbH",
"numberOfItems": 8,
"url": "https://softgarden.career.softgarden.de/jobs.feed.json"
}
</script>
On the individual job pages
Each individual position also includes a highly detailed, structured description in the background.
In simplified terms, it looks like this:
<script type="application/ld+json">
{
"@type": "JobPosting",
"title": "Key Account Manager:in",
"datePosted": "2026-03-24",
"employmentType": "FULL_TIME",
"jobLocation": {
"@type": "Place",
"address": {
"addressLocality": "Köln"
}
}
}
</script>
Why this matters
This data is invisible to visitors but extremely helpful to machines. It provides clear answers to questions such as:
"Is this a job posting?"
"Where is the job located?"
"When was it published?"
"What type of employment is it?"
Instead of having to extract content from running text, systems receive the information in a clean, structured format.
👉 Incidentally, this also forms the technical basis that allows jobs to appear on platforms like Google Jobs.
Benefit
Job postings are not merely displayed as text; they are also described in precise technical terms. This helps search engines, job aggregators, and modern AI systems correctly identify the content and process it more effectively.
6. Additional easy-to-guess feed paths
In addition to the actual feed, we provide additional alias paths so that automated systems can also find the feed under typical, easily guessable URLs.
Examples:
These paths serve the same content or redirect to the canonical feed URL.
Why this is important
Some systems automatically try typical default paths. Such alias URLs increase the likelihood that the feed will be found even if no HTML link is evaluated.
Benefit
The job data is easier to find for external systems, even if they work with simple heuristics.
7. Job feed indication via HTTP header
In addition to HTML and structured data, we provide a reference to the feed at the protocol level using an HTTP Link header.
Example:
<https://softgarden.career.softgarden.de/jobs.feed.json>; rel="alternate"; type="application/json"
Why this is important
Some crawlers check response headers before processing HTML or JavaScript. Such a header therefore serves as an additional technical indicator of the machine-readable data source.
Benefit
Relevant content is clearly described not only at the page level but also at the HTTP level.
Why we chose this approach
Our goal was not to rely on a single measure, but rather to combine several meaningful signals.
That is why we utilize:
machine-readable job data
visible linking
structured data
additional discovery files
technical indicators via HTTP
fallbacks for simpler systems
This redundancy is intentional: different search engines, crawlers, and AI systems process content in different ways. The clearer the content—and the more consistent it is across multiple levels—the better.
What this means for you
For you, this primarily means:
Job listings are provided in a more technically refined manner
Content is easier for search engines and automated systems to discover
Job data is available in a structured format, not just visually
The career site is better prepared for new forms of search and content processing
Important: Such measures do not guarantee specific visibility in individual search engines or AI products. However, they do improve the conditions for content to be correctly found and understood.
Outlook
GEO is still a young topic. There are currently no uniform, generally binding standards, and many systems are evolving very quickly. This is precisely why it is important to actively monitor this field and create the technical foundations at an early stage.
We do not see GEO as a one-off project, but as an ongoing development. Our goal is to build career sites so that they not only work well today, but are also as well prepared as possible for new search and AI systems.
We are therefore staying on top of the topic and will further develop our measures as soon as new, sensible standards, best practices or technical requirements emerge.

