aiagencies.fyi
AIAgencies
Find AI consultancies, AI development teams and AI automation agencies by city and country.
aiagencies.fyi
Find AI consultancies, AI development teams and AI automation agencies by city and country.
Submitted URLs are declarations until checked. Verification inspects published content and does not execute third-party tools.
1 duplicate documentation links
4 duplicate documentation 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(99.94 ÷ 100 × 100) = 100/100
99.94 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: AIAgencies; Countries; Regions; AI agencies by city; Categories; Free tools. Derived from headings; source checked 2026-11-10.
llms-full.txt: Documentation sections: AIAgencies; Canberra, ACT, Australia; Save Ideas Digital; Sydney, NSW, Australia; Apex AI; Automata AI Pty Ltd. Derived from headings; source checked 2026-11-10.
Listing updated: . Machine-readable profile (JSON)
{
"schemaVersion": "1.0",
"name": "AIAgencies",
"slug": "aiagencies",
"website": "https://aiagencies.fyi",
"category": "other",
"description": "Find AI consultancies, AI development teams and AI automation agencies by city and country.",
"capabilities": [
"llmsTxt documentation",
"llmsFullTxt documentation"
],
"aiResources": {
"llmsTxt": {
"type": "llmsTxt",
"url": "https://aiagencies.fyi/llms.txt",
"status": "verified",
"available": true,
"httpStatus": 200,
"checkedAt": "2026-11-10T22:36:17.505Z",
"lastSuccessfulAt": "2026-11-10T22:36:17.505Z",
"contentType": "text/plain; charset=utf-8",
"contentSize": 23310,
"estimatedTokens": 5825,
"tokenMethod": "UTF-16 characters / 4 (approximation)",
"contentHash": "a7efab58840f9ef9968f335af95708ad8e252113d072a923e677f2dc399b4ead",
"internalLinks": 263,
"externalLinks": 1,
"document": {
"h1Count": 1,
"firstBlockIsH1": true,
"title": "AIAgencies",
"usefulTitle": true,
"headingCount": 13,
"uniqueHeadingCount": 13,
"hasSections": true,
"orderedHeadings": true,
"sectionWithContent": true,
"fileListLinks": 262,
"summaryPresent": true,
"contextPresent": true,
"validLinks": 265,
"invalidLinks": 0,
"duplicateLinks": 1,
"descriptiveLinks": 264,
"annotatedLinks": 260
},
"linkHealth": {
"eligibleCount": 264,
"selectedCount": 5,
"sampledCount": 5,
"working": 5,
"broken": 0,
"unknown": 0,
"checkedAt": "2026-11-10T22:36:22.026Z",
"sourceHash": "a7efab58840f9ef9968f335af95708ad8e252113d072a923e677f2dc399b4ead",
"method": "deterministic sample, at most 5 URLs, at most 2 concurrent hosts, 15s budget",
"results": [
{
"url": "https://aiagencies.fyi/ca/ab.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:36:22.026Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://aiagencies.fyi/au/nsw/sydney.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:36:22.026Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://aiagencies.fyi/ca/on/brampton.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:36:22.026Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://aiagencies.fyi/au/queensland/eatons-hill.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:36:22.026Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://aiagencies.fyi/nz/rotorua.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:36:22.026Z",
"attempted": true,
"status": "working",
"reason": "http_success"
}
]
},
"headings": [
"AIAgencies",
"Countries",
"Regions",
"AI agencies by city",
"Categories",
"Free tools",
"Products",
"Academy",
"AI buying guides",
"About this site",
"Data sources",
"API"
],
"warnings": [
"1 duplicate documentation links"
],
"summary": "Documentation sections: AIAgencies; Countries; Regions; AI agencies by city; Categories; Free tools.",
"summarySourceHash": "a7efab58840f9ef9968f335af95708ad8e252113d072a923e677f2dc399b4ead",
"processingVersion": "2.0",
"method": "markdown-ast-analysis"
},
"llmsFullTxt": {
"type": "llmsFullTxt",
"url": "https://aiagencies.fyi/llms-full.txt",
"status": "verified",
"available": true,
"httpStatus": 200,
"checkedAt": "2026-11-10T22:36:20.376Z",
"lastSuccessfulAt": "2026-11-10T22:36:20.376Z",
"contentType": "text/plain; charset=utf-8",
"contentSize": 184688,
"estimatedTokens": 46153,
"tokenMethod": "UTF-16 characters / 4 (approximation)",
"contentHash": "63d3db9717ef084164629517901eb0ab65c07a427f422854169704b7d6fc70b6",
"internalLinks": 343,
"externalLinks": 328,
"document": {
"h1Count": 1,
"firstBlockIsH1": true,
"title": "AIAgencies",
"usefulTitle": true,
"headingCount": 566,
"uniqueHeadingCount": 563,
"hasSections": true,
"orderedHeadings": true,
"sectionWithContent": true,
"fileListLinks": 345,
"summaryPresent": true,
"contextPresent": true,
"validLinks": 675,
"invalidLinks": 0,
"duplicateLinks": 4,
"descriptiveLinks": 344,
"annotatedLinks": 14
},
"headings": [
"AIAgencies",
"Canberra, ACT, Australia",
"Save Ideas Digital",
"Sydney, NSW, Australia",
"Apex AI",
"Automata AI Pty Ltd",
"Cogninet AI",
"Flipside AI",
"Sparehand AI",
"Brisbane, QLD, Australia",
"Elevaite AI",
"Kindra AI"
],
"warnings": [
"4 duplicate documentation links"
],
"summary": "Documentation sections: AIAgencies; Canberra, ACT, Australia; Save Ideas Digital; Sydney, NSW, Australia; Apex AI; Automata AI Pty Ltd.",
"summarySourceHash": "63d3db9717ef084164629517901eb0ab65c07a427f422854169704b7d6fc70b6",
"processingVersion": "2.0",
"method": "markdown-ast-analysis"
},
"webmcp": null
},
"readiness": {
"score": 100,
"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": "262 valid link occurrence(s) inside Markdown lists.",
"points": 5
},
{
"id": "heading_uniqueness",
"label": "Non-repeated headings",
"weight": 5,
"observation": "13 unique heading(s) out of 13; 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.94,
"rules": [
{
"id": "link_syntax",
"label": "Resolvable HTTP(S) link syntax",
"weight": 5,
"observation": "265 valid URL occurrence(s), 0 malformed, unsupported or unresolved.",
"points": 5
},
{
"id": "link_uniqueness",
"label": "Unique documentation destinations",
"weight": 5,
"observation": "264 unique destination(s) from 265 valid occurrence(s).",
"points": 4.98
},
{
"id": "link_labels",
"label": "Descriptive link labels",
"weight": 2.5,
"observation": "264 of 264 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": "260 of 264 unique links have notes beside a Markdown list link.",
"points": 2.46
},
{
"id": "link_health",
"label": "Sampled destination accessibility",
"weight": 10,
"observation": "5 of 264 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: 4.98/5. Descriptive link labels: 2.5/2.5. Context beside file links: 2.46/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:36:17.505Z. 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": 10,
"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": 5
}
],
"explanation": "Useful summary blockquote: 5/5. Useful introductory context: 5/5."
}
],
"earnedPoints": 99.94,
"assessedWeight": 100,
"availableWeight": 100,
"provisional": false,
"calculatedAt": "2026-11-10T22:36:24.468Z",
"lastVerifiedAt": "2026-11-10T22:36:17.505Z",
"evidence": {
"sourceUrl": "https://aiagencies.fyi/llms.txt",
"contentHash": "a7efab58840f9ef9968f335af95708ad8e252113d072a923e677f2dc399b4ead",
"processingVersion": "2.0",
"retrievedAt": "2026-11-10T22:36:17.505Z"
},
"linkSampling": {
"eligibleCount": 264,
"selectedCount": 5,
"sampledCount": 5,
"working": 5,
"broken": 0,
"unknown": 0,
"checkedAt": "2026-11-10T22:36:22.026Z",
"sourceHash": "a7efab58840f9ef9968f335af95708ad8e252113d072a923e677f2dc399b4ead",
"method": "deterministic sample, at most 5 URLs, at most 2 concurrent hosts, 15s budget",
"results": [
{
"url": "https://aiagencies.fyi/ca/ab.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:36:22.026Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://aiagencies.fyi/au/nsw/sydney.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:36:22.026Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://aiagencies.fyi/ca/on/brampton.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:36:22.026Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://aiagencies.fyi/au/queensland/eatons-hill.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:36:22.026Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://aiagencies.fyi/nz/rotorua.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:36:22.026Z",
"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 264 unique links, not the entire website."
]
},
"updatedAt": "2026-11-10T22:36:24.469Z"
}Related listings based on category, resource types, and description keywords
apostilles.fyi
Apostille Finder helps you find the government office that issues your apostille. You can browse apostille authorities by country. Each listing shows the address, phone number and issuing fee. The data comes from official government pages. Confirm current rules and fees with the issuing office.
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.
262 valid link occurrence(s) inside Markdown lists.
13 unique heading(s) out of 13; code examples are excluded.
Resolvable HTTP(S) link syntax: 5/5. Unique documentation destinations: 4.98/5. Descriptive link labels: 2.5/2.5. Context beside file links: 2.46/2.5. Sampled destination accessibility: 10/10.
265 valid URL occurrence(s), 0 malformed, unsupported or unresolved.
264 unique destination(s) from 265 valid occurrence(s).
264 of 264 unique links have non-placeholder labels. This is a text heuristic, not a semantic guarantee.
260 of 264 unique links have notes beside a Markdown list link.
5 of 264 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:36:17.505Z. 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: 5/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.
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:36:24 UTC.
5 of 264 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:36:22 UTC · Source snapshot: a7efab58840f
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 264 unique links, not the entire website.
AI Resource Readiness
Confidence: high· V2
dishdirectory.com
Dish Directory lists restaurants by city with dishes, prices, and hours. Search by place and cuisine, open any listing for contact facts, and query the same data through a free API and MCP endpoint.
AI Resource Readiness
Confidence: high· V2
funeralcompare.fyi
FuneralCompare helps you compare funeral homes and cremation providers by what they publish. You can browse providers by country and region. Each listing shows the address, phone number and published fee list. Every page also has a markdown copy. Confirm current prices and services with the provider.
AI Resource Readiness
Confidence: medium· V2
luxurygaragebuilders.fyi
LuxuryGarageBuilders lists collector and showroom garage builders, car lift installers, garage flooring and cabinetry firms and climate-controlled car storage. Find one by place, or query the data through a free API and MCP endpoint.
AI Resource Readiness
Confidence: high· V2
marriagelicense.fyi
MarriageLicense.fyi lists marriage licence offices country by country: where to give notice, register offices, and county clerks, with addresses and sources. Free to browse, with an API and MCP endpoint.
AI Resource Readiness
Confidence: high· V2
privatedock.fyi
PrivateDock helps homeowners and designers find dock builders, boat lift dealers and marine contractors.
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.