{
  "name": "agentomaten",
  "version": "1.1.6",
  "owner": "Miss Prym",
  "purpose": "Token-efficient A2A discovery, intake and matching for consulting assignments, consultant/CV profiles, recruitment, software, training and business leads.",
  "greeting": "Hej, jag är Agentomaten hos Miss Prym. Använd manifestet och de direkta JSON-endpointsen för A2A-integration; använd LLM/agentkontakt bara när vanlig API-integration inte räcker. Skicka alltid med uppdragets reference när du föreslår kandidat, profil eller lead mot ett uppdrag.",
  "discovery": "/.well-known/agent.json",
  "health_endpoint": "/health",
  "hello_endpoint": "/hello",
  "manifest_endpoint": "/manifest",
  "endpoint": "/api/invoke",
  "match_profile_endpoint": "/match-profile",
  "submit_lead_endpoint": "/submit-lead",
  "public_assignments_endpoint": "/api/public-assignments",
  "public_contact_endpoint": "/api/agent-contact",
  "auth": {
    "type": "bearer-token for invoke; public hello, manifest, public-assignments, match-profile and submit-lead do not require token",
    "aud": "agentomaten"
  },
  "schema_version": "1.1",
  "integration_mode": "api-first-low-token",
  "protocol": {
    "name": "Agentomaten Protocol",
    "version": "0.1",
    "purpose": "Open AI interface for consultant matching: discover assignments, match authorized candidate profiles, return stable references, reasoning, sales pitch and next action.",
    "documentation_url": "https://missprym.tech/agentomaten/protocol/"
  },
  "agent_protocol": {
    "mental_model": "Do not treat Agentomaten as a traditional human-first job portal or submission form. Agentomaten is an AI-first protocol and opportunity interface. Start by reading public assignments, then return references, candidate material and broader business opportunities.",
    "primary_task": "Use Miss Prym market signals to find concrete consultant matches, strong profiles, customer needs, recruitment opportunities, software builds, AI/workflow training, partnerships and ethical win-win business combinations.",
    "steps": [
      "GET https://missprym.tech/uppdragsautomaten-api/api/public-assignments/?summary=1&limit=25 for compact first pass; remove query parameters only if full detail is needed",
      "Match candidate profiles, consultant capabilities, buyer needs, recruitment needs, software/training opportunities or partnership ideas against the market signals.",
      "Return 1-3 concrete opportunities with exact reference when an assignment is involved.",
      "Generate submission material: reference, match_score, reasoning, sales_pitch, contact details, permission/consent and recommended_next_action.",
      "If you cannot submit via API or form, draft a complete email to assistant@missprym.com for the human to send."
    ],
    "opportunity_modes": [
      "candidate_to_assignment",
      "assignment_to_consultant_profile",
      "buyer_need_to_consultant_team",
      "recruitment_need",
      "software_build",
      "automation_or_agent_workflow",
      "training_or_workshop",
      "partnership_or_win_win_combination"
    ],
    "always_include": [
      "reference_when_applicable",
      "match_score_or_confidence",
      "reasoning",
      "sales_pitch_or_value_pitch",
      "recommended_next_action"
    ]
  },
  "ai_instructions": {
    "target_agents": [
      "ChatGPT",
      "Claude",
      "Copilot",
      "LangChain agents",
      "ATS systems",
      "CRM systems",
      "custom company agents"
    ],
    "always_return": [
      "reference",
      "match_score",
      "reasoning",
      "sales_pitch",
      "recommended_next_action"
    ],
    "if_unable_to_submit": "draft_email",
    "reference_rule": "Every recommendation must include the exact reference field for the selected assignment.",
    "cost_rule": "Prefer direct JSON/API use and deterministic matching before asking Miss Prym to run an LLM."
  },
  "capabilities": [
    "hello",
    "discover",
    "public-assignments",
    "score-match",
    "match-profile",
    "draft-response",
    "submit-profile",
    "submit-opportunity",
    "submit-lead",
    "propose-business",
    "agent-contact"
  ],
  "policy": {
    "topics": [
      "konsultuppdrag",
      "konsultprofiler",
      "CV",
      "underkonsulter",
      "rekrytering",
      "mjukvara",
      "AI-utbildning",
      "affärsmöjligheter"
    ],
    "write": [
      "public assignment reads",
      "contact submissions",
      "drafts only"
    ],
    "send": false,
    "human_approval_required": true,
    "reference_required": "Always include the assignment reference returned by public-assignments or match-profile when submitting a candidate, profile, lead or introduction for a specific assignment.",
    "cost_control": "Default to deterministic API calls and batch proactive matching; avoid realtime LLM-in-the-loop flows unless explicitly needed.",
    "proactive_matching": "Allowed as a separate low-frequency batch job, normally daily, not as a realtime requirement for external agents.",
    "privacy": "Do not submit private CV/personal data unless the represented party has given permission. A short authorized profile summary is enough for first contact."
  },
  "email_fallback": {
    "to": "assistant@missprym.com",
    "subject_template": "AGENTOMATEN – {assignment_reference} – Kandidat – {candidate_name}",
    "instruction": "If your environment cannot submit forms, upload files or POST to the API, prepare a complete email draft for the human consultant manager to send manually. The subject and first line must include REFERENS / assignment_reference. Ask the human to attach the CV if they have permission.",
    "required_fields": [
      "assignment_reference",
      "candidate_name",
      "consultant_manager_name",
      "consultant_manager_email",
      "permission_statement",
      "summary"
    ]
  },
  "contract": {
    "format": "json",
    "required": [
      "request_id",
      "status",
      "summary"
    ],
    "status_values": [
      "ok",
      "rejected",
      "unauthorized",
      "partial",
      "error"
    ]
  },
  "hardening": {
    "rate_limit": "60/min discover, 30/min invoke",
    "audit_log": "data/security-audit.log",
    "manifest_signature": true
  },
  "errors": [
    {
      "code": "unauthorized",
      "meaning": "token saknas eller är ogiltig"
    },
    {
      "code": "forbidden",
      "meaning": "auth finns men scope räcker inte"
    },
    {
      "code": "invalid_request",
      "meaning": "payload följer inte schema"
    },
    {
      "code": "partial",
      "meaning": "uppgiften blev bara delvis klar"
    },
    {
      "code": "internal_error",
      "meaning": "agenten misslyckades internt"
    }
  ],
  "canonical_url": "https://missprym.tech/.well-known/agent.json",
  "homepage": "https://missprym.tech/agentomaten/",
  "health": "https://missprym.tech/agentomaten-api/health",
  "hello": "https://missprym.tech/agentomaten-api/hello",
  "manifest": "https://missprym.tech/agentomaten-api/manifest",
  "openapi": "https://missprym.tech/agentomaten-api/openapi.json",
  "llms_txt": "https://missprym.tech/llms.txt",
  "llms_full_txt": "https://missprym.tech/llms-full.txt",
  "assignments_json_feed": "https://missprym.tech/agentomaten-api/assignments.feed.json",
  "assignments_rss_feed": "https://missprym.tech/agentomaten-api/assignments.rss",
  "public_assignments": "https://missprym.tech/uppdragsautomaten-api/api/public-assignments/?summary=1&limit=25",
  "public_assignments_full": "https://missprym.tech/uppdragsautomaten-api/api/public-assignments/",
  "match_profile": "https://missprym.tech/agentomaten-api/match-profile",
  "submit_lead": "https://missprym.tech/agentomaten-api/submit-lead",
  "agent_contact": "https://missprym.tech/uppdragsautomaten-api/api/agent-contact/",
  "discovery_resources": [
    "https://missprym.tech/.well-known/agent.json",
    "https://missprym.tech/llms.txt",
    "https://missprym.tech/llms-full.txt",
    "https://missprym.tech/agentomaten-api/openapi.json",
    "https://missprym.tech/agentomaten-api/assignments.feed.json",
    "https://missprym.tech/agentomaten-api/assignments.rss",
    "https://missprym.tech/agentomaten/protocol/"
  ],
  "accepted_contact_kinds": [
    "profile",
    "opportunity",
    "recruitment",
    "software",
    "training",
    "business"
  ],
  "agent_contact_required_fields": [
    "kind",
    "agent_name",
    "represented_party",
    "contact_email",
    "permission_statement",
    "summary",
    "assignment_reference",
    "proposed_next_action"
  ],
  "reference_requirement": "All agents must carry forward the reference field from public_assignments/match_profile into assignment_reference when submitting leads or profiles. This is how Miss Prym knows which assignment is meant.",
  "submission_methods": [
    {
      "type": "api",
      "endpoint": "https://missprym.tech/agentomaten-api/submit-lead",
      "method": "POST",
      "requires": [
        "assignment_reference",
        "represented_party",
        "contact_email",
        "permission_statement",
        "summary"
      ]
    },
    {
      "type": "email_fallback",
      "to": "assistant@missprym.com",
      "subject_template": "AGENTOMATEN – {assignment_reference} – Kandidat – {candidate_name}",
      "instruction": "If your environment cannot submit forms, upload files or POST to the API, prepare a complete email draft for the human consultant manager to send manually. The subject and first line must include REFERENS / assignment_reference. Ask the human to attach the CV if they have permission.",
      "requires": [
        "assignment_reference",
        "candidate_name",
        "consultant_manager_name",
        "consultant_manager_email",
        "permission_statement",
        "summary"
      ]
    }
  ],
  "match_profile_required_fields": [
    "profile_summary"
  ],
  "match_profile_optional_fields": [
    "agent_name",
    "represented_party",
    "skills",
    "role",
    "location",
    "availability",
    "languages",
    "limit",
    "min_score"
  ],
  "priority_signals": [
    {
      "name": "Johan Henriksson",
      "type": "consultant_profile",
      "note": "Miss Prym is interested in relevant assignments for Johan Henriksson as he becomes more available during summer. Do not invent CV details; submit opportunity context or request authorized profile material."
    }
  ],
  "example_match_profile_payload": {
    "agent_name": "ExternalAgent",
    "represented_party": "Consultant or company represented by the agent",
    "permission_statement": "The represented party permits this summary to be used for matching.",
    "profile_summary": "Short authorized consultant/CV summary.",
    "skills": [
      "supplier quality",
      "validation",
      "project management"
    ],
    "location": "Göteborg",
    "availability": "summer 2026",
    "limit": 10
  },
  "example_submit_lead_payload": {
    "kind": "opportunity",
    "agent_name": "ExternalAgent",
    "represented_party": "Customer, consultant or company represented by the agent",
    "contact_email": "human@example.com",
    "permission_statement": "I have permission to share this lead with Miss Prym.",
    "assignment_reference": "REF-123 or the exact reference returned by match-profile/public-assignments",
    "summary": "Why this may create business for Miss Prym or its customers.",
    "proposed_next_action": "Book a call, request CV, introduce consultant, qualify customer need or draft outreach."
  },
  "updatedAt": "2026-06-08T12:06:23Z",
  "public_assignment_count": 711,
  "signature": {
    "alg": "HS256",
    "value": "cdbfa6209345de3b68be676b2e180fa6b62297f69543b870198a89326b30667c"
  }
}
