An ASP.NET Core (Razor Pages) web app for posting jobs, uploading CVs, and matching job applications with rich review workflows (status changes, notes, shortlist, and match scores).
- User authentication with roles (JobSeeker, Admin) via
ResumeMatcher.Pages.LoginModelandResumeMatcher.Pages.RegisterModel. - Job posting with structured fields (requirements, responsibilities, salary, etc.) in Pages/AddJob.cshtml.
- Candidate CV upload and management (migrations and UI hooks present).
- Applications dashboard with:
- Match score badges and formatting in Pages/Applications.cshtml.
- Status workflow (e.g., update status + notes) via API call.
- Shortlist indicator and reviewed timestamps.
- Admin dashboard (role-protected) in Pages/AdminDashboard.cshtml.
- Clean, modern UI using Bootstrap 5, Font Awesome, and a custom typography system in wwwroot/css/typography.css and wwwroot/css/site.css.
- .NET 9, ASP.NET Core Razor Pages
- Entity Framework Core (SQL Server)
- Bootstrap 5, Font Awesome, jQuery validation
- VS Code tasks and assets for local development
ResumeMatcher/
Controllers/
JobApiController.cs
Data/
ResumeMatcherDbContext.cs
Migrations/
Pages/
AddJob.cshtml
Applications.cshtml
Login.cshtml.cs
Register.cshtml.cs
AdminDashboard.cshtml
Shared/_Layout.cshtml
wwwroot/
css/
site.css
typography.css
js/
site.js
Program.cs
appsettings.json
Prerequisites:
- .NET SDK 9
- SQL Server (e.g., LocalDB/Express)
Setup:
- Set the database connection string in appsettings.json.
- Restore, migrate, and run:
dotnet restore
dotnet ef database update
dotnet run- Open http://localhost:5000 (or the port shown in the output).
Optional:
- Use the cleanup script to reset build artifacts: cleanup.ps1
- App entrypoint: Program.cs
- Database context: Data/ResumeMatcherDbContext.cs
- Migrations (example):
ResumeMatcher.Migrations.AddUserManagementAndApplications - Auth pages:
- Applications UI and scripts: Pages/Applications.cshtml
- Layout and global styles: Pages/Shared/_Layout.cshtml, wwwroot/css/site.css, wwwroot/css/typography.css
Update application status (used by Pages/Applications.cshtml):
- POST /api/applications/{id}/status
- Body:
{
"status": "InterviewScheduled",
"notes": "Candidate scheduled for 10/05 2pm"
}- Response:
{
"success": true,
"badgeClass": "badge-modern bg-info"
}- VS Code users can use tasks from .vscode/tasks.json.
- Static assets are referenced in Pages/Shared/_Layout.cshtml.
- Client code lives in wwwroot/js/site.js.
# ResumeMatcher
An ASP.NET Core (Razor Pages) web app for posting jobs, uploading CVs, and matching job applications with rich review workflows (status changes, notes, shortlist, and match scores).
## Features
- User authentication with roles (JobSeeker, Admin) via [`ResumeMatcher.Pages.LoginModel`](Pages/Login.cshtml.cs) and [`ResumeMatcher.Pages.RegisterModel`](Pages/Register.cshtml.cs).
- Job posting with structured fields (requirements, responsibilities, salary, etc.) in [Pages/AddJob.cshtml](Pages/AddJob.cshtml).
- Candidate CV upload and management (migrations and UI hooks present).
- Applications dashboard with:
- Match score badges and formatting in [Pages/Applications.cshtml](Pages/Applications.cshtml).
- Status workflow (e.g., update status + notes) via API call.
- Shortlist indicator and reviewed timestamps.
- Admin dashboard (role-protected) in [Pages/AdminDashboard.cshtml](Pages/AdminDashboard.cshtml).
- Clean, modern UI using Bootstrap 5, Font Awesome, and a custom typography system in [wwwroot/css/typography.css](wwwroot/css/typography.css) and [wwwroot/css/site.css](wwwroot/css/site.css).
## Tech stack
- .NET 9, ASP.NET Core Razor Pages
- Entity Framework Core (SQL Server)
- Bootstrap 5, Font Awesome, jQuery validation
- VS Code tasks and assets for local development
## Project structure (simplified)
ResumeMatcher/ Controllers/ JobApiController.cs Data/ ResumeMatcherDbContext.cs Migrations/ Pages/ AddJob.cshtml Applications.cshtml Login.cshtml.cs Register.cshtml.cs AdminDashboard.cshtml Shared/_Layout.cshtml wwwroot/ css/ site.css typography.css js/ site.js Program.cs appsettings.json
## Getting started
Prerequisites:
- .NET SDK 9
- SQL Server (e.g., LocalDB/Express)
Setup:
1) Set the database connection string in [appsettings.json](appsettings.json).
2) Restore, migrate, and run:
```bash
dotnet restore
dotnet ef database update
dotnet run
- Open http://localhost:5000 (or the port shown in the output).
Optional:
- Use the cleanup script to reset build artifacts: cleanup.ps1
- App entrypoint: Program.cs
- Database context: Data/ResumeMatcherDbContext.cs
- Migrations (example):
ResumeMatcher.Migrations.AddUserManagementAndApplications - Auth pages:
- Applications UI and scripts: Pages/Applications.cshtml
- Layout and global styles: Pages/Shared/_Layout.cshtml, wwwroot/css/site.css, wwwroot/css/typography.css
Update application status (used by Pages/Applications.cshtml):
- POST /api/applications/{id}/status
- Body:
{
"status": "InterviewScheduled",
"notes": "Candidate scheduled for 10/05 2pm"
}- Response:
{
"success": true,
"badgeClass": "badge-modern bg-info"
}- VS Code users can use tasks from .vscode/tasks.json.
- Static assets are referenced in Pages/Shared/_Layout.cshtml.
- Client