Welcome back. Your product brief established the problem: early-career frontend job seekers can lose track of application status and follow-up actions when information is scattered across job boards, email, notes, and spreadsheets. It also established an important constraint: the workspace must be usable without depending on pointer interaction, colour alone, or small fixed text.
This lesson turns that problem statement into a realistic build boundary. You will decide what the first version of the Accessible Job-Application Workspace must do, what adds value later, and what you will explicitly exclude for now. This is not merely project management: disciplined scope is what gives a portfolio project a coherent user story, a finishable implementation plan, and a credible explanation in an interview.
An MVP is a complete small experience, not an incomplete big one
An MVP is the smallest version of a product that lets a defined user achieve the core outcome and lets you learn whether that outcome is valuable. For this project, the outcome is not “see a polished Kanban board.” It is:
Help an active job seeker understand each application’s current status and next action without relying on memory or scattered tools.
A common portfolio-project mistake is to treat “MVP” as permission to build an unpolished prototype. That is not the goal. Your MVP can have limited functionality while still being:
- responsive on common screen sizes;
- understandable with a keyboard and screen reader;
- clear when there is no data or an action succeeds;
- deployed publicly with realistic demonstration data;
- focused enough that you can test, document, and explain it.
The limitation is in the number of user problems solved, not in basic quality.
For the application workspace, the central user loop is small:
- A user records an application.
- They can review its role, company, current status, and next action.
- They update the information when something changes.
- When they return, they can identify what needs attention.
If a proposed feature does not strengthen this loop, remove a serious barrier to it, or help validate it, it probably does not belong in the first release.
What is MoSCoW Prioritization Method? Definition, Overview, and Best Practices
Watch “What is MoSCoW Prioritization Method? Definition, Overview, and Best Practices” from ProductPlan for a compact introduction to the method you will use to make these decisions.
Begin with the framework to see the four priority categories. Then watch the setup, which emphasizes agreeing on goals and decision rules before ranking features. Finish with the categories; focus on the questions used to distinguish essential functionality from valuable but deferrable work.
For a solo portfolio project, you are both product owner and developer. That does not mean every idea becomes a Must-have. It means you need to make the trade-offs explicitly rather than allowing the interface to grow feature by feature.
Prioritize against the user problem, effort, and dependencies
Before labeling anything “Must,” evaluate it from several angles. A feature can be attractive, easy to implement, or impressive in a screenshot without being necessary for the first valuable user experience.
Atlassian’s backlog-prioritization guidance uses four useful considerations: user value, urgency of learning, implementation complexity, and dependencies.
Product backlog: Tips for creation and prioritization
Read Atlassian’s “Product backlog: Tips for creation and prioritization” to ground your scope decisions in value, learning, effort, and dependency awareness rather than personal preference.
In the section “How to prioritize a product backlog,” begin at the first bullet under “Step 1. Evaluate customer needs.” Read the four evaluation steps. As you read, consider each factor in the context of a single-user, time-boxed portfolio project: a feature can be useful, but still be wrong for the first release if it has low learning value, high complexity, or depends on unfinished foundations.
Use the following questions when you assess each candidate feature.
| Decision lens | Question for the Application Workspace |
|---|---|
| User value | Does this materially help the job seeker record, review, or act on an application? |
| Core-loop completeness | Without it, can the user still complete the central workflow from recording an application to reviewing the next action? |
| Learning value | Will implementing it validate whether the workspace improves clarity, or merely make the interface more elaborate? |
| Effort and risk | Can it be built, tested, and explained confidently within a focused project release? |
| Dependencies | Does it require application data, status handling, storage, or interaction patterns that must already exist? |
| Accessibility | Does it make the primary workflow more operable and understandable for keyboard, screen-reader, zoom, and touch users? |
Consider a few examples:
- A list that shows application status and next action has high user value and is central to the core loop. It belongs early.
- A drag-and-drop board may look impressive, but a user can update a status using an accessible button or select control. It is not essential to prove the product’s value.
- Search and filtering become valuable as the list grows. A user can still manage a small initial set of applications without them, so they can wait until the core workflow works.
- Third-party job-board integration has substantial complexity, privacy implications, and external dependencies. It is not appropriate for this MVP.
- Keyboard access and visible text status are not decorative quality improvements. They are part of the product promise in your brief, so they cannot be deferred.
This approach prevents two opposite errors:
- Feature hoarding: calling every useful idea a Must-have.
- Over-cutting: removing essential feedback, accessibility, or data persistence in the name of speed.
Use MoSCoW to make the release boundary visible
The MoSCoW method sorts candidate work into four categories:
- Must have: Without it, the first release fails to deliver its essential outcome, fails a core constraint, or cannot function as intended.
- Should have: It adds substantial value, but a reasonable workaround exists for the initial release.
- Could have: It would be pleasant or useful, but its absence has limited consequences now.
- Will not have at this time: It is intentionally outside this release. This is a decision, not a forgotten idea.

The most important category is often Will not have at this time. It protects your time and makes the MVP believable. Saying “not now” does not mean “never.” It means you will not design, build, test, or describe it as part of the first release.
Use these classification tests:
| If you remove the feature… | Likely priority |
|---|---|
| The user cannot complete the core job-application workflow, or the product breaks its accessibility promise. | Must have |
| The user can still complete the workflow with a sensible simpler alternative. | Should have |
| The feature mainly improves convenience, visual polish, or a secondary scenario. | Could have |
| It requires external systems, a different user group, sensitive data, or a much larger product scope. | Will not have at this time |
MoSCoW is a scope framework, not a perfect ordering system. Two Must-haves may still need implementation in a particular sequence because one depends on the other. For example, a list view depends on having a defined application record, and persistent storage depends on knowing what data must be stored. The next lesson will convert the selected scope into smaller, testable acceptance criteria and an implementation backlog.
Apply MoSCoW to the job-application workspace
Start from the user journey, not from React components. The initial journey has three high-level activities:
- Maintain applications: add an application and correct or update its information.
- Review the search: see active applications and understand their state at a glance.
- Manage progress: change an application’s status and record the next action to take.
Now place feature ideas beneath those activities and classify them. The following is a realistic first-pass scope for your portfolio project.
| Candidate capability | Priority | Why it belongs there |
|---|---|---|
| Create an application record with essential information: company, role, status, date, and next action. | Must | Without a record, there is no workspace to manage. Keep the first data model deliberately small. |
| Edit an existing application record. | Must | Job searches change constantly. A tracker that cannot be corrected or updated does not support the core workflow. |
| Show applications in a readable list with company, role, current status, and next action visible. | Must | This is the main review experience promised in the product brief. |
| Change an application’s workflow stage using an explicit accessible control. | Must | The user must be able to keep status current without relying on a pointer-only interaction. |
| Preserve entered demonstration data locally through a storage boundary that can later be replaced. | Must | The workspace needs to remain useful when the user returns. A replaceable boundary also keeps future remote storage possible. |
| Provide keyboard-operable forms and controls, clear labels, text-based status information, readable zoomed layouts, and understandable feedback. | Must | These are core product constraints, not later visual enhancements. |
| Explain the empty state and guide a first-time user toward adding an application. | Must | A new workspace begins empty. The first screen must tell the user what it is and what to do next. |
| Search applications by company or role. | Should | Valuable once records grow, but the user can initially review a small list directly. |
| Filter and sort by status or next-action date. | Should | Supports focused review, but the initial version remains usable without it. |
| Provide a board view grouped by application stage. | Should | It can make status distribution easy to scan, but a list view already proves the core value. |
| Manage people as separate reusable contact records. | Should | Contacts matter, but an MVP can begin with simple application-level information rather than a dedicated contact-management area. |
| Move applications between stages with keyboard-accessible board controls. | Should | This is a strong accessibility and interaction enhancement once the board exists; it is not needed if the MVP has another accessible status-update control. |
| Add tags, saved views, and a dashboard with application statistics. | Could | These improve organization and insight but do not make the core loop viable. |
| Attach tailored résumés, cover letters, or interview documents. | Could | Useful, but file handling adds complexity that does not validate the central tracking problem. |
| Offer a theme switcher or extensive visual customization. | Could | Good contrast and readable layouts are Must-haves; user-controlled themes are a separate enhancement. |
| Sign-in, user accounts, password handling, and multi-user collaboration. | Will not have at this time | The product is a single-user portfolio MVP using demo or local data. Authentication changes the security and backend scope substantially. |
| Scrape job boards or automatically submit applications. | Will not have at this time | This depends on third-party systems and can introduce terms-of-service, privacy, and reliability concerns. |
| Integrate email, calendars, or notifications. | Will not have at this time | A user can record a next action manually first. Integrations require broader permissions and a more complex product. |
| Use AI to score vacancies or generate application material. | Will not have at this time | It would obscure the core value proposition and add evaluation, privacy, and cost questions. |
Notice one subtle choice: accessible stage updates are Must-have; drag-and-drop is not. This preserves the user need while leaving the implementation flexible. A clear status control can satisfy the MVP; a keyboard-accessible board interaction is an enhancement worth adding after the fundamental workflow is stable.
Write the MVP boundary as a short product decision
Your scope needs a one-paragraph statement that prevents future decisions from drifting. Add the following to your product brief, or save it as docs/mvp-scope.md once your repository exists.
## MVP scope
The first release of the Accessible Job-Application Workspace will enable an
early-career job seeker to add, review, edit, and update personal job
applications in one responsive workspace. Each application will show its
company, role, current status, and next action. The primary workflow will be
usable with keyboard navigation, understandable without colour alone, and
readable at enlarged text or browser zoom. Data will persist locally through a
replaceable storage boundary.
The first release will not include accounts, third-party job-board or email
integrations, automated application submission, collaboration, or AI features.
Search, filtering, board view, dedicated contact management, and dashboard
insights are planned as later enhancements after the core workflow is complete
and reviewed.
This statement does three things:
- It identifies the user-visible release outcome.
- It names the non-negotiable quality constraints.
- It makes exclusions explicit, preventing them from quietly re-entering the build during implementation.
You can also organize the scope into three practical release horizons:
| Release horizon | Intent |
|---|---|
| Portfolio MVP | A complete, accessible record-review-update workflow with local persistence. |
| First enhancement release | Search, filtering, sorting, board view, richer contact handling, and improved workflow navigation. |
| Future exploration | Dashboards, document attachments, customization, integrations, accounts, and automation. |
Only the first horizon is a commitment now. The second is a prioritized direction. The third is a parking area for ideas, not a promise.
Before leaving this lesson, create your scope document and keep a small decision note beside any controversial feature. For example:
Decision: Board view is a Should-have.
Reason: It can improve scanability, but the user can review and update applications through an accessible list. Build it after the list workflow is stable.
These notes will make your README and case study stronger later because they show intentional trade-offs, not just a list of technologies.
Key takeaways
A useful MVP is the smallest complete experience that solves a specific user problem and is polished enough to test and demonstrate. For the job-application workspace:
- The core outcome is helping a user record, review, and update applications and next actions in one understandable place.
- Must-haves include the core record workflow, readable list, status updates, persistence, and accessibility constraints.
- Search, filtering, board views, and dedicated contact management are valuable enhancements, but they can wait until the core workflow works.
- Accounts, external integrations, automation, and AI features are explicitly out of scope for this portfolio MVP.
- MoSCoW makes trade-offs visible; it does not replace thoughtful ordering based on dependencies.
Next, you will turn the Must-have scope into testable acceptance criteria and a short implementation backlog, so each feature becomes clear enough to build and verify.
Can't find a good explanation? Sign up and we'll make it for you
Sign up