Status: ✅ COMPLETE Completed: February 2026 Prerequisites: Phase 1-6 Complete
Last Updated: February 2026
Phase 7 is fully implemented across all three sub-phases (7.1, 7.2, 7.3).
/careers) — Public landing page with self-serve-first layout
career_event: true)career_event checkbox on admin event form, career events scope, Career Center displaycareer_center_view and resource_downloaded tracked| Category | Files |
|---|---|
| Model | app/models/cp/career_resource.rb |
| Controllers | app/controllers/cp/careers_controller.rb, cp/career_resource_downloads_controller.rb, champions/career_resources_controller.rb |
| Views | app/views/cp/careers/show.html.erb, champions/career_resources/ (index, new, edit, _form) |
| JS | app/javascript/controllers/pdf_dropzone_controller.js |
| Config | config/career_resources.yml |
| Migrations | create_cp_career_resources, add_career_event_to_cp_events |
| Tests | 4 test files (model + 3 controllers) |
| Assets | public/images/career/ (8 logo files), public/bg-career.jpg |
| Analytics | champions/stats_controller.rb (career_center action), champions/stats/career_center.html.erb |
| Helper | app/helpers/careers_helper.rb |
Related Documents:
- ../README.md - Phase Index
- ../../JOBS-TO-BE-DONE.md - Jobs C1, C7
- ../../development/DESIGN-GUIDELINES.md - Visual standards
- ../../development/LANGUAGE_STYLE_GUIDE.md - Voice & tone
- ../phase-10/README.md - Connections (Phase 10) - resources here support connection conversations
Phase 7 creates a Career Center - a centralized hub that delivers on Belmont’s promise: your relationship with Belmont doesn’t end at graduation. The Career Center empowers alumni to self-serve with downloadable networking guides, curated external career links, career-tagged events, and peer-to-peer connections (Phase 10) - with OCPD (Office of Career and Professional Development) available as a supplementary resource when additional support is needed.
| Component | Description | Accessibility |
|---|---|---|
| Career Center Hub | Curated landing page with self-serve resources, external career links, career-tagged events, and OCPD as a supplementary resource | Public - No login required |
| Networking & Professional Development Resources | Downloadable PDF guides (conversation scripts, starter guides, networking tips) to help Champions maximize their connections | Logged-in Champions - Verified account recommended |
Champions frequently ask: “How do I make the most of my Belmont network?” The current answer has been “reach out to OCPD” - but OCPD’s primary mission is serving current students, especially during the academic year. When alumni are pointed to OCPD as the default, they often receive delayed responses or are deprioritized, leading to underwhelming experiences that erode trust in the alumni network.
The Career Center flips this model. Instead of funneling alumni directly to an overloaded office, we provide everything an alumni needs to self-serve:
The goal is to set alumni up for success before they ever need to contact OCPD - and to set realistic expectations when they do. Belmont is your career partner for life, and the Career Center is how we deliver on that promise at scale.
The Career Center’s hierarchy is intentional:
This protects OCPD’s bandwidth for students while still honoring the lifelong partnership promise. Alumni get better outcomes (immediate access to resources) and OCPD gets fewer cold outreach requests from alumni who just needed a conversation script or a link to Handshake.
Phase 10 introduces structured Connection Requests between Champions. One of Phase 10’s explicitly deferred items is “conversational scripts / guided prompts” with the note: “Will live in Career Hub as a resource.”
Phase 7 delivers on that promise by providing downloadable PDF guides that help Champions:
These resources complement the Connections system without adding complexity to the Connection Request flow itself.
| # | Goal | Success Indicator |
|---|---|---|
| G1 | Empower alumni to self-serve career needs without requiring OCPD contact | 80%+ of Career Center visitors engage with self-serve resources (guides, links, events) before/instead of contacting OCPD |
| G2 | Provide practical networking tools (downloadable guides) | 200+ PDF downloads in first 90 days |
| G3 | Integrate career events into existing events system | Career events discoverable via standard events flow |
| G4 | Support Phase 10 Connections with conversation resources | Champions reference guides when requesting connections |
| G5 | Reduce direct alumni demand on OCPD while maintaining the partnership | OCPD reports reduced cold outreach from alumni who can now self-serve |
| # | Non-Goal | Rationale |
|---|---|---|
| N1 | Job board / job postings | Removed from scope - focus on self-serve career resources |
| N2 | Application tracking (ATS) | Out of scope entirely |
| N3 | Resume database or profile matching | Out of scope |
| N4 | Employer/company accounts | Out of scope |
| N5 | In-app content authoring for guides | PDF uploads managed by admin; no rich editor needed |
| N6 | User-generated resource submissions | Staff curate all resources |
| Term | Definition |
|---|---|
| Career Center | Public landing page at /careers with OCPD resources, networking guides, external links, and career events |
| OCPD | Office of Career and Professional Development (Belmont partner) |
| Networking Resource | A downloadable PDF guide (conversation script, starter guide, tips sheet) to help Champions network effectively |
| Career Event | An event tagged with career_event: true in the existing events system |
| Resource Category | Grouping for networking resources (e.g., “Conversation Starters”, “Career Advice Prep”, “Follow-Up Templates”) |
When I need career guidance at any stage of my career, I want to find self-serve resources (guides, links, tools) that help me immediately, so I can take action on my career without waiting for a callback or scheduling an appointment.
Acceptance: Career Center leads with actionable self-serve resources (downloadable guides, external links, career events). OCPD is presented as an additional resource for personalized support, not the primary call-to-action.
When I’m about to connect with a fellow Bruin (via Phase 10 Connections), I want to download a guide with conversation starters, so I can feel confident and make the interaction productive.
Acceptance: Champion can browse and download PDF guides organized by connection type (Career Advice, Networking, Say Hi, etc.).
When I’ve had a great conversation with a Champion, I want to know the best way to follow up, so I can build a lasting professional relationship.
Acceptance: Follow-up templates and tips are available as downloadable resources.
When new networking guides are created, I want to upload them to the Career Center, so I can keep the resource library current and relevant.
Acceptance: Staff can add, edit, reorder, and remove resources from the admin interface.
When reporting on Champion Portal value, I want to see career feature metrics, so I can demonstrate ROI and identify improvements.
Acceptance: Admin can see Hub views, resource downloads, and career event engagement.
| Existing Job | Phase 7 Connection |
|---|---|
| C1: Find My Tribe | Career resources help Champions find professional communities |
| C7: Give Back Without Hassle | Networking guides make it easy to help others with career advice |
| Phase 10 Connections | Conversation scripts directly support the Connection Request flow; self-serve resources reduce dependency on OCPD for basic networking guidance |
/careers (Career Center) - PUBLIC
Hero: "Your Career Partner for Life"
Subtitle: "Your Belmont degree never expires - and neither does our commitment to your career."
Networking & Professional Development Resources (self-serve guides)
Resource cards organized by category
[Download PDF] buttons
[Login CTA for non-authenticated users]
Quick Links Grid (external career tools & platforms)
Career Events Section (from events with career_event=true)
OCPD Partnership Section (supplementary resource, lower on page)
The Career Center is a single-page landing experience with an intentional hierarchy: self-serve first, OCPD as backup.
career_event: true, linking to event detail pagesDesign Intent: A visitor should encounter 3-4 sections of immediately actionable self-serve resources before reaching OCPD. The message is: “Here’s everything you need - and if you need more, they’re here for you too.”
Each networking resource displays as a card within its category:
alumnichampions.com/careers/careersresource_downloaded recordeddownload_count incremented on the resourceFor unauthenticated users:
return_to pointing back to /careersEvents with career_event: true appear in two places:
/careers) - “Career Events” section shows next 5 career-tagged events/events) - Career events included normally, with a “Career Event” badgeImplementation:
career_event boolean to cp_events table (default: false)Cp::Event.career_events -> where(career_event: true)Event.career_events.published.upcoming.limit(5)/champions/career_resources (admin namespace)/careerscp_career_resources| Column | Type | Constraints | Notes |
|---|---|---|---|
id |
bigint | PK | |
title |
string(150) | NOT NULL | Resource name |
description |
text | Brief description shown on card | |
category |
string(50) | NOT NULL | Grouping (e.g., “Getting Started”, “Career Advice”) |
position |
integer | NOT NULL, default: 0 | Sort order within category |
active |
boolean | NOT NULL, default: true | Visible on public page |
download_count |
integer | default: 0 | Analytics counter |
created_at |
datetime | ||
updated_at |
datetime |
Attachments: has_one_attached :document (PDF via Active Storage)
Indexes:
index_cp_career_resources_on_category_and_positionindex_cp_career_resources_on_activecp_events| Column | Type | Change |
|---|---|---|
career_event |
boolean | ADD - default: false |
# app/models/cp/career_resource.rb
class Cp::CareerResource < ApplicationRecord
self.table_name = "cp_career_resources"
has_one_attached :document
scope :active, -> { where(active: true) }
scope :by_category, ->(cat) { where(category: cat) if cat.present? }
scope :ordered, -> { order(:category, :position, :title) }
scope :grouped_by_category, -> { active.ordered.group_by(&:category) }
validates :title, presence: true, length: { maximum: 150 }
validates :category, presence: true, length: { maximum: 50 }
validates :document, presence: true
validate :document_is_pdf
CATEGORIES = [
"Getting Started",
"Career Advice Conversations",
"Networking & Job Seeking",
"Follow-Up & Relationship Building"
].freeze
def increment_download!
increment!(:download_count)
end
private
def document_is_pdf
return unless document.attached?
unless document.content_type == "application/pdf"
errors.add(:document, "must be a PDF file")
end
end
end
| Action | Unauthenticated | Email Verified | Champion Verified | CL | Staff |
|---|---|---|---|---|---|
| View Career Center | Yes | Yes | Yes | Yes | Yes |
| Click external links | Yes | Yes | Yes | Yes | Yes |
| View career events | Yes | Yes | Yes | Yes | Yes |
| View resource cards | Yes | Yes | Yes | Yes | Yes |
| Download PDF resources | No (login CTA) | No | Yes | Yes | Yes |
| Manage resources (admin) | No | No | No | No | Yes |
| Tag events as career events | No | No | No | No | Yes |
Note: Resource cards (title, description, category) are visible to everyone. Downloading the actual PDF requires a verified Champion account. This creates a light funnel for non-members: “Log in to download these free networking guides.”
The OCPD section is intentionally positioned below the self-serve resources (guides, links, events). The tone should communicate: “You’ve got great tools above - and if you need more personalized support, OCPD is here for you.” This framing avoids making OCPD the default action (which has historically resulted in alumni being deprioritized behind students) while still honoring the lifelong partnership.
This content is managed in the view template, not a database.
Hardcoded Resources:
| Resource | Link | Description |
|---|---|---|
| Book a Consultation | https://calendly.com/belmont-ocpd |
Free 30-minute career consultations for personalized guidance |
| Resume Review | https://forms.belmont.edu/resume-review |
Upload resume for professional feedback |
| LinkedIn Help | https://linkedin.com/learning |
LinkedIn Learning access |
| Handshake | https://belmont.joinhandshake.com |
Job/internship platform |
| Career Events | Internal /events?career=true |
Portal career events |
Note: LinkedIn Learning, Handshake, and Career Events also appear in the Quick Links section higher on the page. Including them here provides a complete picture of OCPD’s services for alumni who scroll directly to this section.
Messaging Copy (Hero & OCPD Section):
| Element | Copy |
|---|---|
| Hero Headline | “Your Career Partner for Life” |
| Hero Subtitle | “Your Belmont degree never expires - and neither does our commitment to your career.” |
| Hero CTA | “Browse Resources” (scrolls to guides section) |
| OCPD Section Header | “Need More Personalized Support?” |
| OCPD Lead-in | “Belmont’s Office of Career and Professional Development offers free career services to all alumni. Whether you need a resume review, interview prep, or career strategy session - they’re here for you.” |
| OCPD CTA | “Book a Free Consultation” |
| OCPD Expectation Note | “OCPD’s primary focus is current students during the academic year. Alumni consultations may have longer scheduling windows during peak periods (September-November, January-April).” |
Contact Information:
| Channel | Value |
|---|---|
| Website | https://www.belmont.edu/career-development/ |
careerdevelopment@belmont.edu |
|
| Phone | 615-460-6490 |
| Office | Jack C. Massey Center, Suite 214 |
| Hours | Monday-Friday, 8am-4:30pm CT |
https://www.instagram.com/bucareerdevelop/ |
External resources displayed in the Career Center. Managed via YAML for easy updates:
# config/career_resources.yml
quick_links:
- name: Handshake
url: https://belmont.joinhandshake.com
description: Jobs & internships for students and alumni
icon: handshake
- name: LinkedIn Learning
url: https://linkedin.com/learning
description: Free courses for professional development
icon: linkedin
- name: Indeed
url: https://indeed.com
description: Search millions of job listings
icon: search
- name: Glassdoor
url: https://glassdoor.com
description: Company reviews and salary data
icon: building
Add resource management to the existing Champion Admin namespace:
Route: /champions/career_resources
Views:
image_dropzone_controller), active toggleActions:
These PDF guides should be created (content by Engagement Team / OCPD) and uploaded at launch:
| Category | Resource Title | Purpose |
|---|---|---|
| Getting Started | Networking 101: A Bruin Starter Guide | Overview of networking through the Champion Portal |
| Getting Started | Your First Connection: What to Say | Conversation script for first-time connection requests |
| Getting Started | Making the Most of Your Bruin Network | Tips for leveraging alumni connections effectively |
| Career Advice Conversations | Asking for Career Advice: A Conversation Script | Step-by-step guide for requesting career guidance |
| Career Advice Conversations | Giving Career Advice: Best Practices | Tips for Champions who want to help others |
| Networking & Job Seeking | The Informational Interview Guide | How to request and conduct informational interviews |
| Networking & Job Seeking | Talking About Your Job Search | Scripts for networking when you’re actively job seeking |
| Follow-Up & Relationship Building | After the Conversation: Follow-Up Templates | Email/message templates for post-connection follow-up |
| Follow-Up & Relationship Building | Building Long-Term Professional Relationships | Guide to maintaining professional connections over time |
Add to Cp::ActivityEvent::EVENT_TYPES:
| Event | Trigger | Metadata |
|---|---|---|
career_center_view |
Visit /careers | { source: referrer } |
resource_downloaded |
Download a PDF resource | { resource_id: id, category: category } |
Add “Career Center” section to Staff admin dashboard:
| Metric | Calculation |
|---|---|
| Career Center Views (period) | Count of career_center_view events |
| Resource Downloads (period) | Count of resource_downloaded events |
| Top Downloaded Resources | Ranked by download_count |
| Career Events (upcoming) | Count of career_event: true events |
| Scenario | Behavior |
|---|---|
| No career events exist | Hide “Career Events” section entirely (don’t show empty state) |
| No resources uploaded yet | Show friendly message: “Resources coming soon!” |
| Resource PDF is very large (>10MB) | Validate max file size on upload; show error |
| Resource deleted while someone is downloading | Active Storage handles gracefully; subsequent clicks show 404 |
| Non-authenticated user clicks Download | Redirect to sign-in with return_to pointing back to /careers |
| Staff deactivates a resource | Immediately hidden from public page; existing download links still work |
/careers is publicly accessible (no login required)career_event: truedownload_countresource_downloaded recorded on each downloadcareer_event checkbox on event formcareer_center_view event recorded on page visitresource_downloaded event recorded on PDF downloadStatus: ✅ Complete Completed: February 2026 Goal: Create database table, public Career Center page with self-serve-first layout (resources, links, events above OCPD section)
Deliverables:
create_cp_career_resourcesadd_career_event_to_cp_eventsCp::CareerResource with validations, scopes, Active Storage attachmentconfig/career_resources.yml (quick links)Cp::CareersController#show (public Hub)cp/careers/show.html.erb (Career Center page)GET /careers (public)Key Files to Create:
db/migrate/YYYYMMDD_create_cp_career_resources.rb
db/migrate/YYYYMMDD_add_career_event_to_cp_events.rb
app/models/cp/career_resource.rb
app/controllers/cp/careers_controller.rb
app/views/cp/careers/show.html.erb
config/career_resources.yml
test/models/cp/career_resource_test.rb
test/controllers/cp/careers_controller_test.rb
Status: Complete Completed: February 2026 Goal: Champions can download resources; Staff can manage resources via admin
Deliverables:
Cp::CareerResourceDownloadsController#show (authenticated download with counter)Champions::CareerResourcesController (admin CRUD)resource_downloaded (with resource_id and category metadata)pdf_dropzone_controller.js (drag/drop, click-to-browse, preview)Key Files Created:
app/controllers/cp/career_resource_downloads_controller.rb
app/controllers/champions/career_resources_controller.rb
app/javascript/controllers/pdf_dropzone_controller.js
app/views/champions/career_resources/index.html.erb
app/views/champions/career_resources/new.html.erb
app/views/champions/career_resources/edit.html.erb
app/views/champions/career_resources/_form.html.erb
test/controllers/cp/career_resource_downloads_controller_test.rb
test/controllers/champions/career_resources_controller_test.rb
test/fixtures/files/test_pdf.pdf
test/fixtures/cp/career_resources.yml
Key Files Modified:
config/routes.rb (added download + admin CRUD routes)
app/views/cp/careers/show.html.erb (replaced placeholder with download link)
Design Decisions:
update_column for toggle_active to bypass document presence validationStatus: ✅ Complete Completed: February 2026 Goal: Events can be tagged as career events; analytics dashboard section added
Deliverables:
Cp::Event.career_eventscareer_event: truecareer_center_viewKey Files to Modify:
app/views/champions/events/_form.html.erb (add checkbox)
app/models/cp/event.rb (add scope)
app/views/cp/careers/show.html.erb (add career events section)
app/views/cp/events/_event_card.html.erb (add badge)
app/controllers/champions/dashboard_controller.rb (add career metrics)
app/views/champions/dashboard/_career_metrics.html.erb
test/models/cp/event_test.rb
| Model | Test Cases |
|---|---|
Cp::CareerResource |
Validations (required fields, PDF type, length limits), scopes (active, ordered, grouped_by_category), increment_download!, document attachment |
Cp::Event |
career_event attribute, career_events scope |
| Controller | Test Cases |
|---|---|
Cp::CareersController |
Public access, renders Hub content, shows career events, shows resources |
Cp::CareerResourceDownloadsController |
Auth required, increments download count, records activity event, returns PDF |
Champions::CareerResourcesController |
Staff-only access, CRUD operations, PDF upload, deactivate/reactivate |
| Flow | Test Cases |
|---|---|
| Public Hub View | Unauthenticated user sees all sections, external links work |
| Download Resource | Champion downloads PDF, count increments, event recorded |
| Admin CRUD | Staff creates resource with PDF, edits it, deactivates it |
| Career Events | Admin tags event, event appears on Career Center and Events page |
Features explicitly deferred from Phase 7:
| Feature | Description | Reason for Deferral | Potential Phase |
|---|---|---|---|
| Job board / job postings | Champion-powered job listings | Removed from scope to focus on career resources and OCPD partnership | Backlog (revisit based on demand) |
| Saved job searches & alerts | Search criteria + email notifications | Dependent on job board | Backlog |
| Video resources | Embedded video guides alongside PDFs | PDF-first for simplicity; add video support if demand emerges | Backlog |
| OCPD content management | Admin-editable OCPD section (not hardcoded) | Hardcoded is sufficient for MVP; OCPD content changes rarely | Backlog |
| Resource ratings / feedback | Champions rate helpfulness of guides | Adds complexity; gauge demand first | Backlog |
| In-app content viewer | View PDFs inline without downloading | Browser handles PDF viewing; dedicated viewer is nicety | Backlog |
Confirm URLs and contact info with OCPD before implementation.
| Service | Description | Link |
|---|---|---|
| Career Consultations | 30-minute one-on-one sessions with career counselors | https://calendly.com/belmont-ocpd |
| Resume Review | Upload resume for professional feedback | https://forms.belmont.edu/resume-review |
| LinkedIn Optimization | Profile review and enhancement tips | https://linkedin.com/help/linkedin/answer/XXX |
| Interview Prep | Mock interviews and preparation resources | https://belmont.edu/ocpd/interview-prep |
| Job Search Strategy | Personalized job search coaching | https://calendly.com/belmont-ocpd/strategy |
| Resource | Description | Link |
|---|---|---|
| Handshake | Job/internship platform for students and alumni | https://belmont.joinhandshake.com |
| LinkedIn Learning | Free professional development courses | https://linkedin.com/learning |
| Indeed | Job search engine | https://indeed.com |
| Glassdoor | Company reviews and salary data | https://glassdoor.com |
| CareerBuilder | Job listings and resume posting | https://careerbuilder.com |
| Channel | Value |
|---|---|
| Website | https://www.belmont.edu/career-development/ |
careerdevelopment@belmont.edu |
|
| Phone | 615-460-6490 |
| Office | Jack C. Massey Center, Suite 214 |
| Hours | Monday-Friday, 8am-4:30pm CT |
https://www.instagram.com/bucareerdevelop/ |
When creating events, apply career_event: true for:
Document created: January 2026 Revised: February 2026 - Removed Job Board; added Networking & Professional Development Resources Status: Ready for Implementation Review