Opportunity Skill lets your AI agent connect you with career and business opportunities

Opportunity Skill lets your AI agent connect you with career and business opportunities

1 2 29
calendar_today agoschedule18 min read

Opportunity Skill is a Skill that lets your AI agent connect you with career and business opportunities. It works inside Codex, Claude Code, and all other AI agent products that follow the Skill specification. No client download. No website login. Everything happens inside the agent you are already using.

The core unit in Opportunity Skill is the human card. A human card is designed as a transmission unit for AI agent understanding and semantic matching. It consists of 1 profile and up to 20 selected impressions, and it can be exported as an image carrying a machine-readable human card ID. At the web client, https://questmeet.ai, you can manage existing profiles and impressions more precisely, combine them into different human cards for different purposes, and export them as images. When someone forwards your human card image to their AI agent, that AI agent reads the human card ID in the image, retrieves the structured data behind it, and evaluates whether the 2 sides are a good fit to collaborate. If the fit is strong enough, that AI agent can use Opportunity Skill to send you an outreach message or proposal. The human card ID itself is a UUID-format string. It does not need to appear only inside an image. It can also be attached to any text. For example, in an advertisement, you can tell the audience to have their AI agent use Opportunity Skill (https://github.com/QuestMeet/opportunityskill) to contact you through this human card ID: {UUID string}.

Who Is This For?

Opportunity Skill, and especially its human card capability, is not for everyone. The people who truly need human cards tend to meet all of the following conditions:

First, people who rely deeply on an AI agent in their daily work. Not someone who occasionally says, "Help me write an email," but someone whose AI agent has already become a working partner. It knows your preferences, your rejection patterns, your quality standards, and your collaboration style. Only with that depth of collaboration does the AI agent really "know" you, and only then does a human card have meaningful material to capture. If your relationship with an AI agent is still at the question-and-answer tool stage, this system has no raw material to work with.

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. It is a present-day cost paid in matching precision. Freelancers spend 100 minutes per week declining mismatched clients, losing nearly $10,000 a year in high-output time. Founders interview 10 people and only discover in the 3rd round that the collaboration model is fundamentally incompatible. Consultants spend 2 weeks writing a proposal, only to find that the other side's budget, stage, and needs are completely wrong. These are ongoing, measurable losses.

Third, people whose value proposition is multi-dimensional, contextual, and hard to compress into keywords. If someone can be fully described as "React developer, 5 years, remote," then traditional keyword search is probably enough. The people who truly need semantic matching are valuable because of 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. Only when these dimensions are combined do you get the right person.

Fourth, people for whom the cost of mismatch is concrete and painful. The more senior and specialised someone is, the higher that cost becomes. When a senior freelance developer takes on a pure-execution project with no technical decision-making authority, what gets wasted is not just time. It is engineering judgment that could have gone into high-value 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 filter out the wrong people at the search stage.

Fifth, people who are willing to let an AI agent represent them. The essence of a human card is to let your AI agent socialise on your behalf. That requires trusting that your AI agent understands you accurately, accepting "the AI agent decides whether this is a match" instead of "I will review everyone one by one," and being willing to expose some of your traits and preferences to other AI agents. Trust in AI is the psychological prerequisite of using this system.

The people who need human cards most, in order of urgency, are AI-native freelancers and independent developers who already rely on AI agents, feel strong pain around client filtering, and face high mismatch costs across multiple dimensions of value; founders of early-stage AI startups who already use AI agents and have concrete needs around hiring, fundraising, and finding collaborators but face too much noise in traditional channels; independent consultants and advisers whose target buyer profile is specific but hard to reach precisely, and for whom mismatched proposals are extremely expensive in time; people looking for a co-founder or building an early team, where the number of matching dimensions is high and the cost of mismatch is enormous; and business development people at small B2B SaaS or service companies whose target buyer profile is clear but whose traditional outreach conversion rate is low.

The people who do not need human cards are those in stable large-company roles with no intention of moving, and therefore no motivation to be found. People whose opportunities come entirely through internal referrals and who never lack opportunities do not have a matching problem. People whose work is fully standardised and can be described by a few keywords are already well served by traditional search. People whose mismatch cost is very low, and who can take almost any kind of work, will not feel the value of precision matching. People who treat AI only as an execution tool and do not trust it to make judgments are, at least for now, not the target users of this system.

This distinction shapes every design decision in the system. Every function and every rule below is designed for those 5 groups. If you are not one of them, the system may have little practical value for you. That is not a flaw. It is the design intent.

What Modules Does Opportunity Skill Have?

Opportunity Skill has 6 modules: authentication, user representation, human card management, human discovery, human outreach, and lead engagement. Their capabilities are exposed through a set of callable functions, all backed by the GraphQL API at questmeet.ai.

Authentication handles email-based sign-in. The access token persists across sessions, so once it has been saved properly, repeated sign-ins are usually unnecessary. User representation retrieves the user's complete outward-facing representation, including profiles and all impressions. Human card management lets the AI agent distil the user's attributes and preferences from daily collaboration into structured impressions, each up to 512 characters long and accompanied by 1 to 5 tags. A profile can hold up to 100,000 characters of Markdown, including lists, blockquotes, tables, and Mermaid diagrams. The system encourages creating multiple profiles for different purposes, and each profile must be understandable on its own. For people pursuing multiple goals at once, this matters. A founder may be hiring, fundraising, and looking for technical collaborators at the same time. A freelancer may be selling services while also looking for a specific type of buyer. Each purpose faces a different matching audience and needs to send a different set of signals. Mixing all of that into 1 profile only dilutes matching precision in every direction. Human discovery lets the AI agent compose semantic queries for search. Each search can be decomposed into up to 5 separate queries, with each query focusing on only 1 dimension of the requirement. Results are filtered and ranked based on cosine similarities between the query embeddings and the impression embeddings of all other users. Human outreach lets the AI agent draft a tailored collaboration proposal and choose whether to create a new 1-to-1 space or add the recipient to an existing space. Proposal and benefits must be passed as 2 separate parameters. This step is explicitly prohibited from scheduled automation. Every outreach action requires human confirmation. That restriction is designed for people who treat every outward-facing message as a professional judgment. Every message sent by a high-value professional represents a judgment call, and automated bulk outreach would destroy the product's value proposition. Search and message processing can be automated. Outward-facing contact cannot. Lead engagement lets the AI agent periodically check incoming messages, ideally every 24 hours, identify high-value leads, draft replies, and quit irrelevant chats to keep the signal clean.

What Are the Key Design Decisions in Opportunity Skill?

The first key design decision is the distinction between impression and memory. Memory serves internal continuity. It prevents the same AI agent from asking the same questions again across sessions. Memory can be rough, fragmented, and temporary. It only needs to work for 1 AI agent serving 1 person. Impression serves external discoverability. It is public, structured, and already embedded as a semantic vector for other users' AI agents to search against. An impression must be stable enough to represent its subject outwardly, because it will be queried by strangers' AI agents. 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 rejects projects with no technical decision-making authority, but that knowledge exists only inside their private collaboration. Other AI agents cannot read it. An impression turns that private knowledge into a public semantic unit that can be searched.

The second design decision is the distinction between a display-type profile and a matching-type profile. Traditional career profiles are constrained by the ceiling of human attention. After a few hundred words, readers become tired. Those profiles answer questions like "what have you done" and "what do you need." A matching-type profile is optimised for AI agent semantic comparison. Its information ceiling rises from a few hundred words to 100,000 characters, because AI does not care about volume. It cares about signal density. A matching-type profile answers different questions: how do you work, what collaboration environment do you provide, and what kinds of projects do you explicitly not take on. Statements such as "I don't take projects under 4 weeks" and "we don't invest in pre-revenue consumer apps" may look negative in a display-type profile, but inside a semantic matching engine they are precision-enhancing filters. For people whose value proposition is multi-dimensional and hard to keywordise, this is exactly the pain point. A display-type profile cannot express their real differentiators. The value of a senior freelance developer is not "knows React." It is the combination of early-stage SaaS, vague requirements but clear goals, asynchronous collaboration, long-term iteration, and rejection of pure-execution outsourcing. A display-type profile can maybe hold the first 2 dimensions. The rest are discovered only through luck and interviews. A matching-type profile is designed to make that whole combination searchable.

The third design decision is the exported human card image. A human card consists of 1 profile and up to 20 selected impressions, exported as a single image that contains a machine-readable human card ID. The behaviour design is deliberate: when you see a human card, forward it to your AI agent. Do not read it yourself. This is similar to the reflex of seeing a QR code and opening WeChat to scan it. The image itself is both the transmission medium and the call to action. There is no separate landing page. Human cards travel through social channels such as Twitter, Jike, Reddit, and Discord, and every recipient's AI agent becomes a match evaluator. The recipient's AI agent reads the image, retrieves the structured data behind it, and evaluates semantic match quality against the recipient's own profile and impressions. If there is a match, it drafts a proposal and initiates contact. If there is no match, the AI agent stays silent. No social cost. No awkward rejection. This design serves 2 core needs of people who trust AI agent judgment and whose time is extremely expensive: they trust the AI agent to decide whether someone is worth contacting, and they cannot afford to spend time reading self-introductions one by one. The AI agent reads, judges, and acts. The human intervenes only at the final decision point.

The fourth design decision is that the human card ID is embeddable. The human card ID is a UUID-format string. It does not exist only inside the image. It can also be attached to any text. In an advertisement, a post, or a direct message, you can write: tell your AI agent to install Opportunity Skill (https://github.com/QuestMeet/opportunityskill) and contact me through this human card ID: {UUID string}. In that sense, a human card ID can function much like an email address. Opportunity Skill can be thought of as a kind of email service for the AI agent era.

The fifth design decision is the isolation between buyer and professional data. The same person may search for engineers as a buyer while also being searchable by others as a professional. These 2 contexts should not share the same search surface. If someone's hiring-side impressions are mixed together with impressions saying "I am available for projects," the search results become blurry. This separation is enforced at the data-model level. A founder may be hiring engineers while also selling consulting services. If buyer-side and professional-side impressions are mixed into the same corpus, the result is severe signal pollution.

Why Should Users Not Write Impressions Themselves?

Impressions are generated automatically. Users do not write their own impressions. The AI agent distils them. The reason is simple: the most important matching signals are tacit. Users often cannot articulate them themselves. A founder who repeatedly says, "Remove the marketing language. Just give me the numbers," would never describe himself as "values analytical rigour over narrative persuasion." But his AI agent can observe that pattern and summarise it into impressions.

The AI agent extracts impressions from 3 categories of signal. Negative requirements: every time the user says "remove X" or "don't do Y," the AI agent identifies the common traits of the excluded elements. What you reject defines you as precisely as what you accept. Unlike self-reported skills, rejection patterns are hard to fake. Quality persistence: patterns that recur across many interactions, such as repeatedly insisting on strict type definitions, preferring British English, rejecting fluff, or demanding primary sources rather than summaries. A single "please use strict types" is noise. The same insistence repeated across 10 different projects is identity. Collaboration boundaries: how the user works, including asynchronous-first communication, no daily stand-ups, direct access to decision-makers, and a preference for written briefs over verbal discussion. These become structured signals instead of staying buried in email threads and Slack messages.

The user only needs to keep working with their AI agent as usual: making requests, rejecting options, and expressing preferences. The AI agent observes, reasons, distils, and writes the impressions. For people whose time is extremely expensive, this matters a great deal. Asking them to stop and "summarise themselves" is already a tax on their scarcest resource. And their most valuable matching signals, namely rejection patterns, quality persistence, and collaboration boundaries, are exactly the hardest things to self-report. Ask a freelance developer what kinds of projects they do not take, and they may struggle to answer clearly. But the rejection patterns their AI agent has observed across 10 interactions are more precise than any self-description.

Each impression should highlight 1 distinctive point about the user, ideally something that makes another AI agent think, "This is genuinely unusual and interesting." It should avoid generic or stereotypical phrasing. Storytelling and concrete examples are recommended to make it more credible. On the server side, each new impression goes through schema validation, normalisation, truncation to 512 characters, tag vocabulary management, and embedding generation. There is no "edit impression" operation in the system. Impressions are created and pruned. They are never edited in place. When the cosine distance between a new impression and an old one is below 0.1, the old one is automatically removed. The design principle is to use compact, immutable semantic units instead of repeatedly edited text blocks, keeping the embedding space clean and the search quality high.

How Does the System Avoid Semantic Dilution in Complex Queries?

Semantic search has to solve 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, stage fit, and boundary conditions. When a requirement spans several such dimensions, for example technical skill, communication style, industry background, and working-environment preference, packing them all into 1 query produces a diluted vector. It becomes the mathematical average of several concepts and ends up being close to none of them individually. This is the silent killer of embedding-based search.

The solution is multi-query decomposition. The AI agent splits a complex requirement into up to 5 independent queries, each a clean, focused semantic probe targeting only 1 dimension. Take the example of searching for a Forward Deployed Engineer. The requirement spans 5 dimensions: software engineering capability, interpersonal communication skill, specific industry experience, willingness to accept a particular working environment, and other personal attributes. Instead of sending 1 query containing everything, the AI agent composes 5 queries. Each query keeps the core responsibilities of the role and adds the requirement for 1 specific dimension.

This works because each impression captures only 1 attribute or preference. A query that targets a single dimension can match the right impression, instead of forcing the embedding model to average unrelated concepts into a meaningless centroid. When the same person is matched by several queries, the results are merged into 1 entry, so the searcher sees a complete multi-dimensional portrait. The same person never appears twice. This design directly responds to the reality of people who already feel the pain of mismatch. Their needs are never single-dimensional. A founder is thinking about someone who can lead a distributed-systems migration, communicate directly with the CTO, work asynchronously across time zones, and fit an early-stage team. Those are 4 dimensions that are semantically far apart. Traditional search forces the user to compress them into something like "backend engineer distributed remote," and the first layer of signal loss happens immediately. Multi-query decomposition makes the system adapt to the way users actually think, instead of forcing users to adapt to the limits of the system.

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 increases the probability of matching relevant impressions. In the search results, each person's contact_cost is the quota required for each outreach attempt, and the Devote and Rich badges indicate that the person is on a paid subscription plan and may therefore have stronger willingness to engage or greater purchasing power.

Why Are Tags Retrieval Infrastructure Rather Than Decoration?

Each impression carries 1 to 5 tags. Tags are not optional metadata. They are a core component of the search architecture. The search pipeline uses a 2-stage design. In stage 1, query vectors are matched against tag vectors to find candidates. In stage 2, impression content is used for re-ranking. Tags form the lightweight semantic recall layer. They determine whether a user is hit in the initial filter at all.

This means that when an AI agent writes an impression, it is not only describing what the user is like. It is also deciding how the user will be discovered in the future. Good tags should be specific: TypeScript, Remote-First, B2B SaaS, Async Collaboration. Not generic labels such as professional, hard-working, or passionate. Generic tags have almost no discriminative power in semantic space. For highly specialised people with unusual combinations of capability, the real discriminative power comes from concrete preferences that no generic tag can capture. TypeScript Strict Mode, Async Documentation-First, and No Daily Stand-Ups are not the kinds of tags that exist in any predefined vocabulary, but they are exactly the signals that determine match quality. A fixed vocabulary is obsolete from day 1.

The system does not maintain a fixed tag vocabulary. When the AI agent submits a new tag, the server reads existing tags by name. For any tag that does not yet exist, it generates an embedding vector and inserts it. The tag vocabulary grows dynamically. This is essential because many high-value preference descriptions cannot be captured by a predefined tag list.

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 2 AI agents carry full context and exchange information in a structured way, 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. This system enforces structural rules at several layers.

Proposal and benefits are separated. The outreach functions require 2 separate parameters. Proposal states the collaboration idea. Benefits states what the recipient gets out of it. This forces the contacting AI agent to explain both why the collaboration makes sense in principle and what the recipient concretely gains. The profile description works as a stateless interface. It is designed under the assumption that other AI agents are stateless when they arrive. They have no prior memory of the interaction, so the description must be self-contained. The outreach guideline also requires outlining the key attributes of both the sender and the recipient, explaining why, how, and on what to collaborate. This makes every outreach message bilateral rather than one-sided pitching.

The efficiency of AI-agent communication comes from structural rules that make every message decision-ready. The recipient's AI agent can decide in 1 pass whether to escalate it to the human, ask follow-up questions, or quietly archive it. For people who receive many messages every day and cannot process them manually one by one, structured communication allows the AI agent to make the first judgment about whether something is worth surfacing. Only leads with a real basis for collaboration reach the human.

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. Opportunity Skill lets the AI agent help judge whether a message is worth replying to, protecting the user's attention. If a message is worth following up on, the AI agent drafts a reply and sends it through the Opportunity Skill API either after the user's confirmation or automatically when executing a recurring scheduled task under rules the user has already confirmed. If a message is not appropriate to pursue now but may become relevant later, it is left untouched. If it is clearly not worth following up on, the system quits the space. This triage logic ensures that the user's attention is allocated only to genuinely valuable leads. After quitting a space, the human card ID is refreshed. Even if the other side saved the old human card ID, they can no longer use it to restart contact with you. This prevents persistent harassment. For people whose time is extremely expensive and whose mismatch cost is high, the ability to cut off unwanted contact cleanly matters just as much as the ability to create wanted contact efficiently.

Why Does Opportunity Skill Get More Accurate the More You Use It?

These 6 modules do not operate in isolation. Human discovery, human outreach, and lead engagement continually uncover new attributes and preferences of the user while they run. The tendencies the user reveals when confirming or revising messages, and the trade-off criteria they demonstrate when deciding whether to reply to a lead, are fed back into the impression management process to update the user's public representation. A more precise profile then improves the quality of the next round of search and matching. This creates a self-reinforcing loop. Every preference you reveal makes you easier to discover precisely.

For people who are high-value, highly specialised, and exposed to high mismatch costs, this loop has a specific meaning: the longer they use the system, the deeper the AI agent's understanding becomes, the higher their matching precision becomes, and the lower the chance that they will be disturbed by the wrong people. This is time compounding. And for people whose mismatch cost is extremely high, that compounding has 2 layers of value. First, matching precision improves over time, so the probability of being disturbed by the wrong people keeps falling. Second, impressions accumulated early create a first-mover advantage. When the network grows from 100 people to 1,000, a profile with 3 months of accumulated signal will be matched more precisely than a newly registered one. The higher the mismatch cost, the more valuable it is to start 1 day earlier. Enter the state where the wrong people stop appearing 1 day earlier, and you stop paying for matching noise 1 day earlier.


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

🔥 Join developers growing publicly
Share your knowledge, build in public, and grow your developer presence with a global community.

More Posts

Your Tech Stack Isn’t Your Ceiling. Your Story Is

Karol Modelskiverified - Apr 9

Why “Building in Public” Is Hollowing Out Your Developer Career

Karol Modelskiverified - Jun 18

Just Work with Your AI Agent, and Potential Clients or Employers Can Find You

QuestMeet - Jul 2

The "No" You Say to Your AI Agent Every Day Is Exactly Why Clients Choose You

QuestMeet - Jul 22

The Way You Direct Your Agent Defines Your Professional Interface in the Agent Network

QuestMeet - Jun 29
chevron_left
934 Points32 Badges
San Francisco, CA / Beijing, Chinaquestmeet.ai
10Posts
28Comments
25Connections
Developer of Opportunity Skill. Full-stack builder. Deep into backend architecture, semantic search,... Show more

Related Jobs

View all jobs →

Commenters (This Week)

1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!