Skip to content

Latest commit

 

History

History
143 lines (106 loc) · 4.05 KB

File metadata and controls

143 lines (106 loc) · 4.05 KB

Job Openings Feature - Implementation Summary

🎉 Implementation Complete!

Created by: Amelia (Developer Agent) with team collaboration
Date: 2026-01-27


What Was Implemented

1. Data Structure (_data/jobs.yml)

  • YAML-based job listings with comprehensive fields
  • 3 example job postings included:
    • PhD Position in Social Neuro-AI (Open)
    • Postdoctoral Fellow in Precision Psychiatry (Archived)
    • Research Assistant - Clinical Data Collection (Open)

Fields per job:

  • id, title, type, deadline, posted, status
  • short_description, description (markdown support)
  • requirements[], responsibilities[], benefits[]
  • contact, apply_url, supervisor
  • Optional: duration, hours

2. Jobs Page (jobs.md)

  • Card-based grid layout (2 columns on desktop)
  • Filters:
    • Status: Open / All / Archived (default: Open)
    • Type: All / PhD / Postdoc / Research Assistant / Internship
  • Modal system for full job details
  • Responsive design (mobile-friendly)

3. Navigation Links

  • Added "Jobs" link to both English and French navigation menus
  • English: "Jobs"
  • French: "Emplois"

🎨 Design Features

  • Card hover effects - subtle elevation on hover
  • Color-coded badges per position type:
    • PhD: Blue
    • Postdoc: Yellow/Gold
    • Research Assistant: Green
    • Internship: Red
  • Status indicators - Green 🟢 for Open, Gray ⚫ for Closed
  • Consistent styling with existing publications page
  • Archived jobs appear grayed out and cannot be clicked

🔧 How to Add/Edit Jobs

To Add a New Job:

  1. Open _data/jobs.yml
  2. Copy an existing job entry
  3. Update all fields with new job details
  4. Set status: "open" for active positions
  5. Save the file - Jekyll auto-rebuilds!

To Archive a Job:

  1. Find the job in _data/jobs.yml
  2. Change status: "open" to status: "closed"
  3. Save - the job will appear in "Archived" filter

To Update Apply URL:

Currently set to mailto:join@ppsp.team. To change:

  1. Edit the apply_url field in each job entry
  2. Can link to external application forms or keep as email

📁 Files Created/Modified

Created:

  • _data/jobs.yml - Job data source
  • jobs.md - Main jobs page with filters and modals

Modified:

  • _i18n/en.yml - Added "Jobs" navigation link
  • _i18n/fr.yml - Added "Emplois" navigation link

🚀 Testing

Server is running at: http://localhost:4000

Test Checklist:

  • Jobs page loads correctly
  • Card grid displays properly
  • Filters work (Status: Open/All/Archived)
  • Filters work (Type: All/PhD/Postdoc/RA/Internship)
  • Click on Open job card opens modal
  • Modal shows full job details
  • "Apply Now" button works (opens email)
  • Archived jobs show as grayed out
  • Navigation link "Jobs" appears in menu
  • Responsive on mobile (cards stack)
  • French version works ("Emplois" link)

📝 Notes

  • Filter default: Shows only "Open" positions by default
  • Apply button: Currently mailto: links - update when you have application form URL
  • Bilingual: Page is in English, but you can create fr/jobs.md for French version
  • SEO ready: Page has proper title and structure
  • Accessible: ARIA labels included for screen readers

🎯 Next Steps (Optional)

  1. Add French version of jobs page (fr/jobs.md)
  2. Create actual application form or link to external form
  3. Add email notifications when new jobs are posted
  4. Add RSS feed for job openings
  5. Integrate with Zotero for academic job postings

🏗️ Winston (Architect) Validation

✅ Architecture follows Jekyll best practices
✅ Data-driven approach allows easy maintenance
✅ Consistent with existing site patterns
✅ Scalable for future enhancements

🎨 Sally (UX Designer) Validation

✅ Intuitive card-based interface
✅ Clear visual hierarchy
✅ Accessible filters and interactions
✅ Responsive design for all devices


🎉 Ready to recruit! Happy hiring, PPSP Team! 🎉