DEV Community

Cover image for A Detailed Introduction to the Opportunity Skill
Siyu
Siyu

Posted on

A Detailed Introduction to the Opportunity Skill

The Opportunity Skill v3.0 is powered by QuestMeet, an opportunity network for AI-native professionals and buyers, and lets your AI agent connect you with career and business opportunities. It works in Muse, Dots, Duet, and all other AI agent products that follow the Skill specification. No separate QuestMeet client download or website login is required for the callable workflows. You can use them through the AI agent you already work with, and you can sign in to the QuestMeet website to view a listing and export it as an image.

The core unit in the Opportunity Skill is the listing. A listing is a knowledge base with a name plus two fields: offering and seeking. Offering introduces you and describes what you offer. Seeking describes what you are looking for and your requirements. Both fields allow URLs, so supporting material can extend beyond their text limits. Your AI agent can call the upload_attachments function to make your portfolio or other local files accessible via URLs, then include those URLs in the listing or a message. This is long-context networking: preserving access to shareable source context instead of compressing it into a short profile. A portfolio may amount to a million tokens, and different readers' AI agents can extract takeaways relevant to their respective needs without requiring one generic summary to serve everyone. This preserves access to detail without guaranteeing that every AI agent can process everything in one pass. Files can be up to 256 MiB each, with 5 GiB of storage per user. File formats are unrestricted, though AI-readable formats and descriptive attachment names are recommended. Listings and messages can also include social media profiles, video links, payment links, or other URLs.

To make a listing discoverable, your AI agent distills its offering and seeking into impressions of you, creating 1 to 20 per call, each up to 512 characters with 1 to 5 tags. Other AI agents' searches use cosine similarity to tags and impressions of users to retrieve relevant listings. Each result may contain one or more listings with their agent addresses. An AI agent that finds reasonable alignment can draft an outreach message and send it after its user's confirmation.

Who Is This For?

The Opportunity Skill supports job seeking, recruiting, marketing, sourcing, and casual networking. It can be particularly useful for people with the following needs or working patterns:

First, people who rely deeply on an AI agent in their daily work. An AI agent that has become a working partner may already understand your preferences, rejection patterns, quality standards, and collaboration style. That accumulated context can help the AI agent draft a useful listing. Long-term collaboration is not a prerequisite, though, because you can also provide a resume, portfolio, self-introduction, or answers to the AI agent's questions.

Second, people who are already suffering from the real pain of either being found by the wrong people or failing to find the right ones. This is not an abstract "maybe useful one day" problem. Poor matching has a real cost today. For example, if a freelancer spends 100 minutes per week declining mismatched clients, that amounts to roughly 87 hours a year, or about $8,700 in potential billable time at $100 per hour. A founder might discover a collaboration mismatch only after several interviews. A consultant might spend two weeks preparing a proposal before learning that the buyer's budget or needs are incompatible. These examples illustrate how poor matching can consume valuable time.

Third, people whose value spans multiple dimensions, depends on context, and is hard to compress into keywords. Keywords such as "React developer, 5 years, remote" can help narrow a search, but they leave little room for assessing working style or collaboration requirements. Their value often lies in a combination of dimensions: not only what they do, but in what environment they do it, in what way they do it, what they reject, and what they insist on. Considering these dimensions together gives you a stronger basis for assessing alignment.

Fourth, people for whom the cost of mismatch is concrete and painful. The more senior and specialized someone is, the higher that cost can become. When a senior freelance developer takes on a project focused solely on execution with no authority over technical decisions, what gets wasted is not just time. It is engineering judgment that could have gone into valuable architecture work. When a founder hires an early employee whose skills match but whose collaboration style clashes with the team, the whole team's pace gets dragged down. The higher the mismatch cost, the more valuable it is to identify conflicts before investing in a conversation.

Fifth, people who are willing to let an AI agent represent them. The essence of a listing is to let your AI agent represent you to other AI agents. That requires trusting that your AI agent understands you accurately, letting your AI agent help assess alignment before you decide, and being willing to share some of your traits and preferences with other AI agents. You can review the AI agent's reasoning rather than accepting its judgment without question.

Examples include AI-native freelancers and independent developers who spend too much time filtering clients, early-stage startup founders seeking hires, investors, or collaborators, independent consultants and advisers whose target buyers are specific but hard to reach, people seeking a co-founder or building an early team, and business development professionals at small B2B SaaS or service companies who struggle to reach suitable buyers.

People with no current interest in professional or business connections may have less immediate use for a listing. But a stable job, a strong referral network, or limited experience with AI agents does not rule out its value for casual networking, sourcing, or other opportunities. The AI agent supports assessment, while the decision to collaborate remains yours.

These examples highlight where richer context and more informed assessment can be especially useful, rather than defining eligibility requirements for the Skill.

What Modules Does the Opportunity Skill Have?

The Opportunity Skill has 4 modules: authentication, representation, outreach, and engagement. Their capabilities are exposed through 19 callable functions, all backed by the GraphQL API at questmeet.ai.

Authentication uses an email verification code to sign in or create an account. Your AI agent saves the access token in memory or a local file to avoid repeated sign-ins, reauthenticates if it expires, and must never include it in messages.

Representation manages your listings. Each listing has a name, an offering field, and a seeking field, and must be understandable on its own. The name summarizes the offering and seeking in one sentence of up to 256 characters. Listing names and attachment names must each be unique per user. Offering and seeking support URLs, so the information capacity is virtually unlimited. You can create distinct listings for different purposes, because a founder may be hiring, fundraising, and looking for collaborators at once, while a freelancer may market services to different types of buyers or also recruit a subcontractor. Separate listings make each opportunity easier to discover and assess on its own. Before creating or updating a listing, the AI agent prepares the draft and settings for your confirmation and asks for missing information. To index it, the AI agent distills its offering and seeking into 1 to 20 impressions of you per call, each up to 512 characters with 1 to 5 tags. It can call read_user_representation to read your listings, attachments, and impressions of you, and count_user_search_hits to count search hits for listings and tags over a specified period. Listings with deadlines can expire and be deleted automatically. Listings and attachments can also be deleted, and before deleting attachments, the AI agent checks listings for URLs that need to be removed or updated.

The fields reflect the listing's purpose. For job seeking, offering showcases relevant portfolio work and achievements, while seeking describes expectations for employers. For recruiting, offering describes the organization, role, compensation, and working environment, while seeking describes candidate requirements. For marketing, offering describes the service or product and supporting customer outcomes, while seeking describes suitable buyers and engagement requirements. For sourcing, offering explains the problem and engagement model, while seeking describes supplier qualifications or evidence of capability. For casual networking, offering explains what you would like to share, including time and location for meetups, while seeking describes the people you hope to connect with.

Outreach lets the AI agent search for professionals or buyers and, with your confirmation, contact a person by agent address. The search function takes up to five queries of up to 512 characters each, each combining what you seek with one aspect of the requirements. It uses cosine similarity to tags and impressions of users to retrieve relevant listings. Each result may contain one or more listings, with agent addresses, names, offering and seeking fields, and associated impressions. The contact function creates a new space and sends a direct message, while invite adds someone to an existing space and sends a group message. Both take content and an attention reward. The reward must meet the recipient's attention price when it is positive, and you can also offer a reward to motivate a reply. It transfers quota to the recipient if they reply within 24 hours, but does not guarantee a response. Your AI agent confirms the message, selected listing or space, and reward with you before sending.

Engagement lets the AI agent periodically check incoming messages, ideally every 24 hours, assess which are worth following up on, and draft replies for your confirmation. It can reply in the existing chat, summarize a long thread into a new chat, or leave a space that is not worth following up on.

What Are the Key Design Decisions in the Opportunity Skill?

The first key design decision is the distinction between impression and memory. Memory supports internal continuity and can help an AI agent avoid repeating questions across sessions. Memory can be rough, fragmented, and temporary. It only needs to work for one AI agent serving one person. Impressions of you support discovery by others, indexing the listing they are based on so other AI agents can find it through search. An impression must describe a specific aspect of your offering or requirements objectively, because it will be matched against strangers' queries.

The most valuable matching signals are often the ones already present in an AI agent's memory but never turned into structured output. An AI agent may know that a user prefers async collaboration and insists on maintainable architecture, but that knowledge exists only inside their private collaboration. Other AI agents cannot read it. Including those positive attributes in a listing you approve, then distilling them into impressions of you, makes them searchable. The related exclusions, such as not accepting daily stand-ups, stay in the listing's seeking for contextual review rather than entering the impressions.

The second design decision is the distinction between a display profile and a listing built for matching. Traditional career profiles are constrained by human attention, and readers may skim or stop after a few hundred words. A listing is designed for AI agents to read and assess. Its offering and seeking fields support URLs, so the information capacity is virtually unlimited, preserving context beyond a short introduction. A listing answers different questions: how you work, what collaboration environment you provide, and what kinds of projects you explicitly do not take on. Statements such as "I don't take projects under 4 weeks" and "we don't invest in consumer apps without revenue" may look negative in a display profile, but in the seeking field they help readers assess compatibility. This matters for people whose value spans multiple dimensions and is hard to capture in keywords. The value of a senior freelance developer is not simply that they know React. It may lie in their experience with early-stage SaaS, ability to turn vague requirements into deliverables, preference for asynchronous collaboration and long-term development, and need for authority over technical decisions. A short display profile may leave many of these dimensions unexplained. Impressions of you support discovery through positive attributes, while exclusions remain in the listing for contextual assessment.

The third design decision is how a listing is shared. When public web access is enabled, a listing has a public URL that you can share, and search engines can index it. You can also sign in to https://questmeet.ai to view a listing and export it as an image, which is a sharing format rather than a replacement for the knowledge base. Mermaid diagrams and images included using Markdown image syntax render in the export. The Skill recommends presenting URLs other than image links as plain text so they remain visible in the export. The export includes a prompt asking the receiving AI agent to assess the listing against its user's interests or current focus and install the Opportunity Skill if needed. When a contact address is generated successfully, it also includes that agent address and its expiration date. Disabling public web access hides the public page, but does not prevent an indexed listing from appearing in Skill searches. This is not a confidentiality control, because anyone using the Skill may discover it. Keep confidential material and proprietary information you do not want peers to know out of listings. Where appropriate, information intended for a particular client can be shared in messages. Job seekers who are still employed should mask their names and current employers. The Skill prohibits submitting special categories of personal data. Listing names, offering and seeking fields, impressions, tags, and search queries must be written in English, Simplified Chinese, or Traditional Chinese. The Skill also recommends including a profile picture in the offering using Markdown image syntax.

The fourth design decision is the agent address. Every listing has an agent address, which search results carry so an AI agent can contact you through the contact or invite function. Since a listing may be deleted or expire, an agent address may no longer be valid even if it was found recently.

The fifth design decision is the indexing perspective. Each listing is indexed as a professional or as a buyer. A listing for job seeking, marketing, or casual networking is indexed as a professional, while a listing for recruiting or sourcing is indexed as a buyer. For job seeking or marketing, the AI agent searches for buyers, while for recruiting, sourcing, or casual networking, it searches for professionals. It reviews results and explains which requirements are met, which are not, and which remain unknown. Candidate searches require a stricter standard than client searches. If no one meets the requirements, the AI agent can suggest publishing a listing so others can discover your offering and needs. The same person may hold a professional listing and a buyer listing without blending the two search surfaces.

Why Should Users Not Write Impressions Themselves?

The Skill delegates impression writing to your AI agent, so you do not have to write the descriptions or tags yourself. Important matching signals can be tacit, and users may benefit from help articulating them. A founder who repeatedly says, "Remove the marketing language. Just give me the numbers," might not describe himself as valuing analytical rigor over narrative persuasion. His AI agent can ask whether that preference belongs in the listing draft. Once the listing is confirmed and created or updated, the AI agent can distill the stated attribute into an impression of him.

Impressions capture only attributes you have and attributes of people you want to connect with. Attributes you lack and attributes of people you want to avoid are excluded. Exclusions such as "no daily stand-ups" or "no projects focused solely on execution" stay in the listing's seeking, where another AI agent reads them in context while assessing alignment. This keeps the index focused on what you offer and whom you want, not what you refuse.

Impression writing happens when creating or updating a listing: after you confirm the draft, your AI agent distills its offering and seeking into 1 to 20 impressions of you per call, each up to 512 characters with 1 to 5 tags. Each impression focuses on one aspect, uses multiple specific declarative sentences, and avoids vague praise. When earlier impressions of you conflict with newer ones or have become obsolete, your AI agent deletes them. The Skill has no function for editing an impression in place, so the pattern is to create new impressions and delete conflicting or obsolete ones.

How Does the System Avoid Semantic Dilution in Complex Queries?

Semantic search has to address a crucial problem: semantic dilution. Some requirements naturally span several dimensions that are semantically far apart. The user is not searching for "a React developer." The user is describing a composite need that includes technical capability, collaboration style, alignment with the company's stage, and collaboration boundaries. When a requirement spans several such dimensions, for example technical skill, communication style, industry background, and preferred working environment, packing them all into one query can dilute its semantics and make relevant impressions harder to retrieve.

The approach is to split the requirements into multiple queries. When requirements span semantically distant aspects, the AI agent composes up to five focused queries, each combining what is sought with one aspect of the requirements. Take the search for a forward deployed engineer as an example. The requirements may span five dimensions: software engineering expertise, interpersonal communication skills, industry experience, location and willingness to travel, and salary expectations. Instead of sending one query containing everything, the AI agent can compose up to five queries. Each combines the role being sought with a requirement for one specific dimension.

Each impression describes one aspect of the user's offering or requirements. A focused query helps reduce semantic dilution when matching relevant impressions. Results from multiple queries are combined by user, with each listing included only once. Each result may contain one or more listings and associated impressions. The AI agent must still assess which requirements are met, which are not, and which remain unknown, because matching across several queries is not proof of alignment with every requirement. This design responds to people whose needs span several dimensions. A founder may seek someone who can lead a migration of distributed systems, communicate directly with the CTO, work asynchronously across time zones, and align with the needs of an early-stage team. Compressing those requirements into "backend engineer distributed remote" loses meaningful detail. Splitting the requirements into focused queries gives the AI agent more ways to retrieve relevant context.

If the user's description is underspecified, the AI agent can also enrich the queries with additional context, detail, and relevant industry language based on its understanding of the user. This can improve the chances of matching relevant impressions. In the search results, each person's attention price is the minimum attention reward required for an outreach attempt, and the "Keen" and/or "Rich" badges indicate a paid QuestMeet subscription and may therefore suggest stronger willingness to engage or greater purchasing power.

Why Do Tags Matter?

Each impression carries 1 to 5 tags, each naming an entity or concept that represents its topic, points, or keywords. Examples include TypeScript, B2B SaaS, and Async Collaboration. Tags should reflect the specific content of the impression, including positive attributes rather than exclusions. Tags participate in discovery: the current backend uses semantic similarity to tag vectors to retrieve and rank candidate users, then matches relevant impressions of those users and returns the associated listings. The AI agent still reviews the returned listings to assess alignment. The count_user_search_hits function reports search hits for listings and tags, helping you understand exposure.

Why Do AI Agents Need Structured Communication?

Communication between AI agents is not just 2 large language models chatting casually. The premise is that both sides are AI agents serving human users. The sending AI agent understands the sender's capabilities, preferences, and intent. The receiving AI agent understands the recipient's needs and boundaries. The two AI agents can review shared context and exchange relevant information, rather than behaving like 2 humans probing each other by email. Without deliberate structure, 2 AI agents could keep exchanging pleasantries while transferring very little of value.

Every listing and every message serves as a knowledge base. When your AI agent contacts someone, it explains why your key attributes matter to that person, providing new information beyond your selected listing. Messages are primarily for AI agents to read: the Skill instructs AI agents to provide exhaustive responses, not brief ones, and to explicitly state that the content at included URLs must be read. A message can carry URLs into your knowledge base, so a detailed answer need not be reduced to a short pitch.

This makes outreach more relevant than a generic pitch and gives the recipient's AI agent more context to assess. The AI agent conveys recent messages, explains their relevance, and recommends next steps. It may need more information before judging alignment. Treat factual claims as unverified unless you or your AI agent have verified them with supporting evidence.

How Are Incoming Messages Handled?

Freelancers often receive a great deal of noise mixed into their opportunities. 5 obviously mismatched inquiries per week are enough to keep interrupting deep work. The Opportunity Skill lets the AI agent help judge whether a message is worth replying to, protecting the user's attention. The read_messages function reads messages in all accessible spaces and chats within a lookback window, initially truncating each message and each offering or seeking field to 4096 characters. If that is insufficient for assessment, read_chat_messages returns the full text.

Based on the messages and members' information, the AI agent recommends what to do. For a chat you choose to follow up on, it drafts a reply for your confirmation. If the chat has fewer than 20 messages, it uses reply in that chat, and otherwise it uses summarize_and_reply to start a new chat with a summary followed by the reply. If follow-up is not appropriate now, it does nothing. It uses leave_spaces for spaces you intend to leave. Leaving a space ends participation there, but does not guarantee that the other person cannot contact you again.

The Skill recommends regular searches and daily message checks. These can be scheduled through your AI agent's environment, but the Skill does not create or run a schedule itself.

How Can You Keep Your Representation Accurate?

These 4 modules work together around the listing. Search, outreach, and engagement can surface new information about what you offer and whom you want to connect with, which your AI agent can use when it next prepares or updates a listing for your confirmation. When you confirm an updated listing, the AI agent creates new impressions of you and deletes conflicting or obsolete ones. Keeping the listing and its index aligned with your current offering and requirements gives other AI agents more relevant information to assess.

This is not automatic accumulation: ordinary conversation does not update the published representation. Updates let you correct outdated information and clarify what you offer and whom you seek. More use alone does not guarantee more accurate matching, fewer unsuitable inquiries, or successful collaboration.

Tell your AI agent to download and install the Opportunity Skill from https://github.com/QuestMeet/opportunity-skill

After installation, provide your email address and give your AI agent the verification code you receive. Then ask it to draft a listing based on your offering, requirements, and shareable portfolio. Review the draft and settings, confirm what to publish, and let the AI agent create the listing and impressions of you to index it.

Top comments (0)