Certificado AgentReady.md verificado
Emitido el sig: cedb95c8d8d97966 Verificar →

URL analizada

https://zentract.io

Analizar otra URL

Puntuación AI-Ready

89 / B

Bueno

de 100

Ahorro de tokens

Tokens HTML 30.615
Tokens Markdown 1083
Ahorro 96%

Desglose de la puntuación

HTML semántico 83/100
Eficiencia del contenido 93/100
Visibilidad para IA 77/100
Datos estructurados 100/100
Accesibilidad 100/100

Protocolos emergentes

1 de 3 detectados

Endpoints well-known que los AI agents buscan. Detectados significa que un agente puede descubrir y conectar con tu servicio automáticamente.

  • OAuth Discovery RFC 8414
    /.well-known/oauth-authorization-server
    • issuer: https://zentract.io
    • token_endpoint: https://zentract.io/api/oauth2/token
    • 2 grant type(s)
  • MCP Server Card Anthropic
    /.well-known/mcp.json
  • A2A Agent Card Google
    /.well-known/agent.json

Tu sitio no soporta Markdown for Agents. Este estándar de Cloudflare permite a los agentes IA solicitar contenido en formato markdown, reduciendo el uso de tokens en ~80%.

Cómo implementarlo

Implementa uno o más: (1) Responder a Accept: text/markdown con contenido markdown. (2) Servir URLs .md (ej: /pagina.md). (3) Añadir etiquetas <link rel="alternate" type="text/markdown">. (4) Añadir cabeceras HTTP Link para descubrimiento markdown.

{\n res.setHeader('Vary', 'Accept');\n res.setHeader('Link', '; rel=\"alternate\"; type=\"text/markdown\"');\n if ((req.headers.accept || '').includes('text/markdown')) {\n res.type('text/markdown; charset=utf-8');\n return res.send(renderMarkdown('page'));\n }\n res.render('page');\n});"},{"id":"fastify","label":"Fastify","language":"javascript","filename":"server.js","code":"// Mechanisms 1 + 4: content negotiation + Link header\nfastify.get('/page', async (req, reply) => {\n reply.header('Vary', 'Accept');\n reply.header('Link', '; rel=\"alternate\"; type=\"text/markdown\"');\n if ((req.headers.accept || '').includes('text/markdown')) {\n return reply.type('text/markdown; charset=utf-8').send(renderMarkdown('page'));\n }\n return reply.view('/page.ejs');\n});"},{"id":"nextjs","label":"Next.js","language":"typescript","filename":"app/page/route.ts","code":"// Next.js App Router — Route Handler returning Markdown\nimport { NextRequest } from 'next/server';\nimport { renderMarkdown } from '@/lib/md';\nexport async function GET(req: NextRequest) {\n const accept = req.headers.get('accept') || '';\n if (accept.includes('text/markdown')) {\n return new Response(await renderMarkdown('page'), {\n headers: {\n 'Content-Type': 'text/markdown; charset=utf-8',\n 'Vary': 'Accept',\n },\n });\n }\n // Fall through to the page component\n return new Response(null, { status: 404 });\n}"},{"id":"wordpress","label":"WordPress","language":"php","filename":"functions.php","code":"post_content));\n exit;\n});"},{"id":"static","label":"Hugo / Jekyll / Astro","language":"txt","filename":"static/page.md","code":"# Mechanism 2: serve .md alongside .html\n# Hugo: place page.md in /static/ — built unchanged\n# Jekyll: drop page.md in /assets/ — copied as-is\n# Astro: src/pages/page.md.ts that exports a GET returning markdown\n\n# Then advertise with mechanism 3 in :\n# "}] }'>

Tu página depende en gran medida de elementos <div>. Los elementos semánticos como <section>, <nav>, <header>, <footer> y <aside> proporcionan una estructura significativa para los AI agents.

Cómo implementarlo

Reemplaza los contenedores <div> genéricos con los elementos semánticos apropiados. Usa <section> para grupos temáticos, <nav> para navegación, <header>/<footer> para cabeceras y pies de página o sección.

Muchos elementos tienen atributos de estilo en línea. Estos añaden ruido para los AI agents al extraer contenido.

Cómo implementarlo

Mueve todos los estilos en línea a clases CSS en tu hoja de estilos. Usa frameworks de CSS utilitario como Tailwind si necesitas muchos estilos únicos.

Tokens Markdown: 1083
For agencies that bill time

# Stop losing revenue
to time you already
worked.

Zentract connects tasks, time, and billing in one place. Catch missed hours and overages before they become write-offs.

Join the waitlist

[Sign in →](https://zentract.io/sign-in)

No credit card required.

zentract — Acme Corp / Website Redesign

Write homepage copy

Acme Corp · Copywriting

1:45

Design system audit

Acme Corp · Design · Billable

02:34:18

Handoff to dev

Acme Corp · PM

—

Live timerRecording

02:34:18

Design system audit · Acme Corp

Used byDesign agenciesDev shopsConsulting firmsFractional teamsMarketing studios

The real cost of disconnected tools

01

### Time logged late is time not invoiced.

Details fade. Entries disappear. By Friday, no one remembers Tuesday's four-hour deep-work session.

02

### Scope creeps before you can react.

You hit 80% of budget with 40% of work left. The signal came too late to have a real conversation.

03

### Billing is a monthly reconstruction.

You spend hours piecing together what happened. Then write off the hours that don't have receipts.

Time Tracking

## Every task
is a timer.

One click starts tracking. Zentract ties the entry to the task, project, and client automatically. No separate app. No retroactive guessing.

-   ✓One-click timers on any task
-   ✓Billable vs non-billable on every entry
-   ✓Log from web or iOS & Android
-   ✓Only one timer runs at a time

Active tasks1 running

Design system audit

Acme Corp · Billable

02:34:18

Write homepage copy

Acme Corp · Billable

1:45:00

Stakeholder review call

Acme Corp · Non-billable

—

02:34:18

today · Acme Corp

Budget overviewLive

Website Redesign · Acme Corp82%

Q2 Content Strategy · Bloom44%

Platform Audit · NovaTech107%

Budgeted

240h

Logged

198h

Remaining

42h

Budget Control

## See the overage
before it happens.

Budget vs actual updates in real-time as time is logged. Get a warning at 80%. Have the scope conversation while there's still something to negotiate.

-   ✓Real-time budget vs actual
-   ✓Overage alerts at your threshold
-   ✓Per-project and per-client views
-   ✓Hours or dollar-based budgets

Invoicing

## Invoice from
source, not memory.

Select a billing period. Zentract groups time entries by task and generates line items. No spreadsheet. No reconstruction. The invoice reflects what actually happened.

-   ✓Generate from tracked time entries
-   ✓Grouped by task or category
-   ✓Billable-only filter built in
-   ✓Export-ready output

Invoice previewReady to export

Acme Corp

March 1–31, 2026

INV-0024

Due Apr 14, 2026

Design system audit

14.5 hrs · $150/hr

$2,175

Homepage copy

6.25 hrs · $120/hr

$750

Project management

3.0 hrs · $120/hr

$360

Total due$3,285

Export invoice →

## How it works.

Three steps. No setup ceremony. No onboarding calls required.

STEP 01

### Set up a project.

Create a client, add a project with a budget. Add tasks for the work ahead. Takes three minutes.

STEP 02

### Track time as you work.

Open a task, hit start. Stop when you're done. Zentract logs it against the client and project, billable or not.

STEP 03

### Invoice with one click.

Select a billing period. Review grouped line items from real entries. Export. Done.

## Free to start.
Scales when you do.

Everything you need to run a small team — no credit card, no 14-day trial cliff. Upgrade when your operation grows.

Free tier

$0/ month

-   ✓3 team members
-   ✓5 clients
-   ✓10 projects
-   ✓Unlimited time tracking
-   ✓Invoice generation
-   ✓iOS & Android apps

Join the waitlist

FAQ

## Common questions

Everything you need to know before getting started with Zentract.

How does Zentract help agencies track billable hours?

How is Zentract different from Harvest or Toggl?

Can Zentract generate invoices from time tracking?

Is Zentract free to use?

What types of agencies and teams use Zentract?

Does Zentract prevent scope creep on client projects?

Does Zentract have mobile apps?

## Every hour you worked
deserves to be invoiced.

Join early access. We'll reach out when your workspace is ready. No credit card required.

Join the waitlist

No credit card · No spam · Cancel anytime

Already using Zentract? [Sign in →](https://zentract.io/sign-in)
Zentract — Agency Time Tracking & Client Billing Software

For agencies that bill time

# Stop losing revenue
to time you already
worked.

Zentract connects tasks, time, and billing in one place. Catch missed hours and overages before they become write-offs.

Join the waitlist

[Sign in →](https://zentract.io/sign-in)

No credit card required.

zentract — Acme Corp / Website Redesign

Write homepage copy

Acme Corp · Copywriting

1:45

Design system audit

Acme Corp · Design · Billable

02:34:18

Handoff to dev

Acme Corp · PM

—

Live timerRecording

02:34:18

Design system audit · Acme Corp

Used byDesign agenciesDev shopsConsulting firmsFractional teamsMarketing studios

The real cost of disconnected tools

01

### Time logged late is time not invoiced.

Details fade. Entries disappear. By Friday, no one remembers Tuesday's four-hour deep-work session.

02

### Scope creeps before you can react.

You hit 80% of budget with 40% of work left. The signal came too late to have a real conversation.

03

### Billing is a monthly reconstruction.

You spend hours piecing together what happened. Then write off the hours that don't have receipts.

Time Tracking

## Every task
is a timer.

One click starts tracking. Zentract ties the entry to the task, project, and client automatically. No separate app. No retroactive guessing.

-   ✓One-click timers on any task
-   ✓Billable vs non-billable on every entry
-   ✓Log from web or iOS & Android
-   ✓Only one timer runs at a time

Active tasks1 running

Design system audit

Acme Corp · Billable

02:34:18

Write homepage copy

Acme Corp · Billable

1:45:00

Stakeholder review call

Acme Corp · Non-billable

—

02:34:18

today · Acme Corp

Budget overviewLive

Website Redesign · Acme Corp82%

Q2 Content Strategy · Bloom44%

Platform Audit · NovaTech107%

Budgeted

240h

Logged

198h

Remaining

42h

Budget Control

## See the overage
before it happens.

Budget vs actual updates in real-time as time is logged. Get a warning at 80%. Have the scope conversation while there's still something to negotiate.

-   ✓Real-time budget vs actual
-   ✓Overage alerts at your threshold
-   ✓Per-project and per-client views
-   ✓Hours or dollar-based budgets

Invoicing

## Invoice from
source, not memory.

Select a billing period. Zentract groups time entries by task and generates line items. No spreadsheet. No reconstruction. The invoice reflects what actually happened.

-   ✓Generate from tracked time entries
-   ✓Grouped by task or category
-   ✓Billable-only filter built in
-   ✓Export-ready output

Invoice previewReady to export

Acme Corp

March 1–31, 2026

INV-0024

Due Apr 14, 2026

Design system audit

14.5 hrs · $150/hr

$2,175

Homepage copy

6.25 hrs · $120/hr

$750

Project management

3.0 hrs · $120/hr

$360

Total due$3,285

Export invoice →

## How it works.

Three steps. No setup ceremony. No onboarding calls required.

STEP 01

### Set up a project.

Create a client, add a project with a budget. Add tasks for the work ahead. Takes three minutes.

STEP 02

### Track time as you work.

Open a task, hit start. Stop when you're done. Zentract logs it against the client and project, billable or not.

STEP 03

### Invoice with one click.

Select a billing period. Review grouped line items from real entries. Export. Done.

## Free to start.
Scales when you do.

Everything you need to run a small team — no credit card, no 14-day trial cliff. Upgrade when your operation grows.

Free tier

$0/ month

-   ✓3 team members
-   ✓5 clients
-   ✓10 projects
-   ✓Unlimited time tracking
-   ✓Invoice generation
-   ✓iOS & Android apps

Join the waitlist

FAQ

## Common questions

Everything you need to know before getting started with Zentract.

How does Zentract help agencies track billable hours?

How is Zentract different from Harvest or Toggl?

Can Zentract generate invoices from time tracking?

Is Zentract free to use?

What types of agencies and teams use Zentract?

Does Zentract prevent scope creep on client projects?

Does Zentract have mobile apps?

## Every hour you worked
deserves to be invoiced.

Join early access. We'll reach out when your workspace is ready. No credit card required.

Join the waitlist

No credit card · No spam · Cancel anytime

Already using Zentract? [Sign in →](https://zentract.io/sign-in)

Sube este archivo como /index.md en tu servidor para que los AI agents puedan acceder a una versión limpia de tu página. También puedes configurar la negociación de contenido Accept: text/markdown para servirlo automáticamente.

Nuestra recomendación

Descargar llms.txt
# zentract.io

> One-click time tracking, real-time budget alerts, and client invoicing in one platform. Built for agencies and consultants. Free for up to 3 team members.

## Main
- [Zentract — Agency Time Tracking & Client Billing Software](https://zentract.io): One-click time tracking, real-time budget alerts, and client invoicing in one platform. Built for agencies and consulta…
- [ZentractZENTRACT](https://zentract.io/)
- [Sign in](https://zentract.io/sign-in)

## Legal
- [Privacy](https://zentract.io/privacy)
- [Terms](https://zentract.io/terms)

## Support
- [Contact](https://zentract.io/contact)

El llms.txt completo requiere un análisis de todo el dominio (próximamente)

Sube este archivo a https://zentract.io/llms.txt en la raíz de tu dominio. Los AI agents como ChatGPT, Claude y Perplexity consultan este archivo para comprender la estructura de tu sitio.

Este sitio ya tiene un archivo llms.txt.

Formato válido
# Zentract

> Zentract is a project management and time tracking platform for professional services firms. 
It helps teams manage clients, projects, tasks, time entries, billing, and reporting.

Important notes:
- Public crawling rules are defined in robots.txt; see links below.


## About Site

- [Homepage](https://zentract.io)
- [Privacy](https://zentract.io/privacy): Privacy policy
- [Terms](https://zentract.io/terms): Terms of service
- [Contact](https://zentract.io/contact): Contact us page
- [robots.txt](https://zentract.io/robots.txt): Crawler access rules and disallowed paths
- [Sitemap](https://zentract.io/sitemap.xml): Discoverable public pages

HTML semántico

Usa elementos article o main (100/100)

Has <main>

Jerarquía de encabezados correcta (85/100)

1 heading level skip(s)

Usa elementos HTML semánticos (32/100)

14 semantic elements, 134 divs (ratio: 9%)

Textos alternativos descriptivos en imágenes (100/100)

No images found

Poca profundidad de anidamiento de divs (100/100)

Avg div depth: 4.6, max: 8

Eficiencia del contenido

Buen ratio de reducción de tokens (100/100)

96% token reduction (HTML→Markdown)

Buen ratio de contenido frente a ruido (100/100)

Content ratio: 59.2% (60153 content chars / 101540 HTML bytes)

Estilos en línea mínimos (50/100)

21/466 elements with inline styles (4.5%)

Peso de página razonable (100/100)

HTML size: 99KB

Visibilidad para IA

Tiene archivo llms.txt (100/100)

llms.txt exists and is valid

Tiene archivo robots.txt (100/100)

robots.txt exists

robots.txt permite bots de IA (100/100)

All major AI bots allowed

Tiene sitemap.xml (100/100)

Sitemap found

Soporte de Markdown for Agents (40/100) Cloudflare CDN
&#10003; Accept: text/markdown &#10007; .md URL &#10007; <link> tag &#10007; Link header YAML frontmatter (basic)
Tiene Content-Signal (robots.txt o cabeceras HTTP) (60/100)
&#10003; robots.txt &#10007; HTTP header &#10007; Policy

Datos estructurados

Tiene Schema.org / JSON-LD (100/100)

JSON-LD found: Organization, WebApplication, FAQPage

Tiene etiquetas Open Graph (100/100)

All OG tags present

Tiene meta description (100/100)

Meta description: 154 chars

Tiene URL canónica (100/100)

Canonical URL present

Tiene atributo lang (100/100)

lang="en"

Accesibilidad

Contenido disponible sin JavaScript (100/100)

Content available without JavaScript

Tamaño de página razonable (100/100)

Page size: 99KB

El contenido aparece temprano en el HTML (100/100)

Main content starts at 13% of HTML

{
  "url": "https://zentract.io",
  "timestamp": 1777728201324,
  "fetch": {
    "mode": "simple",
    "timeMs": 435,
    "htmlSizeBytes": 101540,
    "supportsMarkdown": true,
    "markdownAgents": {
      "contentNegotiation": true,
      "mdUrl": {
        "found": false,
        "url": null
      },
      "linkTag": {
        "found": false,
        "url": null
      },
      "linkHeader": {
        "found": false,
        "url": null
      },
      "responseHeaders": {
        "contentSignal": null,
        "xMarkdownTokens": "820",
        "vary": "Accept"
      },
      "frontmatter": {
        "present": true,
        "fields": [
          "title",
          "path"
        ],
        "level": "basic"
      },
      "level": "cloudflare"
    },
    "statusCode": 200
  },
  "extraction": {
    "title": "Zentract — Agency Time Tracking & Client Billing Software",
    "excerpt": "((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=[\"light\",\"dark\"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c=\"class\"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d)",
    "byline": null,
    "siteName": null,
    "lang": "en",
    "contentLength": 60153,
    "metadata": {
      "description": "One-click time tracking, real-time budget alerts, and client invoicing in one platform. Built for agencies and consultants. Free for up to 3 team members.",
      "ogTitle": "Zentract — Agency Time Tracking & Client Billing Software",
      "ogDescription": "One-click time tracking, real-time budget alerts, and client invoicing in one platform. Stop losing revenue to hours you already worked.",
      "ogImage": "https://zentract.io/og-image.png",
      "ogType": "website",
      "canonical": "https://zentract.io",
      "lang": "en",
      "schemas": [
        {
          "@context": "https://schema.org",
          "@type": "Organization",
          "name": "Zentract",
          "url": "https://zentract.io",
          "logo": "https://zentract.io/logo.png",
          "description": "Agency management platform for time tracking, project billing, and client invoicing. Built for agencies, consultancies, and professional services teams.",
          "sameAs": [
            "https://twitter.com/zentractapp",
            "https://www.linkedin.com/company/vokality",
            "https://www.producthunt.com/products/zentract"
          ],
          "contactPoint": {
            "@type": "ContactPoint",
            "contactType": "customer support",
            "url": "https://zentract.io/contact"
          }
        },
        {
          "@context": "https://schema.org",
          "@type": "WebApplication",
          "name": "Zentract",
          "applicationCategory": "BusinessApplication",
          "operatingSystem": "Web, iOS, Android",
          "description": "One-click time tracking with real-time budget monitoring and client invoicing for agencies and professional services teams.",
          "url": "https://zentract.io",
          "offers": {
            "@type": "Offer",
            "price": "0",
            "priceCurrency": "USD",
            "description": "Free plan available — up to 3 team members, 5 clients, 10 projects"
          },
          "featureList": [
            "One-click billable time tracking",
            "Real-time project budget monitoring",
            "Client invoice generation from time entries",
            "Scope creep alerts",
            "iOS and Android mobile apps",
            "Team collaboration"
          ],
          "screenshot": "https://zentract.io/og-image.png"
        },
        {
          "@context": "https://schema.org",
          "@type": "FAQPage",
          "mainEntity": [
            {
              "@type": "Question",
              "name": "How does Zentract help agencies track billable hours?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Zentract lets you start a timer with one click directly from any task. Each time entry is automatically linked to the task, project, and client, so there is no retroactive guessing. You can mark hours as billable or non-billable, and your team's time is always visible in real time."
              }
            },
            {
              "@type": "Question",
              "name": "How is Zentract different from Harvest or Toggl?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Harvest and Toggl are strong standalone time trackers, but they require manual work to connect time to projects, budgets, and invoices. Zentract integrates time tracking, project budget monitoring, and client billing in one place so teams can see budget risk early and invoice directly from tracked time."
              }
            },
            {
              "@type": "Question",
              "name": "Can Zentract generate invoices from time tracking?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Yes. Once your team logs time against a client project, you can generate a client invoice directly from those entries. Zentract pulls billable hours automatically, so billing becomes a one-click process instead of a manual reconstruction at month end."
              }
            },
            {
              "@type": "Question",
              "name": "Is Zentract free to use?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Yes. Zentract has a free tier that supports up to 3 team members, 5 clients, and 10 projects, with unlimited time tracking and invoice generation included. No credit card is required."
              }
            },
            {
              "@type": "Question",
              "name": "What types of agencies and teams use Zentract?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Zentract is built for teams that bill by the hour, including design agencies, development shops, marketing studios, consulting firms, and fractional service teams."
              }
            },
            {
              "@type": "Question",
              "name": "Does Zentract prevent scope creep on client projects?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Zentract shows real-time budget consumption per project. As teams log hours, it becomes clear what percentage of the budget has been used so project leads can have a scope conversation before the project is already over budget."
              }
            },
            {
              "@type": "Question",
              "name": "Does Zentract have mobile apps?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Yes. Zentract has iOS and Android apps so teams can log time from anywhere, whether they are in a client meeting, on-site, or working remotely."
              }
            }
          ]
        }
      ],
      "robotsMeta": "index, follow",
      "author": null,
      "generator": null,
      "markdownAlternateHref": null
    }
  },
  "markdown": "For agencies that bill time\n\n# Stop losing revenue\nto time you already\nworked.\n\nZentract connects tasks, time, and billing in one place. Catch missed hours and overages before they become write-offs.\n\nJoin the waitlist\n\n[Sign in →](https://zentract.io/sign-in)\n\nNo credit card required.\n\nzentract — Acme Corp / Website Redesign\n\nWrite homepage copy\n\nAcme Corp · Copywriting\n\n1:45\n\nDesign system audit\n\nAcme Corp · Design · Billable\n\n02:34:18\n\nHandoff to dev\n\nAcme Corp · PM\n\n—\n\nLive timerRecording\n\n02:34:18\n\nDesign system audit · Acme Corp\n\nUsed byDesign agenciesDev shopsConsulting firmsFractional teamsMarketing studios\n\nThe real cost of disconnected tools\n\n01\n\n### Time logged late is time not invoiced.\n\nDetails fade. Entries disappear. By Friday, no one remembers Tuesday's four-hour deep-work session.\n\n02\n\n### Scope creeps before you can react.\n\nYou hit 80% of budget with 40% of work left. The signal came too late to have a real conversation.\n\n03\n\n### Billing is a monthly reconstruction.\n\nYou spend hours piecing together what happened. Then write off the hours that don't have receipts.\n\nTime Tracking\n\n## Every task\nis a timer.\n\nOne click starts tracking. Zentract ties the entry to the task, project, and client automatically. No separate app. No retroactive guessing.\n\n-   ✓One-click timers on any task\n-   ✓Billable vs non-billable on every entry\n-   ✓Log from web or iOS & Android\n-   ✓Only one timer runs at a time\n\nActive tasks1 running\n\nDesign system audit\n\nAcme Corp · Billable\n\n02:34:18\n\nWrite homepage copy\n\nAcme Corp · Billable\n\n1:45:00\n\nStakeholder review call\n\nAcme Corp · Non-billable\n\n—\n\n02:34:18\n\ntoday · Acme Corp\n\nBudget overviewLive\n\nWebsite Redesign · Acme Corp82%\n\nQ2 Content Strategy · Bloom44%\n\nPlatform Audit · NovaTech107%\n\nBudgeted\n\n240h\n\nLogged\n\n198h\n\nRemaining\n\n42h\n\nBudget Control\n\n## See the overage\nbefore it happens.\n\nBudget vs actual updates in real-time as time is logged. Get a warning at 80%. Have the scope conversation while there's still something to negotiate.\n\n-   ✓Real-time budget vs actual\n-   ✓Overage alerts at your threshold\n-   ✓Per-project and per-client views\n-   ✓Hours or dollar-based budgets\n\nInvoicing\n\n## Invoice from\nsource, not memory.\n\nSelect a billing period. Zentract groups time entries by task and generates line items. No spreadsheet. No reconstruction. The invoice reflects what actually happened.\n\n-   ✓Generate from tracked time entries\n-   ✓Grouped by task or category\n-   ✓Billable-only filter built in\n-   ✓Export-ready output\n\nInvoice previewReady to export\n\nAcme Corp\n\nMarch 1–31, 2026\n\nINV-0024\n\nDue Apr 14, 2026\n\nDesign system audit\n\n14.5 hrs · $150/hr\n\n$2,175\n\nHomepage copy\n\n6.25 hrs · $120/hr\n\n$750\n\nProject management\n\n3.0 hrs · $120/hr\n\n$360\n\nTotal due$3,285\n\nExport invoice →\n\n## How it works.\n\nThree steps. No setup ceremony. No onboarding calls required.\n\nSTEP 01\n\n### Set up a project.\n\nCreate a client, add a project with a budget. Add tasks for the work ahead. Takes three minutes.\n\nSTEP 02\n\n### Track time as you work.\n\nOpen a task, hit start. Stop when you're done. Zentract logs it against the client and project, billable or not.\n\nSTEP 03\n\n### Invoice with one click.\n\nSelect a billing period. Review grouped line items from real entries. Export. Done.\n\n## Free to start.\nScales when you do.\n\nEverything you need to run a small team — no credit card, no 14-day trial cliff. Upgrade when your operation grows.\n\nFree tier\n\n$0/ month\n\n-   ✓3 team members\n-   ✓5 clients\n-   ✓10 projects\n-   ✓Unlimited time tracking\n-   ✓Invoice generation\n-   ✓iOS & Android apps\n\nJoin the waitlist\n\nFAQ\n\n## Common questions\n\nEverything you need to know before getting started with Zentract.\n\nHow does Zentract help agencies track billable hours?\n\nHow is Zentract different from Harvest or Toggl?\n\nCan Zentract generate invoices from time tracking?\n\nIs Zentract free to use?\n\nWhat types of agencies and teams use Zentract?\n\nDoes Zentract prevent scope creep on client projects?\n\nDoes Zentract have mobile apps?\n\n## Every hour you worked\ndeserves to be invoiced.\n\nJoin early access. We'll reach out when your workspace is ready. No credit card required.\n\nJoin the waitlist\n\nNo credit card · No spam · Cancel anytime\n\nAlready using Zentract? [Sign in →](https://zentract.io/sign-in)\n",
  "fullPageMarkdown": "Zentract — Agency Time Tracking & Client Billing Software\n\nFor agencies that bill time\n\n# Stop losing revenue\nto time you already\nworked.\n\nZentract connects tasks, time, and billing in one place. Catch missed hours and overages before they become write-offs.\n\nJoin the waitlist\n\n[Sign in →](https://zentract.io/sign-in)\n\nNo credit card required.\n\nzentract — Acme Corp / Website Redesign\n\nWrite homepage copy\n\nAcme Corp · Copywriting\n\n1:45\n\nDesign system audit\n\nAcme Corp · Design · Billable\n\n02:34:18\n\nHandoff to dev\n\nAcme Corp · PM\n\n—\n\nLive timerRecording\n\n02:34:18\n\nDesign system audit · Acme Corp\n\nUsed byDesign agenciesDev shopsConsulting firmsFractional teamsMarketing studios\n\nThe real cost of disconnected tools\n\n01\n\n### Time logged late is time not invoiced.\n\nDetails fade. Entries disappear. By Friday, no one remembers Tuesday's four-hour deep-work session.\n\n02\n\n### Scope creeps before you can react.\n\nYou hit 80% of budget with 40% of work left. The signal came too late to have a real conversation.\n\n03\n\n### Billing is a monthly reconstruction.\n\nYou spend hours piecing together what happened. Then write off the hours that don't have receipts.\n\nTime Tracking\n\n## Every task\nis a timer.\n\nOne click starts tracking. Zentract ties the entry to the task, project, and client automatically. No separate app. No retroactive guessing.\n\n-   ✓One-click timers on any task\n-   ✓Billable vs non-billable on every entry\n-   ✓Log from web or iOS & Android\n-   ✓Only one timer runs at a time\n\nActive tasks1 running\n\nDesign system audit\n\nAcme Corp · Billable\n\n02:34:18\n\nWrite homepage copy\n\nAcme Corp · Billable\n\n1:45:00\n\nStakeholder review call\n\nAcme Corp · Non-billable\n\n—\n\n02:34:18\n\ntoday · Acme Corp\n\nBudget overviewLive\n\nWebsite Redesign · Acme Corp82%\n\nQ2 Content Strategy · Bloom44%\n\nPlatform Audit · NovaTech107%\n\nBudgeted\n\n240h\n\nLogged\n\n198h\n\nRemaining\n\n42h\n\nBudget Control\n\n## See the overage\nbefore it happens.\n\nBudget vs actual updates in real-time as time is logged. Get a warning at 80%. Have the scope conversation while there's still something to negotiate.\n\n-   ✓Real-time budget vs actual\n-   ✓Overage alerts at your threshold\n-   ✓Per-project and per-client views\n-   ✓Hours or dollar-based budgets\n\nInvoicing\n\n## Invoice from\nsource, not memory.\n\nSelect a billing period. Zentract groups time entries by task and generates line items. No spreadsheet. No reconstruction. The invoice reflects what actually happened.\n\n-   ✓Generate from tracked time entries\n-   ✓Grouped by task or category\n-   ✓Billable-only filter built in\n-   ✓Export-ready output\n\nInvoice previewReady to export\n\nAcme Corp\n\nMarch 1–31, 2026\n\nINV-0024\n\nDue Apr 14, 2026\n\nDesign system audit\n\n14.5 hrs · $150/hr\n\n$2,175\n\nHomepage copy\n\n6.25 hrs · $120/hr\n\n$750\n\nProject management\n\n3.0 hrs · $120/hr\n\n$360\n\nTotal due$3,285\n\nExport invoice →\n\n## How it works.\n\nThree steps. No setup ceremony. No onboarding calls required.\n\nSTEP 01\n\n### Set up a project.\n\nCreate a client, add a project with a budget. Add tasks for the work ahead. Takes three minutes.\n\nSTEP 02\n\n### Track time as you work.\n\nOpen a task, hit start. Stop when you're done. Zentract logs it against the client and project, billable or not.\n\nSTEP 03\n\n### Invoice with one click.\n\nSelect a billing period. Review grouped line items from real entries. Export. Done.\n\n## Free to start.\nScales when you do.\n\nEverything you need to run a small team — no credit card, no 14-day trial cliff. Upgrade when your operation grows.\n\nFree tier\n\n$0/ month\n\n-   ✓3 team members\n-   ✓5 clients\n-   ✓10 projects\n-   ✓Unlimited time tracking\n-   ✓Invoice generation\n-   ✓iOS & Android apps\n\nJoin the waitlist\n\nFAQ\n\n## Common questions\n\nEverything you need to know before getting started with Zentract.\n\nHow does Zentract help agencies track billable hours?\n\nHow is Zentract different from Harvest or Toggl?\n\nCan Zentract generate invoices from time tracking?\n\nIs Zentract free to use?\n\nWhat types of agencies and teams use Zentract?\n\nDoes Zentract prevent scope creep on client projects?\n\nDoes Zentract have mobile apps?\n\n## Every hour you worked\ndeserves to be invoiced.\n\nJoin early access. We'll reach out when your workspace is ready. No credit card required.\n\nJoin the waitlist\n\nNo credit card · No spam · Cancel anytime\n\nAlready using Zentract? [Sign in →](https://zentract.io/sign-in)\n",
  "markdownStats": {
    "images": 0,
    "links": 8,
    "tables": 0,
    "codeBlocks": 0,
    "headings": 14
  },
  "tokens": {
    "htmlTokens": 30615,
    "markdownTokens": 1083,
    "reduction": 29532,
    "reductionPercent": 96
  },
  "score": {
    "score": 89,
    "grade": "B",
    "dimensions": {
      "semanticHtml": {
        "score": 83,
        "weight": 20,
        "grade": "B",
        "checks": {
          "uses_article_or_main": {
            "score": 100,
            "weight": 20,
            "details": "Has <main>"
          },
          "proper_heading_hierarchy": {
            "score": 85,
            "weight": 25,
            "details": "1 heading level skip(s)"
          },
          "semantic_elements": {
            "score": 32,
            "weight": 20,
            "details": "14 semantic elements, 134 divs (ratio: 9%)"
          },
          "meaningful_alt_texts": {
            "score": 100,
            "weight": 15,
            "details": "No images found"
          },
          "low_div_nesting": {
            "score": 100,
            "weight": 20,
            "details": "Avg div depth: 4.6, max: 8"
          }
        }
      },
      "contentEfficiency": {
        "score": 93,
        "weight": 25,
        "grade": "A",
        "checks": {
          "token_reduction_ratio": {
            "score": 100,
            "weight": 40,
            "details": "96% token reduction (HTML→Markdown)"
          },
          "content_to_noise_ratio": {
            "score": 100,
            "weight": 30,
            "details": "Content ratio: 59.2% (60153 content chars / 101540 HTML bytes)"
          },
          "minimal_inline_styles": {
            "score": 50,
            "weight": 15,
            "details": "21/466 elements with inline styles (4.5%)"
          },
          "reasonable_page_weight": {
            "score": 100,
            "weight": 15,
            "details": "HTML size: 99KB"
          }
        }
      },
      "aiDiscoverability": {
        "score": 77,
        "weight": 25,
        "grade": "B",
        "checks": {
          "has_llms_txt": {
            "score": 100,
            "weight": 20,
            "details": "llms.txt exists and is valid"
          },
          "has_robots_txt": {
            "score": 100,
            "weight": 10,
            "details": "robots.txt exists"
          },
          "robots_allows_ai_bots": {
            "score": 100,
            "weight": 15,
            "details": "All major AI bots allowed"
          },
          "has_sitemap": {
            "score": 100,
            "weight": 10,
            "details": "Sitemap found"
          },
          "supports_markdown_negotiation": {
            "score": 40,
            "weight": 25,
            "details": "CDN level (Cloudflare) — Content negotiation"
          },
          "has_content_signals": {
            "score": 60,
            "weight": 20,
            "details": "robots.txt: ai-train=no, search=yes, ai-input=yes"
          }
        }
      },
      "structuredData": {
        "score": 100,
        "weight": 15,
        "grade": "A",
        "checks": {
          "has_schema_org": {
            "score": 100,
            "weight": 30,
            "details": "JSON-LD found: Organization, WebApplication, FAQPage"
          },
          "has_open_graph": {
            "score": 100,
            "weight": 25,
            "details": "All OG tags present"
          },
          "has_meta_description": {
            "score": 100,
            "weight": 20,
            "details": "Meta description: 154 chars"
          },
          "has_canonical_url": {
            "score": 100,
            "weight": 15,
            "details": "Canonical URL present"
          },
          "has_lang_attribute": {
            "score": 100,
            "weight": 10,
            "details": "lang=\"en\""
          }
        }
      },
      "accessibility": {
        "score": 100,
        "weight": 15,
        "grade": "A",
        "checks": {
          "content_without_js": {
            "score": 100,
            "weight": 40,
            "details": "Content available without JavaScript"
          },
          "reasonable_page_size": {
            "score": 100,
            "weight": 30,
            "details": "Page size: 99KB"
          },
          "fast_content_position": {
            "score": 100,
            "weight": 30,
            "details": "Main content starts at 13% of HTML"
          }
        }
      }
    }
  },
  "recommendations": [
    {
      "id": "add_markdown_negotiation",
      "priority": "high",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_markdown_negotiation.title",
      "descriptionKey": "rec.add_markdown_negotiation.description",
      "howToKey": "rec.add_markdown_negotiation.howto",
      "effort": "significant",
      "estimatedImpact": 6,
      "checkScore": 40,
      "checkDetails": "CDN level (Cloudflare) — Content negotiation"
    },
    {
      "id": "add_semantic_elements",
      "priority": "high",
      "category": "semanticHtml",
      "titleKey": "rec.add_semantic_elements.title",
      "descriptionKey": "rec.add_semantic_elements.description",
      "howToKey": "rec.add_semantic_elements.howto",
      "effort": "moderate",
      "estimatedImpact": 5,
      "checkScore": 32,
      "checkDetails": "14 semantic elements, 134 divs (ratio: 9%)"
    },
    {
      "id": "remove_inline_styles",
      "priority": "medium",
      "category": "contentEfficiency",
      "titleKey": "rec.remove_inline_styles.title",
      "descriptionKey": "rec.remove_inline_styles.description",
      "howToKey": "rec.remove_inline_styles.howto",
      "effort": "moderate",
      "estimatedImpact": 3,
      "checkScore": 50,
      "checkDetails": "21/466 elements with inline styles (4.5%)"
    }
  ],
  "llmsTxtPreview": "# zentract.io\n\n> One-click time tracking, real-time budget alerts, and client invoicing in one platform. Built for agencies and consultants. Free for up to 3 team members.\n\n## Main\n- [Zentract — Agency Time Tracking & Client Billing Software](https://zentract.io): One-click time tracking, real-time budget alerts, and client invoicing in one platform. Built for agencies and consulta…\n- [ZentractZENTRACT](https://zentract.io/)\n- [Sign in](https://zentract.io/sign-in)\n\n## Legal\n- [Privacy](https://zentract.io/privacy)\n- [Terms](https://zentract.io/terms)\n\n## Support\n- [Contact](https://zentract.io/contact)\n\n",
  "llmsTxtExisting": "# Zentract\n\n> Zentract is a project management and time tracking platform for professional services firms. \nIt helps teams manage clients, projects, tasks, time entries, billing, and reporting.\n\nImportant notes:\n- Public crawling rules are defined in robots.txt; see links below.\n\n\n## About Site\n\n- [Homepage](https://zentract.io)\n- [Privacy](https://zentract.io/privacy): Privacy policy\n- [Terms](https://zentract.io/terms): Terms of service\n- [Contact](https://zentract.io/contact): Contact us page\n- [robots.txt](https://zentract.io/robots.txt): Crawler access rules and disallowed paths\n- [Sitemap](https://zentract.io/sitemap.xml): Discoverable public pages",
  "emergingProtocols": {
    "oauthDiscovery": {
      "exists": true,
      "url": "https://zentract.io/.well-known/oauth-authorization-server",
      "issuer": "https://zentract.io",
      "authorizationEndpoint": "https://zentract.io/api/oauth2/authorize",
      "tokenEndpoint": "https://zentract.io/api/oauth2/token",
      "grantTypesSupported": [
        "authorization_code",
        "refresh_token"
      ],
      "scopesSupported": [
        "projects:read",
        "projects:write",
        "projects:delete",
        "tasks:read",
        "tasks:write",
        "tasks:delete",
        "clients:read",
        "clients:write",
        "clients:delete",
        "time-entries:read",
        "time-entries:write",
        "time-entries:delete",
        "invoices:read",
        "invoices:write",
        "invoices:delete",
        "proposals:read",
        "proposals:write",
        "proposals:delete",
        "reports:read",
        "reports:generate",
        "reports:delete",
        "teams:read",
        "teams:write",
        "users:read",
        "users:write",
        "organization:read",
        "organization:write",
        "notifications:read",
        "notifications:write",
        "attachments:read",
        "attachments:write"
      ]
    },
    "mcpServerCard": {
      "exists": false,
      "url": "https://zentract.io/.well-known/mcp.json"
    },
    "a2aAgentCard": {
      "exists": false,
      "url": "https://zentract.io/.well-known/agent.json"
    },
    "count": 1
  },
  "snippets": [
    {
      "id": "add_markdown_negotiation",
      "title": "Support Markdown for Agents",
      "description": "Let AI agents request a clean Markdown version of any page via content negotiation, .md alternate URLs, link tags or Link headers.",
      "language": "html",
      "code": "<!-- Mechanism 3: link tag advertising the .md alternate -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">",
      "filename": "<head>",
      "stacks": [
        {
          "id": "html",
          "label": "HTML <head>",
          "language": "html",
          "filename": "<head>",
          "code": "<!-- Mechanism 3: link tag advertising the .md alternate -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">"
        },
        {
          "id": "express",
          "label": "Express",
          "language": "javascript",
          "filename": "server.js",
          "code": "// Mechanisms 1 + 4: content negotiation + Link header\napp.get('/page', (req, res) => {\n  res.setHeader('Vary', 'Accept');\n  res.setHeader('Link', '</page.md>; rel=\"alternate\"; type=\"text/markdown\"');\n  if ((req.headers.accept || '').includes('text/markdown')) {\n    res.type('text/markdown; charset=utf-8');\n    return res.send(renderMarkdown('page'));\n  }\n  res.render('page');\n});"
        },
        {
          "id": "fastify",
          "label": "Fastify",
          "language": "javascript",
          "filename": "server.js",
          "code": "// Mechanisms 1 + 4: content negotiation + Link header\nfastify.get('/page', async (req, reply) => {\n  reply.header('Vary', 'Accept');\n  reply.header('Link', '</page.md>; rel=\"alternate\"; type=\"text/markdown\"');\n  if ((req.headers.accept || '').includes('text/markdown')) {\n    return reply.type('text/markdown; charset=utf-8').send(renderMarkdown('page'));\n  }\n  return reply.view('/page.ejs');\n});"
        },
        {
          "id": "nextjs",
          "label": "Next.js",
          "language": "typescript",
          "filename": "app/page/route.ts",
          "code": "// Next.js App Router — Route Handler returning Markdown\nimport { NextRequest } from 'next/server';\nimport { renderMarkdown } from '@/lib/md';\nexport async function GET(req: NextRequest) {\n  const accept = req.headers.get('accept') || '';\n  if (accept.includes('text/markdown')) {\n    return new Response(await renderMarkdown('page'), {\n      headers: {\n        'Content-Type': 'text/markdown; charset=utf-8',\n        'Vary': 'Accept',\n      },\n    });\n  }\n  // Fall through to the page component\n  return new Response(null, { status: 404 });\n}"
        },
        {
          "id": "wordpress",
          "label": "WordPress",
          "language": "php",
          "filename": "functions.php",
          "code": "<?php\n// Mechanism 1: respond to Accept: text/markdown on the same URL\nadd_action('template_redirect', function () {\n    if (!is_singular()) return;\n    $accept = $_SERVER['HTTP_ACCEPT'] ?? '';\n    if (strpos($accept, 'text/markdown') === false) return;\n    header('Content-Type: text/markdown; charset=utf-8');\n    header('Vary: Accept');\n    $post = get_queried_object();\n    echo \"# \" . get_the_title($post) . \"\\n\\n\";\n    echo wp_strip_all_tags(apply_filters('the_content', $post->post_content));\n    exit;\n});"
        },
        {
          "id": "static",
          "label": "Hugo / Jekyll / Astro",
          "language": "txt",
          "filename": "static/page.md",
          "code": "# Mechanism 2: serve .md alongside .html\n# Hugo: place page.md in /static/ — built unchanged\n# Jekyll: drop page.md in /assets/ — copied as-is\n# Astro: src/pages/page.md.ts that exports a GET returning markdown\n\n# Then advertise with mechanism 3 in <head>:\n#   <link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">"
        }
      ]
    }
  ]
}

Usa nuestra API para obtener esto de forma programática (próximamente)

Este JSON es para uso interno — a diferencia del Markdown y llms.txt, no está pensado para subirse a tu web. Guárdalo como referencia para seguir la evolución de tu puntuación, compártelo con tu equipo de desarrollo o intégralo en tu pipeline CI/CD.

Comparte tus resultados

Twitter LinkedIn

Incrusta tu badge

Añade este badge a tu sitio. Se actualiza automáticamente cuando cambie tu puntuación.

AgentReady.md score for zentract.io
Script Recomendado
<script src="https://agentready.md/badge.js" data-id="81c0a9b4-c03e-446e-ae6a-e76950ad7f79" data-domain="zentract.io"></script>
Markdown
[![AgentReady.md score for zentract.io](https://agentready.md/badge/zentract.io.svg)](https://agentready.md/es/r/81c0a9b4-c03e-446e-ae6a-e76950ad7f79)

Próximamente: Análisis de dominio completo

Rastrea todo tu dominio, genera llms.txt y monitoriza tu puntuación de preparación para IA a lo largo del tiempo. Únete a la lista de espera para recibir notificaciones.

¡Estás en la lista! Te avisaremos cuando se lance.