Skip to main content

Key features

Biovity provides a comprehensive set of features designed specifically for the scientific job market. Here are the 8 core capabilities that make the platform valuable for both job seekers and employers. Advanced search functionality tailored to scientific careers in biotechnology, biochemistry, chemistry, and health sectors.

Scientific categories

Browse jobs organized by scientific discipline, research areas, and technical specializations

Advanced filters

Filter by location, salary range, experience level, contract type, and scientific field

Key capabilities

  • Multi-field search: Search by job title, company, location, or keywords
  • Category filtering: Biotechnology, biochemistry, chemistry, chemical engineering, health, and more
  • Salary range filters: View jobs within specific Chilean peso (CLP) salary ranges
  • Location-based search: Filter by Chilean cities and regions
  • Experience levels: Entry-level, mid-level, senior, and principal positions
  • Contract types: Full-time, part-time, internships, temporary, and contract work
The search interface is optimized for scientists who know exactly what they’re looking for while also supporting exploratory browsing.

Technical implementation

Located in app/dashboard/employee/search/ with:
  • Server-side filtering for performance
  • Real-time search results
  • Persistent search preferences
  • Mobile-responsive design with TailwindCSS

2. Professional dashboards

Role-based dashboards provide tailored experiences for employees and organizations with separate workflows and features.

Employee dashboard

Located in app/dashboard/employee/, the professional dashboard includes:
  • Application status summary
  • Recent job matches
  • Profile completion status
  • Quick actions for common tasks
  • Active application tracking
  • Application history
  • Status updates and notifications
  • Interview scheduling
  • Bookmarked opportunities
  • Job comparison tools
  • Expiration tracking
  • Quick apply from saved list

Organization dashboard

Located in app/dashboard/admin/, companies get:
  • Job posting management
  • Candidate review and filtering
  • Application tracking and status updates
  • Company profile and branding
  • Hiring metrics and analytics
Dashboards use nested layouts (app/dashboard/employee/layout.tsx) with persistent sidebar navigation and tab-based content organization.

3. Better Auth authentication system

Secure, flexible authentication powered by Better Auth with custom user types and fields.

Authentication features

Email/password

Traditional authentication with secure password hashing and validation

User types

Separate flows for employees (job seekers) and organizations (employers)

Session management

7-day sessions with automatic renewal and secure logout

Rate limiting

10 requests/minute per IP to prevent abuse and brute force attacks

Custom user fields

Better Auth is configured with custom fields in lib/auth.ts:
// Custom user fields
type: 'employee' | 'organization'
profession: string           // Scientific field/role
avatar: string              // Profile image URL
isActive: boolean           // Account status
organizationId: string      // Link to parent org (for employees)

Authentication architecture

  • Server config: lib/auth.ts - Better Auth server instance
  • Client config: lib/auth-client.ts - Client-side auth hooks
  • API endpoint: app/api/auth/[...all]/route.ts - Handles all auth requests
  • Protected routes: Middleware checks authentication for dashboard access
The dual user type system (employee/organization) enables different registration flows, dashboards, and permissions for job seekers vs. employers.

4. Application tracking and management

Comprehensive system for managing job applications throughout the hiring process.

For job seekers

Located in app/dashboard/employee/my-applications/:
  • Application history: View all submitted applications with timestamps
  • Status tracking: Monitor application progress (pending, reviewed, interview, rejected, accepted)
  • Application details: Access original job posting and your submitted materials
  • Notifications: Receive updates when application status changes
  • Withdrawal option: Cancel applications if circumstances change

For employers

Located in app/dashboard/employee/applications/ (employer view):
  • Candidate pipeline: Organize applications by stage in the hiring process
  • Bulk actions: Update multiple application statuses simultaneously
  • Candidate comparison: Side-by-side review of applicant qualifications
  • Communication: Message candidates directly through the platform
  • Filtering: Sort and filter applications by date, status, qualifications
Application data is stored in PostgreSQL with proper indexing for fast queries even with thousands of applications.

5. Profile and career management

Robust profile system allowing professionals to showcase their scientific background and career history.

Profile components

Located in app/dashboard/employee/profile/:
1

Basic information

  • Full name and contact details
  • Professional title and current role
  • Location (Chilean city/region)
  • Profile photo/avatar
2

Scientific background

  • Education (degrees, institutions, fields of study)
  • Research experience and publications
  • Technical skills and laboratory techniques
  • Certifications and professional licenses
3

Career preferences

  • Desired roles and scientific fields
  • Salary expectations (CLP range)
  • Preferred locations and remote work preferences
  • Career goals and interests
4

Professional history

  • Work experience timeline
  • Previous positions and responsibilities
  • Projects and achievements
  • References and recommendations

Profile visibility and privacy

  • Public profile: Visible to employers searching for candidates
  • Private details: Contact information shared only after connection
  • Anonymized browsing: Option to view jobs without revealing identity
  • Profile completion: Progress indicator encouraging complete profiles
Profile data is stored with TypeScript interfaces defined in lib/types/ ensuring type safety across the application.

6. Messaging and communication

Integrated messaging system for direct communication between job seekers and employers.

Messaging features

Located in app/dashboard/employee/messages/:
  • Direct messaging: One-on-one conversations between candidates and recruiters
  • Message threads: Organized conversations by job application or company
  • Read receipts: Know when your messages have been viewed
  • Attachments: Share documents, portfolios, or additional materials
  • Notifications: Email and in-app alerts for new messages
  • Message history: Complete conversation archive for reference

Communication workflows

Application follow-up

Employers can message candidates for clarifications or additional information

Interview coordination

Schedule interviews and send meeting details through messages

Offer negotiation

Discuss salary, benefits, and start dates securely

General inquiries

Candidates can ask questions about roles or company culture
All messages are stored in PostgreSQL with proper indexing for quick retrieval and search functionality.

7. Analytics and metrics

Data-driven insights for both job seekers and employers to optimize their use of the platform.

Employee metrics

Located in app/dashboard/employee/metrics/:
  • Application analytics: Number of applications, response rates, success rates
  • Profile views: Track how often employers view your profile
  • Search appearances: See how often your profile appears in employer searches
  • Engagement metrics: Measure effectiveness of your job search strategy
  • Time-to-hire: Average time from application to offer
  • Salary insights: Compare your expectations to market rates

Organization metrics

Employers track:
  • Job posting performance: Views, applications, and applicant quality per posting
  • Time-to-fill: Average days to fill open positions
  • Candidate pipeline: Applicants at each stage of the hiring funnel
  • Source tracking: Where top candidates discover your jobs
  • Hiring trends: Historical data on hiring patterns and seasonality
Metrics are calculated using utility functions from lib/utils.ts with proper date formatting and Chilean peso (CLP) currency handling.

Visualization

  • Charts powered by React components
  • Date range selectors for custom reporting periods
  • Export capabilities for further analysis
  • Mobile-responsive dashboard layouts

8. Calendar and scheduling integration

Integrated calendar system for managing interviews, deadlines, and career events.

Calendar features

Located in app/dashboard/employee/calendar/:

Interview scheduling

Schedule and track upcoming interviews with automatic reminders

Application deadlines

View deadlines for application materials, follow-ups, and decisions

Event integration

Sync with external calendars (Google Calendar, Outlook) for unified view

Availability sharing

Share your availability with employers for interview scheduling

Calendar workflows

  • Interview invitations: Employers send interview requests with proposed times
  • Candidate response: Accept, decline, or propose alternative times
  • Automatic reminders: Email and in-app notifications before scheduled events
  • Time zone handling: Proper handling of Chilean time zones
  • Recurring events: Support for multi-round interview processes
Calendar events are stored in PostgreSQL and can be exported to standard calendar formats (iCal) for use in external applications.

Feature integration

These 8 features work together to create a cohesive platform experience:
  1. Search helps discover opportunities
  2. Dashboard provides centralized access to all features
  3. Authentication secures user data and enables personalization
  4. Application tracking manages the hiring process
  5. Profiles showcase qualifications and preferences
  6. Messaging facilitates communication
  7. Analytics provide insights for optimization
  8. Calendar keeps everyone organized and on schedule
All features are built with TypeScript for type safety, TailwindCSS for responsive design, and PostgreSQL for reliable data storage.

Technical architecture

Features are organized using Next.js App Router conventions:
  • Route-based organization: Each feature has dedicated routes in app/
  • Component modularity: Shared UI components in components/ui/
  • Type safety: TypeScript interfaces in lib/types/ define data structures
  • Utility functions: Common operations in lib/utils.ts (dates, currency, badges)
  • Database schema: PostgreSQL tables with migrations in lib/db/migrations/

Want to understand the technical implementation? Check out the architecture and tech stack documentation.