account-info
Read-only account information. Use the Omnimatch MCP codemode tool to list the user's markets and entities, view inboxes and matches, inspect inbox filters, read subscription plans, and check credit balance / available credit packs. Call codemode with code that invokes codemode.list_my_markets(), codemode.list_my_entities(), codemode.list_inboxes({ entityId }), codemode.list_inbox_matches({ entityId, inboxKey }), codemode.get_match({ matchId, entityId }), codemode.list_plans({ marketId }), codemode.get_my_credit_balance({ marketId }), codemode.list_credit_packs({ marketId }), codemode.get_next_match_discovery({ entityId }), etc. Use when the user asks to view or list their markets, entities, matches, inbox filters, plans, balance, or when their next search runs. Do not use for editing or purchases—use the manage-account or subscription skill for that. When talking to the user, always use real titles (market title, entity title, match/other side name, type title, plan name)—never show IDs.
- License 许可
- MIT
- 最近更新
- 2026-05-27
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- account-info
- description
- Read-only account information. Use the Omnimatch MCP codemode tool to list the user's markets and entities, view inboxes and matches, inspect inbox filters, read subscription plans, and check credit balance / available credit packs. Call codemode with code that invokes codemode.list_my_markets(), codemode.list_my_entities(), codemode.list_inboxes({ entityId }), codemode.list_inbox_matches({ entityId, inboxKey }), codemode.get_match({ matchId, entityId }), codemode.list_plans({ marketId }), codemode.get_my_credit_balance({ marketId }), codemode.list_credit_packs({ marketId }), codemode.get_next_match_discovery({ entityId }), etc. Use when the user asks to view or list their markets, entities, matches, inbox filters, plans, balance, or when their next search runs. Do not use for editing or purchases—use the manage-account or subscription skill for that. When talking to the user, always use real titles (market title, entity title, match/other side name, type title, plan name)—never show IDs.
03 SKILL.md 正文
Account Info (Read-Only)
Use the Omnimatch MCP codemode tool to read the current user's account data (Cloudflare Codemode). The server exposes only codemode: call it with a code parameter (async arrow function body) that runs codemode.list_my_markets(), codemode.list_inbox_matches({ ... }), etc., and returns the result. This skill is read-only: list and view only. For updating profiles, filters, plan changes, or match actions, use the manage-account skill.
When to use
- User asks what markets am I in? →
codemode.list_my_markets(). - User asks what entities do I have? →
codemode.list_my_entities()(across markets) orcodemode.list_market_entities({ marketId })for one market. - User asks show me details for entity X →
codemode.get_entity({ entityId })(returns title, type, externalLink, description, criteria, files with summaries, inbox filters, entity query answers if plan allows). - User asks what are my matches or show matches → first
codemode.list_inboxes({ entityId })to see inboxes (priority, liked, all, plus each inbox filter), thencodemode.list_inbox_matches({ entityId, inboxKey })to load the table for the chosen inbox. - User asks about a specific match →
codemode.get_match({ matchId, entityId })returns a concise summary (names, contact, suitability summaries, insight answers, overall scores) that explains why you matched; passdetail: "full"when you also need the per-category score breakdown with justifications. The actual reachable contact (LinkedIn URL, email) lives inotherEntityContacton the response, not in thecontactcolumn of the inbox row. Usecodemode.view_match_link({ matchId, entityId })for just the externalLink. - User asks why did we match for one inbox filter, or what does filter X say for match Y →
codemode.list_match_inbox_filter_answers({ matchId, entityId }). - User asks about inbox filters they have →
codemode.list_inbox_filters({ entityId }). - User asks about subscription, plans, or what features do I have →
codemode.list_plans({ marketId }). - User asks how many credits do I have, what's my balance, or am I out of credits →
codemode.get_my_credit_balance({ marketId }). For markets that don't charge credits, the tool returnscreditsEnabled: false—say so briefly. - User asks what credit packs can I buy or how do I top up →
codemode.list_credit_packs({ marketId }). Present packs by name and credit amount; never expose Stripe price ids in user-facing copy. Direct the user to the subscription skill (ortopup_credits) when they want to actually buy. - User asks when is my next search, when do new matches arrive, or when does discovery run →
codemode.get_next_match_discovery({ entityId }). Returns{ scheduled: false }or{ scheduled: true, nextRunAt }(UTC ISO-8601). This only reports the automatic schedule; to trigger a search now, that's a manage-account action (discover_matches), which adds new matches (it does not re-score existing ones).
When talking to the user: Always use real titles, never IDs. Refer to entities by their title, markets by their market title, matches by the other side's title, types by the entity type title (e.g. "job", "candidate"), and plans by plan name. Do not show market ID, entity ID, match ID, or Stripe price ID in user-facing messages—use IDs only inside codemode parameters.
Codemode read-only tools
Call the codemode tool with code set to an async arrow function body. Inside it, you can use:
- codemode.list_my_markets() →
[{ marketId, title, description }]. - codemode.list_my_entities() → flat
[{ entityId, marketId, marketTitle, title, type, shortDescription }]. - codemode.list_market_entities({ marketId }) → entities in one market.
- codemode.get_entity({ entityId }) → full profile.
- codemode.list_inboxes({ entityId }) → built-in inboxes (priority, liked, all) plus filter inboxes (key
query:{filterId}), each with a count. - codemode.list_inbox_matches({ entityId, inboxKey, offset, limit, sortBy, includeRejected, includeLowScores }) → TUI-friendly table:
{ inboxKey, total, offset, columns, rows: [{ matchId, title, yourScore, theirScore, status, contact, updatedAt, locked }] }.contactis misleading: it's a tri-state ("shared" | "pending" | "none") that only reflects owner-to-owner mutual contact sharing viashare_my_contact_with_match. It stays"none"even when the matched entity is externally sourced with a public contact (e.g. aLiaisoncarrying a LinkedIn URL). To get the actual reachable contact, callget_matchand readotherEntityContact.externalLink/.email/.name. - codemode.get_match({ matchId, entityId, detail }) → match detail from your entity's perspective.
detaildefaults to"summary"(names, contact, suitability summaries, insight answers, overall scores — small, safe to fetch across many matches); passdetail: "full"for the per-category score breakdown with justifications (large, fetch one at a time). Score / insight / contact fields are plan-gated; gated values come back as an upgrade-message string. When a match is freshly created or has just been re-evaluated,yourCriteriaScore/theirCriteriaScoremay benulland inbox-filter answers may showcomputed: false; scoring runs asynchronously and can take up to 5 minutes, so tell the user it's still computing rather than treating null as an error, and don't aggressively poll. - codemode.view_match_link({ matchId, entityId }) → just the externalLink (or
{ externalLink: null, locked: true }). - codemode.list_match_inbox_filter_answers({ matchId, entityId }) → per-filter answers with
computed,answer,outdated.computed: falsemeans the workflow has not produced an answer yet. - codemode.list_inbox_filters({ entityId }) → filter list with prompt, strictness, outputFormat.
- codemode.list_plans({ marketId }) → plans with
planId, name, description, isFree, isCurrentPlan, price (live from Stripe), features, limits. - codemode.get_my_credit_balance({ marketId }) →
{ creditsEnabled: false, message }when the market doesn't charge credits, else{ creditsEnabled: true, subscriptionBalance, topupBalance, nextFreeGrantAt }.subscriptionBalancerefreshes monthly from the plan;topupBalanceis purchased credits that don't expire. - codemode.list_credit_packs({ marketId }) →
{ creditsEnabled, packs: [{ priceId, name, creditsAmount, price?: { amount, currency } }] }.price.amountis in the smallest unit of the currency (e.g. cents for USD). - codemode.get_next_match_discovery({ entityId }) →
{ scheduled: false }or{ scheduled: true, nextRunAt }(UTC ISO-8601 of the next automatic discovery for this entity).
All ids are UUIDs. Do not invent or assume endpoints.
04 同仓库更多 Skills
subscription
暂无简介
manage-account
暂无简介
level-up
暂无简介
account-info
暂无简介
account-briefing
暂无简介
subscription
View and change the user's subscription plan or credit balance in a market. Use the Omnimatch MCP codemode tool to list plans, switch plans via Stripe Billing Portal, check the owner's credit balance, list one-time credit packs, and start a Stripe checkout to top up credits. Call codemode with code that invokes codemode.list_plans({ marketId }), codemode.change_plan({ marketId, targetPlanId }), codemode.get_my_credit_balance({ marketId }), codemode.list_credit_packs({ marketId }), and codemode.topup_credits({ marketId, priceId }). Use when the user asks about their plan, pricing, upgrading, downgrading, cancelling, their credit balance, or buying more credits. When talking to the user, always use plan name and pack name with plain pricing—never show Stripe price ids.