Skip to content
Agentmart
Submit a tool

manage-account

Manage the user's Omnimatch account.

Skill by omnimatch

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/omnimatch-manage-account

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Manage the user's Omnimatch account. Use the Omnimatch MCP codemode tool to update entity profile (title, external link, email notifications), update entity criteria with free-text (stored as a scoring file behind the scenes), create private scoring entities from text, links, or uploaded files, manage inbox filters (add/update/remove), perform match actions (like, reject, respond, view link, unlock, share contact), trigger a manual match-discovery search, and change subscription plan via Stripe billing portal. Destructive actions require confirmed=true. Call codemode with code that invokes codemode.update_entity_*, codemode.create_private_entity, codemode.get_private_entity_file_upload_url, codemode.enqueue_private_entity_file_upload, codemode.add_inbox_filter, codemode.like_match, codemode.reject_match, codemode.respond_to_match, codemode.unlock_match, codemode.share_my_contact_with_match, codemode.discover_matches, codemode.change_plan, etc. Use when the user wants to edit their profile, upload private opportunities/profiles to score, manage filters, act on matches, run a search now, or change plan. When talking to the user, always use real titles—never show IDs.

Use cases: writing, productivity, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/manage-account

What's inside

Skill name
manage-account
Description
Manage the user's Omnimatch account. Use the Omnimatch MCP codemode tool to update entity profile (title, external link, email notifications), update entity criteria with free-text (stored as a scoring file behind the scenes), create private scoring entities from text, links, or uploaded files, manage inbox filters (add/update/remove), perform match actions (like, reject, respond, view link, unlock, share contact), trigger a manual match-discovery search, and change subscription plan via Stripe billing portal. Destructive actions require confirmed=true. Call codemode with code that invokes codemode.update_entity_*, codemode.create_private_entity, codemode.get_private_entity_file_upload_url, codemode.enqueue_private_entity_file_upload, codemode.add_inbox_filter, codemode.like_match, codemode.reject_match, codemode.respond_to_match, codemode.unlock_match, codemode.share_my_contact_with_match, codemode.discover_matches, codemode.change_plan, etc. Use when the user wants to edit their profile, upload private opportunities/profiles to score, manage filters, act on matches, run a search now, or change plan. When talking to the user, always use real titles—never show IDs.
License
MIT
Instructions
89 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • description: longer than 1024 characters

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Manage Account

Use this skill when the user wants to **change something** in their Omnimatch account: edit a profile, refine search criteria, create private scoring entities from text / links / uploaded files, manage inbox filters, act on a match (like / reject / respond / view link / unlock / share contact), or upgrade/downgrade their plan. The Omnimatch MCP server exposes only a single **codemode** tool ([Cloudflare Codemode](https://developers.cloudflare.com/agents/api-reference/codemode/)) — call it with a `code` parameter (async arrow function body) that runs the appropriate `codemode.<tool>(args)` calls.

**Important:** Existing profile edits are text-first. To refine an existing entity's description or search criteria, use `codemode.update_entity_criteria({ entityId, text })` — the server stores the text as a scoring file internally and regenerates the profile. For creating a new **private scoring entity** from an uploaded file, use the private upload workflow below.

**Confirmation pattern:** Destructive or credit-spending tools (`reject_match`, `unlock_match`, `reevaluate_match`, `remove_entity_files`, `remove_inbox_filter`, `update_entity_title`, `update_entity_external_link`, `respond_to_match` with `direction: "less"`) require `confirmed: true`. The first call returns `{ requiresConfirmation: true, action, details, message }` — show the action to the user and only re-call with `confirmed: true` once they confirm.

**When talking to the user:** Always use **real titles**, never IDs. Refer to entities by their **title**, markets by **market title**, matches by the row's **title** (the other side's name), types by the **entity type title** (e.g. "job", "candidate"), and plans by **plan name**.

## Entity edits

- Title → `codemode.update_entity_title({ entityId, title, confirmed })`.
- External link → `codemode.update_entity_external_link({ entityId, externalLink, confirmed })` (pass `null` to clear).
- Email frequency → `codemode.update_entity_email_notifications({ entityId, frequency: "never" | "best_only" | "all" })`.
- Search criteria refinement → `codemode.update_entity_criteria({ entityId, text })`.
- Add a note → `codemode.add_entity_note({ entityId, name, text })`.
- Remove files → `codemode.remove_entity_files({ entityId, fileKeys, confirmed })` (keys from `get_entity` files[]).

## Private Scoring Entities

Use these when the user wants to upload a private opportunity/profile to score against their own existing entities. Private scoring entities are visible only to the owner and are excluded from cross-owner search.

- Text or link private upload → `codemode.create_private_entity({ marketId, entityTypeTitle, title, externalLink?, initialCriteriaText?, confirmed })`.
- List existing private scoring entities → `codemode.list_private_entities({ marketId, entityTypeTitle? })`.
- Rescore existing public profile against private scoring entities → `codemode.score_against_private_entities({ entityId, confirmed })`.
- Delete a private scoring entity → `codemode.delete_private_entity({ entityId, confirmed })`.

### Private File Upload Workflow

1. Call `codemode.get_private_entity_file_upload_url({ marketId, contentType, name })`.
2. Upload the file bytes with PUT to the returned `uploadUrl`.
3. Call `codemode.enqueue_private_entity_file_upload({ marketId, entityTypeTitle, title, stagedKey, contentType, name, confirmed: true })` using the returned `stagedKey`, `contentType`, and `name`.

The queued job creates the private scoring entity, attaches the file privately, and runs profile generation/scoring in the background.

## Inbox filters

Inbox filters are saved free-text questions answered per match. Each filter becomes its own inbox keyed `query:{filterId}`.

- Create → `codemode.add_inbox_filter({ entityId, prompt, strictness: "lenient" | "normal" | "strict" })`. Plan-gated (Match insights). Returns `{ filterId, inboxKey }`.
- Update → `codemode.update_inbox_filter({ entityId, filterId, prompt?, strictness? })`.
- Remove → `codemode.remove_inbox_filter({ entityId, filterId, confirmed })`.

## Match actions

Match actions all take `{ matchId, entityId }` (the match id and your entity id):

- Approve / "more like this" → `codemode.like_match({ matchId, entityId })`.
- Reject / "less like this" → `codemode.reject_match({ matchId, entityId, confirmed })` — confirm before calling.
- Free-text feedback → `codemode.respond_to_match({ matchId, entityId, direction: "more" | "less", textFeedback?, confirmed })` — `direction: "less"` requires confirmation.
- Get just the external link → `codemode.view_match_link({ matchId, entityId })`. Returns `{ externalLink, locked, message? }`.
- Unlock a credit-gated match → `codemode.unlock_match({ matchId, entityId, confirmed })` — deducts one credit; confirm before calling.
- Share contact details with an on-platform match → `codemode.share_my_contact_with_match({ matchId, entityId, name?, email?, externalLink?, confirmed })` — at least one of email/externalLink required. Only meaningful for owner-to-owner matches. **Do not call this for externally-sourced matches**: there's no owner on the other side to receive the share, and the public contact is already on `get_match.otherEntityContact`.
- Re-evaluate a match's score → `codemode.reevaluate_match({ matchId, entityId, confirmed })` — confirm before calling. Useful after the user updates their profile and wants the score to reflect the new context. Costs one re-evaluate credit on credit-enabled markets; fails if either side's profile isn't ready (missing scoring files, no extracted criteria, or marked outdated). The re-evaluation runs asynchronously and **can take up to 5 minutes** to complete; while it's pending, `get_match` may show `yourCriteriaScore`/`theirCriteriaScore` as `null` and inbox-filter answers as `computed: false`. Tell the user up front so they aren't surprised, and don't aggressively poll — wait at least a few minutes between checks.

## Match discovery (manual search)

Trigger a fresh discovery run with `codemode.discover_matches({ entityId, timeframe, searchSpace, totalConnections })`. This is the manual equivalent of the automatic search whose schedule you read via `get_next_match_discovery` (account-info).

**What it does — and what it doesn't:**

- It **finds and adds new matches**. It searches other entities in the market (internal) and the web (external), then creates fresh connections. It **excludes profiles you're already connected to or have rejected**, so it never duplicates or re-scores matches you already have.
- It is **not** a re-score. To refresh the score on an existing match after the user edits their profile, use `reevaluate_match` (single match). The platform also re-evaluates outdated matches automatically when criteria/files change — so "I updated my profile, will a search re-score my matches?" → no, a search brings in *new* matches; the existing ones re-score on their own (or via `reevaluate_match`).
- Before searching it **clears stale matches**: connections older than 60 days that were rejected or never acted on by either side are removed. Liked/approved and recent matches are kept.

**Cost & timing:** On credit-enabled markets a manual search **spends a search credit**. This tool has **no `confirmed` flag**, so tell the user it will run a search (and use a credit where the market charges for it) and get a yes before calling. The run happens in the **background** (a workflow); results land in the inboxes when ready — typically a few minutes. Don't poll aggressively.

**Parameters** (all optional, with defaults):

- `timeframe`: `"1 day" | "1 week" | "1 month" | "1 year" | "no limit"` — recency window for external web results. Default `"1 week"`.
- `searchSpace`: `"external only" | "internal only" | "both"`. Default `"both"`.
- `totalConnections`: `"auto"` or a number 1–50 — cap on how many matches to bring back. Default `"auto"`.

## Subscription / plan changes

- List plans → `codemode.list_plans({ marketId })` for plan name, description, isFree, isCurrentPlan, price (live from Stripe), features, limits.
- Change plan → `codemode.change_plan({ marketId, targetPlanId })` returns `{ billingPortalUrl, currentPlanId, targetPlanId, message }`. Open the URL — Stripe handles upgrade/downgrade/cancellation. No confirmed flag needed; Stripe is the confirmation surface.

## Workflow patterns

- **"Reject this match"** — call `reject_match` first without `confirmed`; show the preview to the user; if they confirm, call again with `confirmed: true`.
- **"Unlock that match"** — same pattern; warn that it costs one credit before re-calling with `confirmed: true`. Private scoring entity matches are already unlocked.
- **"Add a filter for senior roles"** — `codemode.add_inbox_filter({ entityId, prompt: "Is this a senior role?", strictness: "normal" })`. After it returns the filterId, tell the user the filter has been queued for output-format inference and will appear in the inbox once matches are evaluated.
- **"What does my filter say about this match"** — `codemode.list_match_inbox_filter_answers({ matchId, entityId })` (read-only — also available in account-info).
- **"Run a search" / "find me new matches now"** — `codemode.discover_matches({ entityId })`. If the market charges credits, tell the user it spends a search credit and confirm first (no `confirmed` flag exists). Explain it runs in the background and new matches will appear in the inboxes in a few minutes, and that it adds *new* matches rather than re-scoring existing ones.
- **"Upgrade to the Pro plan"** — `codemode.list_plans({ marketId })` to find the plan with name "Pro" and its planId; then `codemode.change_plan({ marketId, targetPlanId })`. Hand the user the `billingPortalUrl`.

From omnimatch/omnimatch-mcp, MIT.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
May 27, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from omnimatch

Cite this page

manage-account skill. Agent Mart. https://agentmart.dev/skills/omnimatch-manage-account (last updated 2026-10-24)