Skip to main content
← Back to Articles

SoftwareApplication Schema: The Complete Guide for SaaS AI Visibility in 2026

How to implement SoftwareApplication JSON-LD schema so AI agents can find, evaluate, and recommend your SaaS product. Every field explained with working examples.

By Web MCP Guide•April 21, 2026•9 min read


SoftwareApplication Schema: The Complete Guide for SaaS AI Visibility in 2026

> TL;DR
> - SoftwareApplication schema is how AI agents find and recommend software tools — most SaaS products have none
> - When someone asks ChatGPT "best project management tool under $20/seat," your schema determines if you're in the candidate pool
> - Covers pricing tiers, free trials, feature lists, platform compatibility, and integrations — all machine-readable
> - Run a free schema audit on your app →

Updated: April 21, 2026

---

Why SaaS Products Are Invisible to AI Agents

Physical product stores at least have Shopify or WooCommerce generating partial schema. SaaS products typically have nothing. Most software landing pages are pure marketing HTML — zero structured data, zero machine-readable context about what the tool does, who it's for, what it costs, or how it integrates.

When an AI agent is tasked with finding "the best CRM for a 10-person sales team under $50/month," it evaluates candidates using structured data. Products with complete SoftwareApplication schema get evaluated. Products without it get skipped — not because they're worse, but because the agent can't read them.

This is the SaaS schema gap: almost nobody has fixed it, which means fixing it is a significant competitive advantage right now.

---

The SoftwareApplication Schema Template

{
"@context": "https://schema.org/",
"@type": "SoftwareApplication",
"name": "Notion",
"description": "All-in-one workspace for notes, docs, project management, and wikis. Designed for individuals, startups, and teams that want a single tool replacing Confluence, Trello, and Google Docs. Supports AI-assisted writing, custom databases, and real-time collaboration.",
"url": "https://notion.so",
"applicationCategory": "ProductivityApplication",
"applicationSubCategory": "Project Management",
"operatingSystem": "Web, iOS, Android, macOS, Windows",
"softwareVersion": "2.36",
"datePublished": "2018-03-01",
"dateModified": "2026-04-01",
"screenshot": "https://notion.so/images/screenshot-dashboard.png",
"featureList": [
"AI writing assistant",
"Custom databases and views",
"Real-time collaboration",
"Kanban boards",
"Wiki and documentation",
"API access",
"Third-party integrations (Slack, GitHub, Figma)"
],
"availableOnDevice": ["Desktop", "Mobile", "Tablet"],
"browserRequirements": "Requires JavaScript. Works in Chrome, Firefox, Safari, Edge.",
"permissions": "Internet access required",
"countriesSupported": "Worldwide",
"inLanguage": "en",
"audience": {
"@type": "Audience",
"audienceType": "Startups, remote teams, product managers, engineers, content teams, solopreneurs"
},
"offers": [
{
"@type": "Offer",
"name": "Free",
"price": "0",
"priceCurrency": "USD",
"description": "Unlimited pages and blocks for individuals. 7-day page history.",
"eligibleCustomerType": "Individual"
},
{
"@type": "Offer",
"name": "Plus",
"price": "10",
"priceCurrency": "USD",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "10",
"priceCurrency": "USD",
"unitText": "per member per month"
},
"description": "Unlimited history, unlimited file uploads, 100 guests.",
"eligibleCustomerType": "SmallBusiness"
},
{
"@type": "Offer",
"name": "Business",
"price": "18",
"priceCurrency": "USD",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "18",
"priceCurrency": "USD",
"unitText": "per member per month"
},
"description": "SAML SSO, advanced permissions, audit log, workspace analytics.",
"eligibleCustomerType": "Business"
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "18420",
"bestRating": "5"
},
"author": {
"@type": "Organization",
"name": "Notion Labs",
"url": "https://notion.so"
},
"publisher": {
"@type": "Organization",
"name": "Notion Labs"
},
"additionalProperty": [
{ "@type": "PropertyValue", "name": "Free Trial", "value": "Yes — free tier available, no credit card required" },
{ "@type": "PropertyValue", "name": "Deployment", "value": "Cloud-hosted SaaS" },
{ "@type": "PropertyValue", "name": "Best For", "value": "Teams replacing multiple tools with one workspace, async-first teams, documentation-heavy workflows" },
{ "@type": "PropertyValue", "name": "Integrations", "value": "Slack, GitHub, Figma, Google Drive, Zapier, Make, Jira, Linear" },
{ "@type": "PropertyValue", "name": "API", "value": "REST API available on all paid plans" },
{ "@type": "PropertyValue", "name": "Compliance", "value": "SOC 2 Type II, GDPR compliant" }
]
}

---

Field-by-Field: What Each Property Does for AI Agent Evaluation

applicationCategory

Schema.org defines these categories for software:

  • GameApplication

  • SocialNetworkingApplication

  • TravelApplication

  • ShoppingApplication

  • SportsApplication

  • LifestyleApplication

  • BusinessApplication

  • DesignApplication

  • DeveloperApplication

  • DriverApplication

  • EducationalApplication

  • HealthApplication

  • FinanceApplication

  • SecurityApplication

  • BrowserApplication

  • CommunicationApplication

  • DesktopEnhancementApplication

  • EntertainmentApplication

  • MultimediaApplication

  • HomeApplication

  • UtilitiesApplication

  • ReferenceApplication

  • ProductivityApplication
  • Use applicationSubCategory for more specificity: "Project Management", "CRM", "Email Marketing", "Analytics", etc. AI agents use both fields to match software queries to categories.

    ---

    featureList

    This is the most important field for agent-to-agent matching. When a buyer's agent is evaluating "must have Slack integration and API access," it reads featureList directly.

    Write features as specific capabilities, not marketing claims:

  • āœ… "Two-way Slack integration with channel notifications"

  • āŒ "Powerful integrations"

  • āœ… "REST API with webhooks on all paid plans"

  • āŒ "Developer-friendly"
  • The more specific your feature list, the more confidently an agent can match your tool to buyer requirements.

    ---

    offers — Pricing Tiers as Structured Data

    This is where SaaS schema diverges most from product schema. Instead of one Offer with a single price, SaaS products have pricing tiers — each needs its own Offer block.

    Critical fields for each tier:

  • name — "Free", "Pro", "Business", "Enterprise"

  • price — numeric, per the billing unit

  • priceSpecification with unitText — "per member per month", "per month", "per year"

  • description — what's included at this tier

  • eligibleCustomerType — maps to Schema.org BusinessEntityType
  • AI agents evaluating "under $20/seat/month" read priceSpecification.unitText to understand the pricing model, then price to check the amount. If your pricing schema just says "price": "15" with no unit context, the agent can't determine if that's per seat, per month, or per year.

    ---

    additionalProperty — The Agent Matching Layer

    Standard schema fields don't cover everything AI agents need to evaluate software. additionalProperty with PropertyValue fills the gaps:

    Free trial availability — One of the most common buyer filters. "Must have free trial" is a frequent agent query. Without this in schema, the agent has to scrape your pricing page and infer — less reliable, less confident.

    Deployment model — Cloud SaaS vs. self-hosted vs. hybrid. Enterprise buyers filter heavily on this.

    Best for — Explicit use case targeting. Directly maps to "best for [use case]" queries.

    Integrations — List your key integrations. Agents matching "works with our Slack and GitHub setup" read this field.

    Compliance — SOC 2, GDPR, HIPAA. Enterprise agents filter on compliance requirements before price.

    ---

    The AI Agent Evaluation Loop for SaaS

    Here's what happens when a buyer's AI agent gets tasked with finding project management software:

    1. Query interpretation — "under $20/seat, free trial, works with Slack, good for engineering teams"
    2. Candidate retrieval — Searches AI's indexed knowledge of SaaS tools + live web crawl
    3. Schema parsing — For each candidate, reads SoftwareApplication schema:

  • offers[].priceSpecification → under $20/seat?

  • additionalProperty[name="Free Trial"] → free trial available?

  • additionalProperty[name="Integrations"] → includes Slack?

  • audience.audienceType → good for engineering teams?

  • 4. Filtering — Candidates missing any required field are dropped from the pool
    5. Ranking — Remaining candidates ranked by aggregateRating, completeness, brand authority
    6. Recommendation or purchase — Top 1–3 options surfaced, or purchase initiated in agentic mode

    Your schema completeness determines whether you make it through step 4. Your ratings and enrichment determine where you rank in step 5.

    ---

    SaaS-Specific Schema Patterns

    Free Tier + Paid Tiers

    "offers": [
    {
    "@type": "Offer",
    "name": "Free Forever",
    "price": "0",
    "priceCurrency": "USD",
    "description": "Up to 5 users, 3 projects, 5GB storage. No credit card required.",
    "eligibleCustomerType": "Individual"
    },
    {
    "@type": "Offer",
    "name": "Pro",
    "price": "12",
    "priceCurrency": "USD",
    "priceSpecification": {
    "@type": "UnitPriceSpecification",
    "price": "12",
    "priceCurrency": "USD",
    "unitText": "per user per month, billed annually"
    }
    }
    ]

    Annual vs. Monthly Pricing

    "offers": [
    {
    "@type": "Offer",
    "name": "Pro — Monthly",
    "price": "15",
    "priceSpecification": { "@type": "UnitPriceSpecification", "unitText": "per user per month" }
    },
    {
    "@type": "Offer",
    "name": "Pro — Annual",
    "price": "12",
    "priceSpecification": { "@type": "UnitPriceSpecification", "unitText": "per user per month, billed annually" }
    }
    ]

    Enterprise (Contact for Pricing)

    {
    "@type": "Offer",
    "name": "Enterprise",
    "description": "Custom pricing. Includes SSO, audit logs, custom contracts, dedicated support. Contact sales.",
    "eligibleCustomerType": "Business",
    "availability": "https://schema.org/PreOrder"
    }

    ---

    FAQ Schema for SaaS: Agent Pre-Purchase Checklist

    AI agents evaluating software for a buyer run through implicit questions before recommending. FAQ schema answers them in structured form:

    {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
    {
    "@type": "Question",
    "name": "Does this tool have a free plan or free trial?",
    "acceptedAnswer": {
    "@type": "Answer",
    "text": "Yes. The Free plan is available indefinitely with no credit card required. It includes up to 5 users and core features. The Pro plan offers a 14-day free trial."
    }
    },
    {
    "@type": "Question",
    "name": "Does it integrate with Slack?",
    "acceptedAnswer": {
    "@type": "Answer",
    "text": "Yes. Two-way Slack integration is included on all plans. Get notifications in Slack channels, create tasks from Slack messages, and update project status without leaving Slack."
    }
    },
    {
    "@type": "Question",
    "name": "Is there an API?",
    "acceptedAnswer": {
    "@type": "Answer",
    "text": "Yes. REST API with webhooks is available on Pro and above. Full documentation at docs.example.com/api."
    }
    },
    {
    "@type": "Question",
    "name": "What's the cancellation policy?",
    "acceptedAnswer": {
    "@type": "Answer",
    "text": "Cancel anytime. No long-term contracts on monthly plans. Annual plans are refundable within 30 days. Your data is exportable at any time."
    }
    }
    ]
    }

    ---

    Implementing SoftwareApplication Schema

    On a Next.js / headless app

    // app/layout.tsx or a per-page component
    export default function AppSchema() {
    const schema = {
    "@context": "https://schema.org/",
    "@type": "SoftwareApplication",
    "name": "YourApp",
    // ... all fields
    };
    return (
    type="application/ld+json"
    dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
    />
    );
    }

    Via Schema Injection (No Code)

    Add one script tag to your site's . SchemaInject detects software product pages and generates SoftwareApplication schema automatically — including pricing tiers read from your existing page metadata.

    → Get your injection snippet free →

    ---

    Checklist: Complete SoftwareApplication Schema


  • [ ] name, description, url

  • [ ] applicationCategory + applicationSubCategory

  • [ ] featureList with specific capabilities (not marketing language)

  • [ ] offers array — one entry per pricing tier

  • [ ] priceSpecification.unitText — pricing model explicit (per seat, per month)

  • [ ] Free tier / free trial in additionalProperty

  • [ ] operatingSystem and availableOnDevice

  • [ ] audience.audienceType — explicit use case targeting

  • [ ] additionalProperty — integrations, compliance, deployment model

  • [ ] aggregateRating with real review count

  • [ ] FAQPage schema with 4–6 pre-purchase questions

  • [ ] Validate at webmcpguide.com/audit
  • ---

    Related articles:

  • How AI Agents Find and Recommend SaaS Tools

  • MCP + Schema.org: The Agent-to-Agent Commerce Stack

  • Schema Injection for Headless Apps

  • AI Shopping Engines in 2026

  • Free AI Visibility Audit →