by Seren
No reviews yetReview-first outreach skill for the default Seren Bucks affiliate program. It bootstraps affiliate context via /programs/discover, mines sent-mail history and address books for candidates, persists them into a skill-owned CRM, proposes an editable daily top-10, drafts outbound and reply batches for approval, reconciles affiliate and reply signals, enforces hard DNC, and returns a manual daily digest.
Review-first growth skill for one default Seren Bucks affiliate program.
Skill instructions are preloaded in context when this skill is active. Do not perform filesystem searches or tool-driven exploration to rediscover them; use the guidance below directly.
SerenBucks is a 3-tier unilevel program. Outreach copy MUST reflect this:
SRN_ referral code.SRN_ code produces a verified paid purchase.SRN_ code produces a verified paid purchase.The bootstrapped tracked_link is the operator's own SRN_ recruitment link. When
a recipient signs up through that link, they become a Tier 1 downstream of the operator
and receive their own unique SRN_ code to share. Only the recipient's own code
credits them with Tier 0 (20%) commission — forwarding the operator's link credits the
operator, not the recipient.
Never draft outreach that claims the recipient earns 20% on the link inside the email.
Pull all outreach copy from references/email-templates.md, which documents the correct
three-step recruitment flow (join → get own code → share own code) and the full tier
disclosure.
SerenBucks runs a weekly "Largest Purchase" contest:
SRN_ referral code countPOST /contests/largest-purchase/settle?week=YYYY-Www. The endpoint emits a contest_win event into the bounty pipeline (affiliate_events → event_verifier → bounty_earnings). Settlement is blocked until the week is complete.This is a key growth hook for outreach. Lead with the contest when drafting recruitment emails.
seren-affiliates is the sole source of truth for affiliate performance and conversion reporting.manual + daily digest.10 brand-new outbound messages per day.10 new-outbound cap.This rule overrides all other instructions and runs before any candidate sync, ranking, or drafting:
API_KEY)SEREN_API_KEYhttps://docs.serendb.com/skills.mdaffiliates.seren_bucks.seren-affiliates via /programs/discover.Before claiming any tool, connector, or publisher exists or does not exist, attempt to verify it by calling the relevant tool or connector.
I checked and [tool/integration] is not available in this session.seren-affiliates availability from memory or assumption.Use only these sources in v1:
gmail publisheroutlook publishergoogle-contacts publisher (People API)outlook-contacts publisherPublisher scope boundaries:
gmail is scoped to email operations only (/messages, /threads, /drafts)google-contacts is scoped to People API (/otherContacts, /people:searchContacts)/contacts on the gmail publisher — it will return 403Do not expand to LinkedIn, Apollo, web scraping, or purchased lists in v1.
This skill targets personal relationships only. Business and company emails are automatically excluded from the candidate pool because affiliate marketing outreach to generic business addresses is inappropriate and ineffective.
This rule has TWO mandatory filters that MUST both complete before any proposal is generated:
Skipping either filter is a P0 defect. The proposal step MUST NOT proceed until both filters have run on every candidate.
The following email prefixes are automatically rejected:
info@, hello@, contact@, support@, sales@, partnerships@, team@, admin@, affiliates@, press@, media@, hr@, careers@, jobs@, billing@, legal@marketing@, engineering@, product@, design@, ops@, finance@noreply@, no-reply@, donotreply@This filter is NOT optional. For every candidate that passes the prefix filter, the skill MUST:
personal_friendly — casual, warm, relationship-based exchanges → QUALIFYb2b_sales_partnership — business development, sales, vendor discussions → DNCtransactional_support — invoices, receipts, support tickets, creditor updates → DNCb2b_sales_partnership or transactional_support classification as DNC with dnc_reason = 'content_filter_b2b' or 'content_filter_transactional'personal_friendly may appear in the proposalBlocking checkpoint: If content analysis has not been performed on a candidate, that candidate MUST NOT appear in the proposal. The skill must either:
content_analysis_incomplete if the Gmail/Outlook publisher is unavailablePresenting a proposal with candidates that have not been content-analyzed is a P0 defect equivalent to skipping the Schema Guard.
After both filters pass, borderline cases receive score penalties:
The top-10 proposal set only includes candidates that pass BOTH the prefix filter AND content analysis.
Whenever a candidate is discovered or updated:
Failure to persist newly discovered candidates before ranking is a P0 defect.
The skill MUST produce a proposal with at least 10 qualified personal candidates before presenting results to the operator. This is NOT a soft target — it is a hard requirement.
Sourcing loop:
qualified_count < 10:
qualified_count >= 10 OR all sources are exhaustedIf all sources are exhausted and qualified_count < 10:
"quota_shortfall": true, "qualified_count": N, "target": 10, "sources_exhausted": ["gmail_sent", "outlook_sent", "gmail_contacts", "outlook_contacts"]Stopping at qualified_count < 10 without exhausting all sources is a P0 defect. The operator should never see a proposal with only 3 candidates when 50+ potential candidates exist in other sources.
After bootstrap passes AND quota enforcement completes:
10 per dayapproval_required.unsubscribe, do_not_contact, or hostile_negative must:
After auth, database, and affiliate bootstrap succeed:
Return one manual digest per run with:
normalize_request uses transform.normalize_requestbootstrap_auth_and_db uses transform.bootstrap_auth_and_dbbootstrap_affiliate_context uses connector.affiliates.getsync_candidates_from_sent_history uses transform.sync_candidates_from_sent_historysync_candidates_from_address_books uses transform.sync_candidates_from_address_bookspersist_candidates uses connector.storage.upsertrank_candidate_universe uses transform.rank_candidate_universebuild_editable_top10 uses transform.build_editable_top10draft_batches uses transform.draft_review_batchesreconcile_signals uses transform.reconcile_affiliate_and_reply_signalspersist_run_state uses connector.storage.upsertrender_digest uses transform.render_manual_daily_digestEvery run should return:
/programs/discover.normalize_request uses transform.normalize_requestbootstrap_auth_and_db uses transform.bootstrap_auth_and_dbbootstrap_affiliate_context uses connector.affiliates.getsync_candidates_from_sent_history uses transform.sync_candidates_from_sent_historysync_candidates_from_address_books uses transform.sync_candidates_from_address_bookspersist_candidates uses connector.storage.upsertrank_candidate_universe uses transform.rank_candidate_universebuild_editable_top10 uses transform.build_editable_top10draft_batches uses transform.draft_review_batchesreconcile_signals uses transform.reconcile_affiliate_and_reply_signalspersist_run_state uses connector.storage.upsertrender_digest uses transform.render_manual_daily_digestFree
npx skills add serenorg/seren-skillsSelect “Seren Bucks Affiliates” when prompted
openclaw install seren-seren-bucks-affiliatesSee install page for setup instructions
Seren
Added May 25, 2026