Skip to content

Job Board Contact Feature - Job Board Extension #48

Description

@ethan-t-hansen

Feature: Company Alumni Contacts for Referrals

Goal

Enable students viewing a job posting to discover MA alumni who currently work at the same company and have opted in to be contacted for referrals or informal questions.


Background & Context

Student job boards often lack a warm-intro pathway, despite alumni being one of the strongest predictors of interview success.

This feature connects those two datasets with minimal new infrastructure, leveraging:

  • Existing Postgres CRUD patterns
  • Read-heavy queries
  • Simple relational joins

High-Level User Flow

Student

  1. Browses job board
  2. Opens job details
  3. Sees a “People at {Company}” section
  4. Clicks a linkedin profile to request a referral or reach out externally

Alumni

  1. Opts into being listed as a referral contact
  2. Selects company affiliation(s)
  3. Optionally sets preferences (roles, frequency, contact method)

Data Model Extensions (Postgres)

New Table: alumni_profiles

id (uuid, pk)
user_id (uuid, fk -> users.id)
current_company (text)
current_title (text)
linkedin_url (text)
contact_email (text)
referral_opt_in (boolean)
created_at (timestamp)
updated_at (timestamp)

Optional Join Table (Future-Proofing): alumni_companies

Use if alumni may want to list multiple companies (past or present).

id (uuid, pk)
alumni_profile_id (uuid, fk)
company_name (text)
is_current (boolean)
referral_opt_in (boolean)

Job Table (Existing)

No schema change required if company is a normalized string.
Long-term improvement: introduce a companies table for canonicalization.


API Changes (CRUD-Compatible)

New Endpoints

  • GET /alumni?company=Stripe
    • Returns opted-in alumni at a given company
    • Filters:
      • referral_opt_in = true
      • is_current = true
  • POST /alumni/profile
    • Create or update alumni profile
    • Auth required

Existing Endpoint Augmentation

  • GET /jobs/:id
    • Server-side join or follow-up query to fetch alumni by company

Frontend (Next.js)

Job Detail Page

Add a new section below job description:

People at {Company}

  • Alumni name
  • Title
  • Graduation year (if available)
  • “Open to referrals” badge
  • External links:
    • LinkedIn
    • Email (optional)

Alumni Settings Page

Simple form:

  • Current company
  • Title
  • Contact method
  • Referral opt-in toggle
  • Visibility preview

Privacy & Consent

Default State

  • Alumni are not visible unless explicitly opted in

Visibility Rules

  • Only visible to members
  • Contact details limited to what alumni provide
  • No scraping or bulk export

Abuse Prevention (Phase 2)

  • Rate-limit profile views
  • Optional “Request intro” instead of direct email

Matching Logic

Initial Version

  • Exact string match on job.company == alumni.current_company

Known Issues

  • “Google” vs “Google LLC”
  • “Meta” vs “Facebook”

Mitigation

  • Admin-managed company aliases
  • Future companies normalization table

Additional Considerations

The first year reps will likely be doing outreach for this so we need an effective system for data ingestion from contacts they get approval from.

@Kevinxygu up to you to decide how this looks, could ingest from google forms with a script that pushes to an endpoint and inserts into the alumni table.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions