ChiefLab
Was dieses MCP kann
Runs approval-gated product launch workflows with channel-specific marketing drafts, social publishing, email actions, measurement, and follow-up recommendations.
Tools
Eingabeschema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Legacy alias for actionId.'}, 'subject': {'type': 'string', 'description': 'P74. For autoExecute on email: subject line override.'}, 'actionId': {'type': 'string', 'description': 'The action id from publishActions[].id in a launch_product response. Preferred.'}, 'mediaUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': "P74. Optional media URLs for the social post — auto-uploaded to Zernio's CDN before publishing."}, 'platforms': {'type': 'array', 'items': {'type': 'object'}, 'description': "P74. For autoExecute on social channels: Zernio platform descriptors, e.g. [{platform: 'linkedin', accountId: '<id>'}]. Required when autoExecute=true and mode=oauth_connector."}, 'recipients': {'type': 'array', 'items': {'type': 'string'}, 'description': 'P74. For autoExecute on email: recipient email addresses.'}, 'autoExecute': {'type': 'boolean', 'description': "P74. When true AND the action's executionMatrix.mode is oauth_connector / api_key_connector / native_api AND the connector is ready, the approve handler immediately invokes chieflab_execute_approved_action with the inputs you supply. The response includes the executor result + the unified proof ledger. Defaults to false (preserves the prior contract — agent calls execute_approved_action explicitly)."}}}
Eingabeschema
{'type': 'object', 'properties': {'projectName': {'type': 'string', 'description': 'Optional current project/repo name.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}, 'currentRepoContext': {'type': 'object', 'description': 'Optional current repo/project context. Helps agents compare recovered loops against the project the user is asking about.'}}}
Eingabeschema
{'type': 'object', 'properties': {'tenantId': {'type': 'string', 'description': 'Optional tenant scope.'}, 'workspaceId': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'properties': {'runId': {'type': 'string', 'description': 'Optional. Restrict to one run.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'required': ['connectionId'], 'properties': {'workspaceId': {'type': 'string'}, 'connectionId': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'required': ['provider'], 'properties': {'provider': {'type': 'string', 'description': 'Provider id: zernio | resend | ga4 | search_console | hubspot | stripe | linear | notion | slack'}}}
Eingabeschema
{'type': 'object', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'description': 'The launchId/runId returned by chieflab_get_users_after_build or chiefmo_launch_product.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id. Hosted auth usually supplies this.'}, 'responseShape': {'type': 'string', 'description': 'summary (default, small — returns reviewUrl + openApprovalIds without draft bodies) | full (inline full approval objects; large, debug/export only).'}, 'includeFullArtifacts': {'type': 'boolean', 'description': 'Alias for responseShape:"full". Use only for debug/export.'}}}
Eingabeschema
{'type': 'object', 'required': ['runId', 'channel', 'metrics'], 'properties': {'runId': {'type': 'string', 'description': 'Required. The originating run id (the next-move action is tagged with this so the brain can compound launch → measure → next-move chains).'}, 'channel': {'type': 'string', 'description': 'Channel the measurement was for (used to ground the suggestion).'}, 'metrics': {'type': 'object', 'description': 'Same metrics object passed to chieflab_suggest_next_move.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'required': ['capabilityNeeded'], 'properties': {'brief': {'type': 'object', 'description': 'Structured brief — { goal, references, constraints, asset_links, etc. }. The more specific, the better the offers.'}, 'budget': {'type': 'object', 'description': "Optional. { kind: 'max_usd', amount: 50 } | { kind: 'quote' } | { kind: 'free' }."}, 'deadline': {'type': 'string', 'description': 'Optional ISO 8601 timestamp.'}, 'sourceRunId': {'type': 'string', 'description': 'Optional. The parent runId this work attaches to (e.g. the launch that needs the asset).'}, 'workspaceId': {'type': 'string'}, 'capabilityNeeded': {'type': 'string', 'description': "Capability slug to match (e.g. 'demo_video'). Should match a published capability — call chieflab_search_capabilities first if unsure."}, 'sourceOperatorId': {'type': 'string', 'description': "Optional. The operatorId that's requesting (e.g. 'chieflab-launch')."}}}
Eingabeschema
{'type': 'object', 'required': ['actionId'], 'properties': {'subject': {'type': 'string', 'description': "For email sends: subject line override. Defaults to the action's stored subject when present."}, 'actionId': {'type': 'string', 'description': "The publishAction.id whose executionMatrix you want to execute. The action must be in status='approved' (call chiefmo_approve_action first)."}, 'mediaUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional media URLs (image / video) for social posts. Zernio uploads them to its CDN before posting.'}, 'platforms': {'type': 'array', 'items': {'type': 'object'}, 'description': "For oauth_connector (social): Zernio platform descriptors, e.g. [{platform: 'linkedin', accountId: '<id>'}]. Required for social posts unless the workspace has a default mapping; the tool refuses with reason='platforms_required' otherwise."}, 'recipients': {'type': 'array', 'items': {'type': 'string'}, 'description': 'For api_key_connector (email): recipient email addresses. Required for email sends unless the action carries a stored recipient list.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'required': ['proofId', 'adminToken'], 'properties': {'dueAt': {'type': 'string', 'description': 'Optional ISO timestamp. Defaults to (now - 60s) so the next cron tick picks it up.'}, 'proofId': {'type': 'string', 'description': 'proof_ledger row id (from chieflab_record_manual_publish or chieflab_execute_approved_action response).'}, 'adminToken': {'type': 'string', 'description': 'Required. Must match CHIEFLAB_ADMIN_TOKEN env var.'}}}
Eingabeschema
{'type': 'object', 'required': ['operatorId', 'capability'], 'properties': {'capability': {'type': 'string'}, 'operatorId': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'properties': {'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'properties': {'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'properties': {'goal': {'type': 'string', 'description': "Desired outcome, e.g. 'Get first 100 users', 'find paying customers', 'get design partners', 'make money from this'."}, 'brand': {'type': 'object', 'description': 'Optional inline brand context.'}, 'channels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional launch channels. Default is auto-selected from the detected product playbook — service agencies skip Product Hunt; B2B SaaS / devtools / consumer / AI-agent products include it; internal tools default to email + landing only. Pass an explicit subset to override.'}, 'tenantId': {'type': 'string', 'description': 'Optional tenant/end-user id for stored brand context and memory.'}, 'outputMode': {'type': 'string', 'description': "context | draft | full | demo. 'demo' is the first-use / YC-demo concise mode — forces 4 punch-list channels (linkedin / x / product_hunt / email), draft rendering, no image gen, scrubbed inline drafts. Defaults to context/draft behavior from chiefmo_launch_product."}, 'productUrl': {'type': 'string', 'description': 'Live product URL. Pass either productUrl or productDescription.'}, 'repoContext': {'type': 'object', 'description': 'Strongly recommended. Include whatChanged, recentCommits, changedFiles, routes, readme, targetCustomer, launchGoal.'}, 'responseShape': {'type': 'string', 'description': 'summary (default, smallest — promotes launchId / launchRoomUrl / publishActionIds / firstResponseScript; per-channel draft bodies live behind the reviewUrl) | compact (per-channel previews + truncated draft bodies inline) | full (everything inline; debug/export only — large).'}, 'idempotencyKey': {'type': 'string', 'description': 'Optional dedupe key to prevent duplicate launch preparation.'}, 'productDescription': {'type': 'string', 'description': 'Short product description if no public URL exists yet.'}, 'includeFullArtifacts': {'type': 'boolean', 'description': 'Alias for responseShape:"full". Backward-compat with older P29 clients.'}}}
Eingabeschema
{'type': 'object', 'properties': {}}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max events to return. Default 50.'}, 'status': {'type': 'string', 'description': 'new | drafted | approved | sent | dismissed | all (default: new)'}, 'sinceHours': {'type': 'number', 'description': 'Only events received in the last N hours. Default 168 (7 days). Max 720 (30 days).'}, 'workspaceId': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'properties': {'goal': {'type': 'string'}, 'brand': {'type': 'object'}, 'channels': {'type': 'array', 'items': {'type': 'string'}}, 'tenantId': {'type': 'string'}, 'productUrl': {'type': 'string'}, 'webhookUrl': {'type': 'string'}, 'repoContext': {'type': 'object'}, 'workspaceId': {'type': 'string'}, 'imagesNeeded': {'type': 'number'}, 'idempotencyKey': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'properties': {}}
Eingabeschema
{'type': 'object', 'required': ['actionId'], 'properties': {'note': {'type': 'string', 'description': 'Optional founder note about what was done. Stored in metadata.markedManuallyNote for the brain to read later.'}, 'actionId': {'type': 'string', 'description': 'The next-move action id.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'required': ['actionId'], 'properties': {'force': {'type': 'boolean', 'description': 'Re-measure even if metadata.proof.measuredAt is already set. Default false.'}, 'actionId': {'type': 'string', 'description': 'The action id whose publishedUrl points at the HN post. Required.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'required': ['actionId'], 'properties': {'force': {'type': 'boolean', 'description': 'Re-measure even if metadata.proof.measuredAt is already set. Default false.'}, 'actionId': {'type': 'string', 'description': 'The action id whose publishedUrl points at the Reddit post. Required.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'properties': {'workspaceId': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'description': 'The launchId returned by chiefmo_launch_product. Used to scope analytics to posts from that launch.'}, 'accountIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Specific Zernio accountIds to pull analytics for. Defaults to all accounts that posted in this launch.'}, 'outputMode': {'type': 'string', 'description': '"context" (default): returns metrics + a brief your LLM renders into the customer-facing recommendation. "full": ChiefLab generates the recommendation server-side.'}, 'lookbackDays': {'type': 'number', 'description': 'How many days of history to consider (default 7, max 90).'}}}
Eingabeschema
{'type': 'object', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'description': "The prior launchId returned by chiefmo_launch_product. The prepared queue grounds in this run's measurement + memory."}, 'horizon': {'type': 'string', 'description': '"day_2" | "day_3" | "week" — how far to plan. Default: "week" (7-day mode).'}, 'channels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Restrict next-moves to these channels. Defaults to the channels of the prior launch.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'required': ['actionId', 'content', 'platforms'], 'properties': {'content': {'type': 'string', 'description': 'The final rendered post text (your LLM rendered this from the brief in the launch pack).'}, 'actionId': {'type': 'string', 'description': 'The publishAction.id from chiefmo_launch_product. Required.'}, 'mediaUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Image/video URLs (or base64 data URLs from launch graphics).'}, 'platforms': {'type': 'array', 'items': {'type': 'object', 'properties': {'platform': {'type': 'string'}, 'accountId': {'type': 'string'}}}, 'description': 'Which platforms + Zernio accountIds to publish to. Get accountIds from chieflab_list_publish_accounts.'}, 'scheduleAt': {'type': 'string', 'description': 'Optional ISO 8601. Schedule for later instead of immediate.'}}}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Page size (1-500, default 50).'}, 'runId': {'type': 'string', 'description': "Optional. Filter to one run's proofs."}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id (defaults to auth workspace).'}, 'sinceTimestamp': {'type': 'string', 'description': 'Optional ISO timestamp; only return proofs published at or after.'}, 'measurementDueOnly': {'type': 'boolean', 'description': "When true, returns only rows with measurement_due_at <= now AND measured_at IS NULL. Use this to find what's ready for 24h readback."}}}
Eingabeschema
{'type': 'object', 'required': ['actionId'], 'properties': {'force': {'type': 'boolean', 'description': 'Re-record even if metadata.proof.measuredAt is already set. Default false.'}, 'metrics': {'type': 'object', 'description': "Free-form metrics map. Channel-specific keys: x → {impressions, likes, replies, retweets, clicks}; linkedin → {impressions, reactions, comments, reposts, clicks}; email → {sent, opens, clicks, replies, unsubscribes}; landing_hero → {sessions, signups, avg_time_seconds, bounce_rate_pct}; product_hunt → {upvotes, comments, rank}. Call without metrics to just retrieve the schema for the action's channel."}, 'actionId': {'type': 'string', 'description': 'The action id to attach metrics to.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'required': ['actionId', 'publishedUrl'], 'properties': {'notes': {'type': 'string', 'description': 'Optional. Any context on how the post performed in the first hour (early upvotes, top comment, reactions). Persists into the P9 brain.'}, 'actionId': {'type': 'string', 'description': 'The publishAction.id that the user manually published (from chieflab_use_manual_fallback). Required.'}, 'publishedAt': {'type': 'string', 'description': 'Optional ISO 8601 timestamp. Defaults to now.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}, 'publishedUrl': {'type': 'string', 'description': 'The live URL of the manual post (e.g. producthunt.com/posts/<slug>, news.ycombinator.com/item?id=<id>, reddit.com/r/SaaS/comments/<id>).'}}}
Eingabeschema
{'type': 'object', 'required': ['actionId', 'instruction'], 'properties': {'body': {'type': 'string', 'description': "Optional. If your LLM already rendered the redrafted body, pass it here and ChiefLab updates the action's brief directly."}, 'actionId': {'type': 'string', 'description': 'The publishAction.id from chiefmo_launch_product.'}, 'instruction': {'type': 'string', 'description': "Plain-English instruction. 'shorter', 'more casual', 'add the $40 number from our pricing page', etc."}, 'workspaceId': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'required': ['runId', 'channel'], 'properties': {'cta': {'type': 'string', 'description': 'Override the CTA text.'}, 'seed': {'type': 'string', 'description': 'Optional seed string for deterministic layout-hint picking.'}, 'model': {'type': 'string', 'description': "gemini-2.5-flash-image | gemini-3-pro-image-preview. Caller override; defaults to the model the brief's fidelity selects."}, 'runId': {'type': 'string', 'description': 'Launch run id that produced the original asset. Used to look up the LaunchIntelligenceBrief stored on the run.'}, 'style': {'type': 'string', 'description': "clean | bold | editorial | playful. Defaults to 'editorial'."}, 'assetId': {'type': 'string', 'description': 'Optional original assetId — when present, the regenerated asset reuses the id so the run viewer can swap in place.'}, 'channel': {'type': 'string', 'description': 'Channel the asset is for (linkedin / x / email / landing_hero / etc.).'}, 'fidelity': {'type': 'string', 'description': "on_brand | polished | experimental. Defaults to 'on_brand'."}, 'headline': {'type': 'string', 'description': 'Override the headline rendered into the image.'}, 'brandColors': {'type': 'object', 'description': 'Optional {primary, accent, bg, text} hex override.'}, 'subheadline': {'type': 'string', 'description': 'Override the subheadline.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'type': 'string', 'description': 'design | video | research | outreach | seo | analytics'}, 'brief': {'type': 'object', 'description': 'kind-specific brief fields (asset/channel for design; durationSeconds/platform for video; goal for research; contacts/channel for outreach; url/targetTerms for seo; metrics/channel for analytics)'}, 'runId': {'type': 'string', 'description': "Optional. Source run id; the specialist grounds in that launch's brief (productName / audience / market / positioning)."}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}, 'autoCreateAction': {'type': 'boolean', 'description': 'Default true. When true, creates an approval-gated action in actionStore so the brief lands in the Launch Room. When false, returns the specialist output without persistence (use for one-off / preview).'}}}
Eingabeschema
{'type': 'object', 'required': ['actionId'], 'properties': {'actionId': {'type': 'string', 'description': 'The blocked publishAction.id from chiefmo_launch_product.'}, 'workspaceId': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'required': ['runId', 'assetId', 'decision'], 'properties': {'runId': {'type': 'string', 'description': 'Launch run id that produced the asset.'}, 'reason': {'type': 'string', 'description': 'Optional. Why rejected (or why approved). Stored in metadata for audit + future brain memory.'}, 'assetId': {'type': 'string', 'description': 'The visual asset id from launchPack.channels[channel].media[*].assetId.'}, 'decision': {'enum': ['approve', 'reject'], 'type': 'string', 'description': "approve | reject. Updates the asset's status field."}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': "Tag overlap filter (e.g. ['video', 'demo'])."}, 'limit': {'type': 'number', 'description': 'Max results. Default 25.'}, 'capability': {'type': 'string', 'description': "Capability slug to match (exact match — e.g. 'demo_video')."}}}
Eingabeschema
{'type': 'object', 'required': ['from', 'to', 'subject'], 'properties': {'to': {'description': 'Recipient(s). Single email or array (≤50).'}, 'from': {'type': 'string', 'description': "Sender. Must be a verified Resend domain address (e.g. 'Brand <hi@yourdomain.com>')."}, 'html': {'type': 'string', 'description': 'HTML body (preferred for inboxing).'}, 'text': {'type': 'string', 'description': 'Plain-text fallback (recommended).'}, 'replyTo': {'description': 'Optional reply-to address(es).'}, 'subject': {'type': 'string'}, 'actionId': {'type': 'string', 'description': 'The publishAction.id from chiefmo_launch_product. Required for the approval gate to fire.'}}}
Eingabeschema
{'type': 'object', 'required': ['profile'], 'properties': {'source': {'type': 'string', 'description': "manual | extracted | imported | autodetected. Default 'manual'."}, 'profile': {'type': 'object', 'description': 'Partial profile object — top-level keys merge, nested objects shallow-merge, null values remove.'}, 'confidence': {'type': 'string', 'description': "high | medium | low. Default 'medium'."}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'required': ['provider', 'apiKey'], 'properties': {'apiKey': {'type': 'string', 'description': 'The provider API key (e.g. for Gemini: a Google API key starting with AIza...).'}, 'provider': {'type': 'string', 'description': 'gemini | resend | zernio | anthropic | openai'}, 'workspaceId': {'type': 'string', 'description': "Optional workspace id (defaults to your bearer's workspace)."}}}
Eingabeschema
{'type': 'object', 'required': ['channelTargets'], 'properties': {'workspaceId': {'type': 'string', 'description': 'Optional workspace id (defaults to the auth workspace).'}, 'channelTargets': {'type': 'object', 'description': "Map of channel → target. Examples: linkedin/x → { accountId: '<zernio_account_id>' }; email → { fromEmail: 'founder@product.com', recipientListId: '<list_id>' }. Pass null as a channel value to remove it."}}}
Eingabeschema
{'type': 'object', 'properties': {'agentName': {'type': 'string', 'description': 'Optional: which AI agent is requesting (Cursor, Claude Desktop, Codex, custom). Logged for support.'}, 'contactEmail': {'type': 'string', 'description': 'Optional contact email for the user (used for future notifications).'}, 'workspaceLabel': {'type': 'string', 'description': "Optional human-readable label for the workspace (default: 'default')."}}}
Eingabeschema
{'type': 'object', 'required': ['actionId'], 'properties': {'reason': {'type': 'string', 'description': 'Why the founder is skipping this. Used by the brain to avoid suggesting similar moves.'}, 'actionId': {'type': 'string', 'description': 'The next-move action id.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'properties': {'projectName': {'type': 'string', 'description': 'Optional current project/repo name.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}, 'currentRepoContext': {'type': 'object', 'description': 'Optional current repo/project context. Helps agents compare recovered loops against the project the user is asking about.'}}}
Eingabeschema
{'type': 'object', 'required': ['channel', 'metrics'], 'properties': {'runId': {'type': 'string', 'description': 'Optional. Source run whose brief grounds the suggestion (so the draft references the actual product / market / audience instead of templates).'}, 'channel': {'type': 'string', 'description': 'Channel the measurement is for (linkedin, x, email, landing_hero, product_hunt, hacker_news).'}, 'metrics': {'type': 'object', 'description': 'Measurement metrics — engagements, clicks, opens, replies, traffic, conversions, upvotes, rank, etc. Synonyms (engagement / openRate / clickRate / visits) are accepted.'}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}}}
Eingabeschema
{'type': 'object', 'required': ['actionId'], 'properties': {'channel': {'type': 'string', 'description': 'Override the channel inferred from the action. One of: linkedin | x | email | blog | landing_hero | product_hunt | hacker_news | reddit | discord | slack | indie_hackers | dev_to | ycombinator.'}, 'actionId': {'type': 'string', 'description': "The publishAction.id from chiefmo_launch_product whose manualFallback you want to fetch. Works for both manual-only channels (connector === 'manual_only') and otherwise-automated channels whose connector isn't wired (connector === 'zernio' or 'resend' with no key). Look at agentGuide.blockedActions[] or publishActions[].manualFallback in the launch response — any action where manualFallback is non-null is fetchable here."}, 'subreddit': {'type': 'string', 'description': "Optional. For channel=reddit, which subreddit (e.g. 'r/SaaS', 'r/AI_Agents'). ChiefLab's brief picks the right post format per sub."}, 'workspaceId': {'type': 'string', 'description': 'Optional workspace id.'}, 'discordCommunity': {'type': 'string', 'description': 'Optional. For channel=discord, which community (the brief tailors tone + announcement-channel pick).'}}}
Eingabeschema
{'type': 'object', 'properties': {'workspaceId': {'type': 'string', 'description': 'Optional workspace id; inferred from bearer auth.'}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
ProductClank
Creates and manages social promotion, discovery, content, and creator-participation campaigns across multiple social platforms.
AdButler
Manages AdButler advertisers, campaigns, ad items, audiences, zones, creatives, catalogs, and advertising reports.
独行录 / opcmenu
Supports founder and company discovery, collaboration goals and tasks, events and signups, networking, messaging, profiles, produ…
Meta Council
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting a…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
Stratalize Intelligence
Provides vendor, market, SaaS, workforce, government contract, public company, regulatory, competitive, and AI-brand intelligence…
captapi
Retrieves social media profiles, posts, engagement metrics, comments, marketplace listings, events, and Meta advertising data acr…