Practitionist / Practitionist/elluminar_web

Hiring-partner talent marketplace (paid search over verified portfolios)

Open
#18 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

career enterprise post-mvp v2
Dominant language
TypeScript
Stars
1
Forks
0
Avg merge
17h 2m
Merged PRs (30d)
18

Description

Why / Context

Teardown §5.3 BUILD-EXTRA: "Crio treats 1,000+ hiring partners as an internal service, not a product companies pay to access." A standing, paid hiring-partner talent marketplace — recruiters searching verified, mentor-reviewed project portfolios — is a new B2B revenue line (PRD §7.2B) that neither competitor is positioned to build.

Schema already in place — NO migration required

  • Tenant.type=HIRING_PARTNER; SubscriptionPlan.audience=HIRING_PARTNER + Subscription.tenantId for paid access
  • PortfolioProfile.talentOptIn + talentPreferences (consent-first)
  • TalentBookmark (pipeline), MentorEndorsement, Credential, ProjectInstance scores as the verified signal
  • Project.partnerTenantId links co-authored briefs to recruiting partners

Implementation plan

  1. Hiring-partner onboarding: application → admin approval → tenant(type HIRING_PARTNER); seats via BetterAuth org members.
  2. Access SKU: SubscriptionPlan(code: TALENT_SEARCH, audience: HIRING_PARTNER) + prices (new PLAN rows — seed data, not schema); paid subscription gates the search UI.
  3. Talent search index: opted-in portfolios only — skills (endorsement tags + techStack of passed projects), tiers passed, scores band, location/preferences; build on the issue #16 engine with a separate collection + strict consent filter at index time.
  4. Search UI /talent: facets (skills, project tier, availability, experience signal), candidate cards showing verified proof-of-work (never contact info pre-consent).
  5. Pipeline: TalentBookmark lists, notes, stage tags in note JSON; export CSV.
  6. Contact/intro flow: request-intro → candidate notification + accept/decline (double opt-in) → reveal contact; all events audited.
  7. Candidate-side controls: visibility per talentPreferences (roles, locations, salary band optional), pause visibility, see who viewed (Career-tier perk per entitlements hiringVisibility).
  8. Partner-brief loop: partners who co-author Flagship briefs (issue #2) get first-look access to that project's passers.
  9. Metrics: searches, intro-request acceptance rate, hires reported (self-report field) — pricing evidence for the SKU.

Acceptance criteria

  • Only talentOptIn=true profiles are searchable; opting out removes within minutes
  • Unpaid hiring partner hits the paywall; subscribed org searches and bookmarks
  • Intro flow is double-opt-in; contact details never leak before acceptance
  • Candidate sees view/intro activity per entitlement
  • Partner-brief first-look list works for a co-authored project

Dependencies / sequencing

  • Requires issue #6 (portfolios) + #16 (search engine); #2 strengthens supply (Flagship passers)
  • Consent/DPDP review with issue #24

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with issue #16's search engine and the listed PortfolioProfile, TalentBookmark, Subscription, and MentorEndorsement schema, then review dependencies #6, #2, and #24. Done means opted-in-only search, paid access, double-opt-in introductions, candidate activity controls, partner first-look access, and the stated metrics are implemented and covered by the acceptance criteria.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, backend, database, payments, search, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.