Random Coffee Best Fit Outreach
Goal
Run a consent-first random coffee workflow from local participant data:
- normalize opt-in people into a small participant CSV
- rank best-fit 1:1 intro candidates by mutual utility
- draft first-touch and double opt-in intro text
- render an offline review packet for the operator
- keep external communication outside this public skill
Use This Skill When
- the user asks for random coffee, best-fit introductions, warm networking, or founder/operator matching
- the source data is already opt-in, consented, or intentionally provided by the operator
- an older chat-first matching project exists and should be adapted into a public-safe intro workflow
- Codex should produce a repeatable intro packet, not ad hoc social copy
Inputs
Use a CSV with these canonical columns:
person_id,display_name,role,organization,location,timezone,languages,domains,skills,offers,needs,preferred_channel,availability,consent_notes,do_not_match,notes
Read references/intake-schema.md when the user gives messy notes, a contact map, or community notes.
Workflow
- Restate the cohort goal, target audience, consent boundary, and verification command.
- Normalize participant data into the CSV schema. Use placeholder or consented data only.
- Rank matches:
- In a cloned repo:
python3 -m random_coffee_matcher rank <people.csv> --format markdown --out <report.md>.
- From this skill wrapper in the repo:
python3 {baseDir}/scripts/random_coffee_matcher.py rank <people.csv> --format markdown --out <report.md>.
- Review the top matches. Prefer pairs with clear mutual utility, language overlap, manageable timezone gaps, and complete consent notes.
- Generate a reviewed packet for any selected pair:
python3 -m random_coffee_matcher packet <people.csv> <person-a-id> <person-b-id> --out <packet.md>.
- Hand the packet to the operator. Any external communication happens outside this public skill.
- Log the operator-recorded outcome: skipped, blocked, opted in, declined, scheduled, or closed.
External Communication Boundary
Read references/outreach-surface-runbook.md before using the packet outside the repo.
Rules:
- Use only operator-provided or consented participant data.
- Keep the generated packet local until the operator approves it.
- Do not include private notes, long copied profile text, or private conversations in public artifacts.
- Do not reveal names, handles, links, or detailed context until both sides opt in.
- If any platform, privacy, or account-control issue appears, stop this workflow and ask for human handling outside the skill.
Outreach Rules
- First touch asks whether the person wants to be considered. It should not reveal another person's identity.
- Double opt-in asks each side before sharing names, handles, links, or detailed context.
- Keep drafts short, concrete, and easy to decline.
- Avoid fake urgency, pressure, claims of personal familiarity, or unverifiable praise.
- If either person declines or does not reply after the agreed follow-up limit, close the case.
Verification
For the open-source repo, run:
python3 -m pytest -q
python3 -m random_coffee_matcher rank examples/participants.csv --format text
python3 scripts/check_clawhub_skill_surface.py
Before publishing, run the local public-surface audit available in the surrounding Codex workspace when present.
1---2name: random-coffee-best-fit-outreach3description: Offline random coffee skill for ranking opt-in people and preparing consent-first intro packets. It creates local reports only; any external communication stays outside the public skill.4license: MIT5---67# Random Coffee Best Fit Outreach89## Goal1011Run a consent-first random coffee workflow from local participant data:1213- normalize opt-in people into a small participant CSV14- rank best-fit 1:1 intro candidates by mutual utility15- draft first-touch and double opt-in intro text16- render an offline review packet for the operator17- keep external communication outside this public skill1819## Use This Skill When2021- the user asks for random coffee, best-fit introductions, warm networking, or founder/operator matching22- the source data is already opt-in, consented, or intentionally provided by the operator23- an older chat-first matching project exists and should be adapted into a public-safe intro workflow24- Codex should produce a repeatable intro packet, not ad hoc social copy2526## Inputs2728Use a CSV with these canonical columns:2930```csv31person_id,display_name,role,organization,location,timezone,languages,domains,skills,offers,needs,preferred_channel,availability,consent_notes,do_not_match,notes32```3334Read `references/intake-schema.md` when the user gives messy notes, a contact map, or community notes.3536## Workflow37381. Restate the cohort goal, target audience, consent boundary, and verification command.392. Normalize participant data into the CSV schema. Use placeholder or consented data only.403. Rank matches:41 - In a cloned repo: `python3 -m random_coffee_matcher rank <people.csv> --format markdown --out <report.md>`.42 - From this skill wrapper in the repo: `python3 {baseDir}/scripts/random_coffee_matcher.py rank <people.csv> --format markdown --out <report.md>`.434. Review the top matches. Prefer pairs with clear mutual utility, language overlap, manageable timezone gaps, and complete consent notes.445. Generate a reviewed packet for any selected pair:45 - `python3 -m random_coffee_matcher packet <people.csv> <person-a-id> <person-b-id> --out <packet.md>`.466. Hand the packet to the operator. Any external communication happens outside this public skill.477. Log the operator-recorded outcome: skipped, blocked, opted in, declined, scheduled, or closed.4849## External Communication Boundary5051Read `references/outreach-surface-runbook.md` before using the packet outside the repo.5253Rules:5455- Use only operator-provided or consented participant data.56- Keep the generated packet local until the operator approves it.57- Do not include private notes, long copied profile text, or private conversations in public artifacts.58- Do not reveal names, handles, links, or detailed context until both sides opt in.59- If any platform, privacy, or account-control issue appears, stop this workflow and ask for human handling outside the skill.6061## Outreach Rules6263- First touch asks whether the person wants to be considered. It should not reveal another person's identity.64- Double opt-in asks each side before sharing names, handles, links, or detailed context.65- Keep drafts short, concrete, and easy to decline.66- Avoid fake urgency, pressure, claims of personal familiarity, or unverifiable praise.67- If either person declines or does not reply after the agreed follow-up limit, close the case.6869## Verification7071For the open-source repo, run:7273```bash74python3 -m pytest -q75python3 -m random_coffee_matcher rank examples/participants.csv --format text76python3 scripts/check_clawhub_skill_surface.py77```7879Before publishing, run the local public-surface audit available in the surrounding Codex workspace when present.