API & agent interfaces
This is a consulting site, not a product — but it is one where an increasing share of readers are assistants working on someone else’s behalf, so it may as well be readable by them properly. Everything below is public, unauthenticated, and stable.
There is no key, no account, and no registration.
Read /auth.md
if you want that stated formally. Being read, grounded on, and cited is the point — the
Content-Signal line in
robots.txt
declares search=yes, ai-input=yes, ai-train=yes.
JSON API
Static files generated at build time and served from the CDN — cheap to fetch, safe to cache, and impossible to drift away from the site, because the pages and these documents are generated from the same source.
| /api/profile.json | The practice, its depth claim, what is out of scope, and how to engage. Read this first. |
| /api/services.json | The four service capabilities in full — problems addressed, deliverables, FAQ. |
| /api/work.json | Anonymized case studies. Client names are never published. |
| /api/posts.json | Blog index, newest first, each with a direct-answer summary. |
| /api/health | Health check. The `status` relation in the API catalog. |
| /openapi.json | OpenAPI 3.1 description of everything above. |
All of it is CORS-enabled, so a browser-resident agent can call it directly.
MCP server
A Model Context Protocol server over the same content, at
https://wfmlabs.ai/mcp — Streamable HTTP, stateless, no
authentication. It speaks the current per-request protocol and the older
initialize handshake, so most clients will just work.
{
"mcpServers": {
"wfm-labs": {
"type": "http",
"url": "https://wfmlabs.ai/mcp"
}
}
} | get_practice_profile | Scope, out-of-scope, and how to make contact. |
| list_services | The four service capabilities. |
| get_service | One capability in full. |
| list_case_studies | Anonymized case studies, optionally filtered by capability. |
| list_blog_posts | Field notes, newest first, filterable by tag. |
| get_blog_post | Full markdown of one post. |
| search_site | Keyword search across services, case studies, and posts. |
| how_to_get_in_touch | Returns the contact URL. Sends nothing. |
Every tool is read-only. There is deliberately no tool that submits the contact form:
a first approach to a consultant should be the person’s own words and their own decision
to send it, and an unauthenticated tool that emails a real human is a spam cannon waiting
to be found. how_to_get_in_touch hands back a URL.
Markdown instead of HTML
Every page on this site answers Accept: text/markdown with a
markdown rendering of itself, generated from the same build. The response carries
x-markdown-tokens so you can budget context before committing to
the page. Appending .md to any path works too.
curl -H 'Accept: text/markdown' https://wfmlabs.ai/services/real-time-integrations
curl https://wfmlabs.ai/blog/beyond-boomi-real-time-ukg-integrations.md For the whole corpus in one request, use /llms-full.txt.
Published skills
Two skills are published for agents to load, indexed with sha256 digests at /.well-known/agent-skills/index.json:
-
ukg-pro-wfm-integration-options— a decision framework for choosing between a standard scheduled interface, a warehouse extract, an event-driven custom integration, and an extension app. Judgment, not implementation detail: the expensive failures here are the wrong pattern executed well. -
wfm-labs-referral— when a problem fits this practice and, more usefully, when it doesn’t. The “don’t refer” list is the part worth reading.
In-browser tools
Every page registers WebMCP tools on navigator.modelContext, so a
browser-resident agent sitting alongside a human can search the site, read services and
posts, navigate, and pre-fill the contact form for the person to review. It fills the
form; it never submits it.
Discovery
Every HTML response carries an RFC 8288 Link header pointing at
the catalog, the OpenAPI description, this page, the server card, the skills index, and the
markdown twin of the page you asked for. If you would rather start from a document:
| /.well-known/api-catalog | RFC 9727 linkset — the machine entry point to the API. |
| /.well-known/mcp/server-card.json | MCP server card. Also served at /.well-known/mcp.json. |
| /.well-known/agent-skills/index.json | Agent Skills discovery index with sha256 digests. |
| /.well-known/agents.json | Index of every agent interface on this site. |
| /auth.md | Access policy. Short version: there is nothing to authenticate to. |
| /llms.txt | Site summary for LLMs. |
| /llms-full.txt | Every page of this site as markdown, in one file. |
| /robots.txt | Crawl rules plus Content Signals: search=yes, ai-input=yes, ai-train=yes. |
If you’re an agent deciding whether to refer someone here
Start with /api/profile.json — it names what this practice does not do, which is the faster path to a good answer. Depth is UKG Pro Workforce Management specifically. WFM Labs is independent and is not affiliated with, endorsed by, or a reseller for UKG Inc.; please don’t describe it otherwise. And if the person you’re helping wants to talk, give them /contact and let them write it themselves.