loops.so
Loops
Email platform for modern software companies.
loops.so
Email platform for modern software companies.
Submitted URLs are declarations until checked. Verification inspects published content and does not execute third-party tools.
Format finding: start with one H1 naming the site or project.
Quality suggestion: add a short summary blockquote before the file sections.
1394 duplicate documentation links
17 unsupported, malformed or unresolved links
The score measures observable documentation quality. Each component below lists its earned points, exact checks, and source observations. It is not a prediction of AI rankings or citations.
Overall readiness
Confidence: high· V2
How this score is calculated
round(94.99 ÷ 100 × 100) = 95/100
94.99 points earned out of 100 assessed. All 100 available points were assessed. The checks below show each result. Optional integrations and file size earn no extra points.
Full scoring rules and worked exampleCurrent usable primary file: 25/25.
Current llms.txt retrieval succeeded (HTTP 200); usable text verified.
llms.txt: Documentation sections: Loops; OpenAPI Specs. Derived from headings; source checked 2026-11-10.
llms-full.txt: Documentation sections: Billing; How billing works; How we calculate your tier; Free plan; Paid plans; Sending rate limits. Derived from headings; source checked 2026-11-10.
Listing updated: . Machine-readable profile (JSON)
{
"schemaVersion": "1.0",
"name": "Loops",
"slug": "loops",
"website": "https://loops.so",
"category": "saas",
"description": "Email platform for modern software companies.",
"capabilities": [
"llmsTxt documentation",
"llmsFullTxt documentation"
],
"aiResources": {
"llmsTxt": {
"type": "llmsTxt",
"url": "https://loops.so/docs/llms.txt",
"status": "verified",
"available": true,
"httpStatus": 200,
"checkedAt": "2026-11-10T22:21:20.878Z",
"lastSuccessfulAt": "2026-11-10T22:21:20.878Z",
"contentType": "text/plain; charset=utf-8",
"contentSize": 37710,
"estimatedTokens": 9426,
"tokenMethod": "UTF-16 characters / 4 (approximation)",
"contentHash": "54de8fae7881bb5896fecad344db547ade64fcc458dc7a3b7755ee9b1bad3882",
"internalLinks": 245,
"externalLinks": 1,
"document": {
"h1Count": 1,
"firstBlockIsH1": true,
"title": "Loops",
"usefulTitle": true,
"headingCount": 2,
"uniqueHeadingCount": 2,
"hasSections": true,
"orderedHeadings": true,
"sectionWithContent": true,
"fileListLinks": 246,
"summaryPresent": true,
"contextPresent": false,
"validLinks": 246,
"invalidLinks": 0,
"duplicateLinks": 0,
"descriptiveLinks": 246,
"annotatedLinks": 245
},
"linkHealth": {
"eligibleCount": 246,
"selectedCount": 5,
"sampledCount": 5,
"working": 5,
"broken": 0,
"unknown": 0,
"checkedAt": "2026-11-10T22:21:23.568Z",
"sourceHash": "54de8fae7881bb5896fecad344db547ade64fcc458dc7a3b7755ee9b1bad3882",
"method": "deterministic sample, at most 5 URLs, at most 2 concurrent hosts, 15s budget",
"results": [
{
"url": "https://loops.so/docs/cli/auth.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:21:23.568Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://loops.so/docs/add-users/csv-upload.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:21:23.568Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://loops.so/docs/deliverability/legally-mandated-email.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:21:23.568Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://loops.so/docs/sdks/php.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:21:23.568Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://loops.so/docs/guides/intro.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:21:23.568Z",
"attempted": true,
"status": "working",
"reason": "http_success"
}
]
},
"headings": [
"Loops",
"OpenAPI Specs"
],
"warnings": [],
"summary": "Documentation sections: Loops; OpenAPI Specs.",
"summarySourceHash": "54de8fae7881bb5896fecad344db547ade64fcc458dc7a3b7755ee9b1bad3882",
"processingVersion": "2.0",
"method": "markdown-ast-analysis"
},
"llmsFullTxt": {
"type": "llmsFullTxt",
"url": "https://loops.so/docs/llms-full.txt",
"status": "verified",
"available": true,
"httpStatus": 200,
"checkedAt": "2026-11-10T22:21:21.361Z",
"lastSuccessfulAt": "2026-11-10T22:21:21.361Z",
"contentType": "text/plain; charset=utf-8",
"contentSize": 941613,
"estimatedTokens": 235235,
"tokenMethod": "UTF-16 characters / 4 (approximation)",
"contentHash": "d85c96358208a47b7ff4feaf974978a0bee7c23e37111d980b4668bb95bc3aba",
"internalLinks": 234,
"externalLinks": 161,
"document": {
"h1Count": 245,
"firstBlockIsH1": true,
"title": "Billing",
"usefulTitle": true,
"headingCount": 1362,
"uniqueHeadingCount": 1068,
"hasSections": true,
"orderedHeadings": false,
"sectionWithContent": true,
"fileListLinks": 209,
"summaryPresent": false,
"contextPresent": true,
"validLinks": 1789,
"invalidLinks": 17,
"duplicateLinks": 1394,
"descriptiveLinks": 391,
"annotatedLinks": 15
},
"headings": [
"Billing",
"How billing works",
"How we calculate your tier",
"Free plan",
"Paid plans",
"Sending rate limits",
"Multiple teams",
"Billing receipt emails",
"Canceling your subscription",
"Change your login email",
"Delete your account",
"Group billing"
],
"warnings": [
"Format finding: start with one H1 naming the site or project.",
"Quality suggestion: add a short summary blockquote before the file sections.",
"1394 duplicate documentation links",
"17 unsupported, malformed or unresolved links"
],
"summary": "Documentation sections: Billing; How billing works; How we calculate your tier; Free plan; Paid plans; Sending rate limits.",
"summarySourceHash": "d85c96358208a47b7ff4feaf974978a0bee7c23e37111d980b4668bb95bc3aba",
"processingVersion": "2.0",
"method": "markdown-ast-analysis"
},
"webmcp": null
},
"readiness": {
"score": 95,
"version": "2.0",
"confidence": "high",
"components": [
{
"name": "availability",
"weight": 25,
"assessedWeight": 25,
"points": 25,
"rules": [
{
"id": "current_access",
"label": "Current usable primary file",
"weight": 25,
"observation": "Current llms.txt retrieval succeeded (HTTP 200); usable text verified.",
"points": 25
}
],
"explanation": "Current usable primary file: 25/25."
},
{
"name": "structure",
"weight": 25,
"assessedWeight": 25,
"points": 25,
"rules": [
{
"id": "title",
"label": "One project H1 at the beginning",
"weight": 10,
"observation": "1 H1 heading(s); starts with H1: yes.",
"points": 10
},
{
"id": "sections",
"label": "Coherent content sections",
"weight": 5,
"observation": "H2 with content: yes; no heading-level jumps: yes.",
"points": 5
},
{
"id": "file_lists",
"label": "Documentation links organized in lists",
"weight": 5,
"observation": "246 valid link occurrence(s) inside Markdown lists.",
"points": 5
},
{
"id": "heading_uniqueness",
"label": "Non-repeated headings",
"weight": 5,
"observation": "2 unique heading(s) out of 2; code examples are excluded.",
"points": 5
}
],
"explanation": "One project H1 at the beginning: 10/10. Coherent content sections: 5/5. Documentation links organized in lists: 5/5. Non-repeated headings: 5/5."
},
{
"name": "links",
"weight": 25,
"assessedWeight": 25,
"points": 24.99,
"rules": [
{
"id": "link_syntax",
"label": "Resolvable HTTP(S) link syntax",
"weight": 5,
"observation": "246 valid URL occurrence(s), 0 malformed, unsupported or unresolved.",
"points": 5
},
{
"id": "link_uniqueness",
"label": "Unique documentation destinations",
"weight": 5,
"observation": "246 unique destination(s) from 246 valid occurrence(s).",
"points": 5
},
{
"id": "link_labels",
"label": "Descriptive link labels",
"weight": 2.5,
"observation": "246 of 246 unique links have non-placeholder labels. This is a text heuristic, not a semantic guarantee.",
"points": 2.5
},
{
"id": "link_notes",
"label": "Context beside file links",
"weight": 2.5,
"observation": "245 of 246 unique links have notes beside a Markdown list link.",
"points": 2.49
},
{
"id": "link_health",
"label": "Sampled destination accessibility",
"weight": 10,
"observation": "5 of 246 destinations sampled: 5 working, 0 confirmed 404/410, 0 unknown. Only working and confirmed-broken results enter this fraction.",
"points": 10
}
],
"explanation": "Resolvable HTTP(S) link syntax: 5/5. Unique documentation destinations: 5/5. Descriptive link labels: 2.5/2.5. Context beside file links: 2.49/2.5. Sampled destination accessibility: 10/10."
},
{
"name": "confidence",
"weight": 15,
"assessedWeight": 15,
"points": 15,
"rules": [
{
"id": "verification_age",
"label": "Age of last successful verification",
"weight": 10,
"observation": "Last success: 2026-11-10T22:21:20.878Z. Full points through day 8 (7-day schedule plus 1-day grace), 60% through day 30, 20% thereafter or for an unknown date.",
"points": 10
},
{
"id": "latest_success",
"label": "Latest primary check succeeded",
"weight": 5,
"observation": "Latest primary verification succeeded.",
"points": 5
}
],
"explanation": "Age of last successful verification: 10/10. Latest primary check succeeded: 5/5."
},
{
"name": "metadata",
"weight": 10,
"assessedWeight": 10,
"points": 5,
"rules": [
{
"id": "summary",
"label": "Useful summary blockquote",
"weight": 5,
"observation": "A blockquote before the first H2 with at least 20 non-whitespace characters and no placeholder-only text.",
"points": 5
},
{
"id": "context",
"label": "Useful introductory context",
"weight": 5,
"observation": "An introductory paragraph before the first H2 with at least 20 non-whitespace characters and no placeholder-only text. Listing form fields do not earn these points.",
"points": 0
}
],
"explanation": "Useful summary blockquote: 5/5. Useful introductory context: 0/5."
}
],
"earnedPoints": 94.99,
"assessedWeight": 100,
"availableWeight": 100,
"provisional": false,
"calculatedAt": "2026-11-10T22:21:24.864Z",
"lastVerifiedAt": "2026-11-10T22:21:20.878Z",
"evidence": {
"sourceUrl": "https://loops.so/docs/llms.txt",
"contentHash": "54de8fae7881bb5896fecad344db547ade64fcc458dc7a3b7755ee9b1bad3882",
"processingVersion": "2.0",
"retrievedAt": "2026-11-10T22:21:20.878Z"
},
"linkSampling": {
"eligibleCount": 246,
"selectedCount": 5,
"sampledCount": 5,
"working": 5,
"broken": 0,
"unknown": 0,
"checkedAt": "2026-11-10T22:21:23.568Z",
"sourceHash": "54de8fae7881bb5896fecad344db547ade64fcc458dc7a3b7755ee9b1bad3882",
"method": "deterministic sample, at most 5 URLs, at most 2 concurrent hosts, 15s budget",
"results": [
{
"url": "https://loops.so/docs/cli/auth.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:21:23.568Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://loops.so/docs/add-users/csv-upload.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:21:23.568Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://loops.so/docs/deliverability/legally-mandated-email.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:21:23.568Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://loops.so/docs/sdks/php.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:21:23.568Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://loops.so/docs/guides/intro.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:21:23.568Z",
"attempted": true,
"status": "working",
"reason": "http_success"
}
]
},
"warnings": [
"This measures observable documentation, not model rankings or citation probability.",
"H1 is the only required section in the llms.txt proposal. Other checks are LLMSList quality preferences; missing optional sections do not make usable text invalid.",
"Destination accessibility covers a sample of 5 out of 246 unique links, not the entire website."
]
},
"updatedAt": "2026-11-10T22:21:24.865Z"
}Related listings based on category, resource types, and description keywords
mygps.gr
GPS tracking and fleet management platform for businesses in Greece, with Teltonika devices, installation and Greek-language support.
One project H1 at the beginning: 10/10. Coherent content sections: 5/5. Documentation links organized in lists: 5/5. Non-repeated headings: 5/5.
1 H1 heading(s); starts with H1: yes.
H2 with content: yes; no heading-level jumps: yes.
246 valid link occurrence(s) inside Markdown lists.
2 unique heading(s) out of 2; code examples are excluded.
Resolvable HTTP(S) link syntax: 5/5. Unique documentation destinations: 5/5. Descriptive link labels: 2.5/2.5. Context beside file links: 2.49/2.5. Sampled destination accessibility: 10/10.
246 valid URL occurrence(s), 0 malformed, unsupported or unresolved.
246 unique destination(s) from 246 valid occurrence(s).
246 of 246 unique links have non-placeholder labels. This is a text heuristic, not a semantic guarantee.
245 of 246 unique links have notes beside a Markdown list link.
5 of 246 destinations sampled: 5 working, 0 confirmed 404/410, 0 unknown. Only working and confirmed-broken results enter this fraction.
Age of last successful verification: 10/10. Latest primary check succeeded: 5/5.
Last success: 2026-11-10T22:21:20.878Z. Full points through day 8 (7-day schedule plus 1-day grace), 60% through day 30, 20% thereafter or for an unknown date.
Latest primary verification succeeded.
Useful summary blockquote: 5/5. Useful introductory context: 0/5.
A blockquote before the first H2 with at least 20 non-whitespace characters and no placeholder-only text.
An introductory paragraph before the first H2 with at least 20 non-whitespace characters and no placeholder-only text. Listing form fields do not earn these points.
How to improve: Add a useful > summary and a separate introductory paragraph before the first ## section in the file itself. Each must contain at least 20 non-whitespace characters and not consist only of placeholder text. Each earns five default points. Editing listing form fields alone does not improve this component.
80–100%50–79%0–49%Gray: not assessed
Component colors use earned points ÷ assessed points. Unmeasured checks are excluded from the assessed maximum. Model v2.0. Calculated 2026-11-10 22:21:24 UTC.
5 of 246 unique destinations checked: 5 working, 0 confirmed broken, 0 unknown. We check up to five destinations, not every page. A successful HTTP response does not prove that a page is relevant or factually correct.
Sample checked: 2026-11-10 22:21:23 UTC · Source snapshot: 54de8fae7881
Destination responded successfully
Destination responded successfully
Destination responded successfully
Last verified: 2026-11-10.
This measures observable documentation, not model rankings or citation probability.
H1 is the only required section in the llms.txt proposal. Other checks are LLMSList quality preferences; missing optional sections do not make usable text invalid.
Destination accessibility covers a sample of 5 out of 246 unique links, not the entire website.
AI Resource Readiness
Confidence: medium· V2
geardex.app
GearDex is a camera gear inventory and business app for photographers and small video studios. You log bodies and lenses with serial numbers and insurance values. Paid plans add loans with QR check-out plus client galleries. The llms.txt covers plans and features for the web app and the Mac and Windows desktop apps.
AI Resource Readiness
Confidence: medium· V2 · provisional
gearpicked.com
GearPicked offers manual directory submissions for AI and SaaS products ($99 for 100 directories or $149 for 200), a public checked directory list, a free shortlist builder, and comparison guides. The llms.txt and llms-full.txt files describe the service pages and guides.
AI Resource Readiness
Confidence: medium· V2
kollavo.com
Kollavo gets your company cited in AI answers (ChatGPT, Perplexity, Google AI, Claude, Gemini) with AI visibility monitoring and done-for-you citation placements.
AI Resource Readiness
Confidence: high· V2
simpleverifier.com
Bulk email verification with a live SMTP mailbox check. Valid, risky or invalid with a reason on every row. Plans from $9/mo; first 100 checks free, no card. simpleverifier.com
AI Resource Readiness
Confidence: high· V2
snapevents.com
Corporate event, open-book DMC, 150-venue buyout, zero-attrition group hotel block & Hotel BEO Quote Auditor platform serving Las Vegas, NV and Austin, TX (HQ: 105 Lands End Cove, Round Rock, TX 78681 · (512) 971-5049) with statutory Out-the-Door pricing and 306 Markdown twins.
AI Resource Readiness
Confidence: high· V2
Destination responded successfully
Destination responded successfully
Only HTTP 404/410 is classified as confirmed broken. HTTP 403/429, timeouts and incomplete checks remain unknown. If all sample outcomes are unknown, the link-health check is excluded from the assessed maximum and the score is marked provisional.