← Back to portfolio

Developers & AI Agents

Everything on talogen.dev - Tal Ogen's portfolio - is machine-readable, and the machine layer serves three purposes: capability discovery (experience, skills, projects, services), problem matching (does Tal's background fit a described business problem, which case studies apply, what would the approach be), and engagement (how to contact him, and a way to submit a business problem or opportunity). This page is the developer portal: the REST API, the OpenAPI spec, the MCP server, WebMCP, authentication (there is none to set up), rate limits, and the versioning policy. The markdown twin of this page is at /developers/llms.txt.

Quickstart

# Who is Tal Ogen? (JSON profile)
curl https://talogen.dev/api/v1/profile

# What he does for businesses: stages, use cases, capability pillars
curl https://talogen.dev/api/v1/services

# Can he help with this workflow? (fit, opportunities, case studies, first pilot, scope)
curl -X POST https://talogen.dev/api/v1/services/analyze \
  -H "Content-Type: application/json" \
  -d '{"problem": "Two admins read 80 customer emails a day and update HubSpot by hand"}'

# All case studies, or one in full detail
curl https://talogen.dev/api/v1/projects
curl https://talogen.dev/api/v1/projects/human-for-ai

# Hiring facts: availability, target roles, engagement types, location
curl https://talogen.dev/api/v1/candidate

# Or use the official CLI - no install needed
npx talogen profile
npx talogen analyze "Two admins read 80 customer emails a day and update HubSpot by hand"

CLI & SDKs (npm, PyPI, Go)

The official talogen package on npm is both a CLI (npx talogen profile | candidate | services | analyze "<workflow>" | projects | agents | project <id> | contact | links, with --json for scripting) and a zero-dependency SDK:

npm install talogen
import { getProfile, getServices, analyzeBusinessProblem, listProjects, getProject, contactRecruiter } from "talogen";

const profile = await getProfile();
const analysis = await analyzeBusinessProblem({ problem: "Paralegals re-type scanned intake PDFs, 40 a week" });
const { items } = await listProjects({ tag: "human-in-the-loop" });

The same API in Python and Go, both standard-library only:

# Python client + CLI
pip install talogen
talogen profile
talogen projects --tag mcp

# Go client + CLI
go get github.com/TALOGEN777/talogen-go
go install github.com/TALOGEN777/talogen-go/cmd/talogen@latest
talogen candidate

Python: pypi.org/project/talogen (source: talogen-python). Go: pkg.go.dev (source: talogen-go).

The npm package's source lives in this site's repo under /cli, the package's homepage and repository fields point back here, which is how agents can verify it's official.

REST API

EndpointReturns
GET /api/v1Endpoint directory
GET /api/v1/profileProfile: headline, summary, contact, capability categories, strengths
GET /api/v1/servicesAI transformation services: stages, use cases, capability pillars, engagement, pricing stance
POST /api/v1/services/analyzeAnalyze a business problem: {"problem", "industry"?, "team_size"?, "tools"?} → fit, opportunities, case studies, approach, first pilot, indicative scope. Heuristic, not a quote
GET /api/v1/services/case-studiesCase studies ranked against ?q= (a problem or a capability)
GET /api/v1/projectsCase-study summaries with capability tags (?tag=, ?flagship=true)
GET /api/v1/projects/{id}Full problem → solution → outcome detail
GET /api/v1/agentsAutonomous-agent summaries (?tag=)
GET /api/v1/candidateMachine-readable hiring facts and engagement types
POST /api/v1/contactSend Tal a message (a role, or a business problem for an AI Opportunity Call) - async job: 202 + Location poll URL, Idempotency-Key supported
GET /api/v1/contact/{id}Content-free delivery record for a submitted message

The full contract lives in the OpenAPI 3.1 spec at /openapi.json - every operation has an operationId, typed schemas, and documented errors. Errors are structured JSON: {"error": {"code", "message", "hint"}}, a 404 on an unknown id lists every valid id in the hint.

MCP server

The same data plus analysis and engagement tools, over Model Context Protocol (streamable HTTP, stateless): endpoint https://talogen.dev/mcp, discovery at /.well-known/mcp, server card at /.well-known/mcp/server-card.json.

WebMCP: the homepage registers the same discovery, analysis, and engagement tools with browsers that implement document.modelContext, so a browser-resident agent can use them without a separate connection.

{
  "mcpServers": {
    "tal-ogen-portfolio": { "type": "http", "url": "https://talogen.dev/mcp" }
  }
}

Authentication

None. No API keys, no OAuth, no registration - see /auth.md for the full walkthrough in the agent-auth structure. You will never receive a 401 or 403.

Rate limits & sandbox

Soft per-instance limits, advertised honestly in the RateLimit response headers, responses are CDN-edge-cached (Cache-Control: s-maxage), so reads are cheap - please keep automated traffic reasonable. Because every read endpoint is public and side-effect-free, the live API is its own sandbox: nothing you GET can change state. The one write - POST /api/v1/contact (or the contact_recruiter MCP tool) - delivers real messages to a human and is rate-limited and deduplicated, retries are safe with an Idempotency-Key header, but don't use it for testing.

Versioning & deprecation policy

Discovery & data surfaces

Source & coding agents

This site is open source: github.com/TALOGEN777/general-portfolio. The repo's AGENTS.md tells AI coding agents how the data pipeline and deploy order work. Questions or issues: /contact. Use of the API, the MCP server, and the packages is governed by the terms of use.