Question: How do I allow angelgomez.eth to edit this post?
This was also written in Notion, so some links doesn’t work as expected (e.g. move to a section “Creating an Organization” when clicking on a link). You can find the original Notion page that we wrote here: RFC: User Stories for DAO Job Board
Overview
A job board to connect web3 talent with web3 opportunities. Everyone has the freedom to do all sorts of things in the job board, everyone can create job/gig postings, everyone can apply to job/gig postings, everyone can be a part of an organization, and whatnot.
Potentially gets rid of unnecessary overhead (i.e. changing profiles, signing up with other wallets when they decide they want to hire people, or when they decide they wanna look for gigs, etc.)
The Motive
Finding meaningful work, giving people new opportunities, and helping organizations find the talent they need.
User Stories
A high-level overview of all the app’s features.
This helps define an MVP by excluding the listed user stories ****to cover in a certain Milestone.
-
Below, you’ll find our user stories explaining WHAT we pretend the app to deliver in the short and long term.
On-Boarding
Everything is described from the perspective of a new user. This should be as user-friendly as possible to reduce any overhead that could cause people to get annoyed.
In fact, we’re thinking of letting people Create Jobs/Gigs without having to create a profile (even though it is helpful). Also, people can
- I want to sign up using my wallet
(i.e. Sign in with Metamask ) - I want to select what I wanna do in the app:
-
"I want to look for people to hire for a job"
- I want to get asked if I want to create an organization or request to join an existing organization that I may be a part of
Requires existing organization members to vote on accepting a join request for a new member, this creates consensus in the organization that the person that they know the person that wants to join the organization
- I want to skip ahead and set up my profile instead.
- I want to setup my profile
- I want to skip setting up my profile and do it later.
- I want my wallet address/ENS to be in the URL
-
"I want to find jobs & gigs"
- I want to setup my profile
- I want to skip setting up my profile and do it later
- I want a job list (relevant to my profile)
- I want a gig list (relevant to my profile)
- I want my wallet address/ENS to be in the URL
-
Main Flow
-
I want to filter jobs depending on my profile’s keywords.
-
I want to find jobs from a list.
-
I want to apply for jobs
-
I want to apply for gigs
-
I want to view all my job applications and filter them by status, so I can keep track of them and would know the next step
These status names are not yet finalized, if you can come up with a better name or better set of statuses please don’t hesitate to suggest.
- I want to get notified when my job application status has been updated and click a link to redirect to the page
-
I want to view all my gig applications and filter them by status, so I can keep track of them and would know the next step
- I want to get notified when my gig application status has been updated and click a link to redirect to the page
-
I want to see a roadmap page for the app so that I will know what to expect that gets shipped sometime in the future
- I want to get notified by subscribing to a newsletter to get updates whenever a certain set of features or Milestone is shipped
-
I want to view a list of job applications that have applied to my created job posting
- I want to update the status of their job application whenever I want to let them know if we want to move things forward
- I want to get notified when someone have sent a job application
-
I want to view a list of gig applications that have applied to my created gig posting
- I want to update the status of their gig application whenever I want to let them know if we want to move things forward
- I want to get notified when someone have sent a gig application
Setup Profile
-
Username (it will let people choose their own username they can be found within the site)
-
Optional: add email ****(allow people to
-
Optional: add an avatar (from file or link)
-
Optional: add Bio (a brief description of the user within 50-100 words)
-
Optional: Add Status (e.g. “Looking for developers”, “Looking for designers”, “Looking for smart contract auditors”)
These statuses will depend on the user’s specific needs (Looking for a Job/Gig or Looking for People, Just Looking Around, Not Available, etc.)
-
I want to add social media links & various external links
-
I want to select POAPs & Completion NFTs to be featured on my profile card
POAPs & Completion NFTs can be automatically attached to the profile and allow them to select which ones they want to feature while also allowing everyone to view all of their POAPs & Completion NFTs.
-
I want to add my experience as a professional
-
I want to add my education (college, courses, boot camps, etc.)
-
I want to add projects I’ve worked on in the past (personal projects, work projects, hackathons, etc.)
Creating an Organization
- I want to upload or use an existing URL for a logo that represents our organization
- I want to upload or use an existing URL for a cover photo for our organization that gets displayed on the organization details page
- I want to name my organization
- I want to write a brief description for our organization
- I want to identify my organization as a DAO, a company, a small team
- I want to add social media links & various external links
- I want to add certain members by their wallet addresses, they do not have to be signed up in the app but just their wallet address would suffice
Creating a Job/Gig Posting
- Job Posting
- I want to identify the target position for this job posting, so that
- I want to write up a brief description for this job posting
- I want to write detailed information for this job posting (using WYSIWYG)
- I want to select up to 10 keywords that are relevant to the position & responsibilities
(e.g. backend, smart contract, infrastructure, oracle, frontend) - I want to add compensation details
- I want to indicate the type of opportunity
(e.g. Full Time, Part Time, Contract) - I want to add a link that points to a website where we originally have the job posting for our organization
- I want to receive applications directly on the job board (helps separate job-board and DAO candidates from the rest)
- I want to to
HIGHLIGHT
my job post (stands out from others) by paying a small fee
- Gig Posting
- I want to identify the target position for this gig posting
- I want to write up a brief description for this gig posting
- I want to write detailed information for this gig posting (using WYSIWYG)
- I want to select up to 5 keywords that are relevant to the position & responsibilities
(e.g. backend, smart contract, infrastructure, oracle, frontend) - I want to reward people who help me in these gigs with crypto
- I want to deposit crypto on user selection (optional)
- I want to pay people directly for helping me with a gig (optional)
- I want to sign up using my wallet
How to make this possible
Even though we already have a prototype and some front-end + back-end code working, there’s still a lot of work to do before we release an MVP. The process will consist of a few key steps.
1. Define the MVP features
What do we want the application to look like in its first iteration? Here are some ideas:
-
The
Sign Up
button will work as the registering method for the site. Using the wallet address as the core piece of data for each user, we will build profiles (like OpenSea). This keeps people from having to remember user/passwords + helps maintain a cleaner profile. -
This form contains everything the user needs and may want to add to stand out. This includes several pieces of data like:
- PFP
- Name
- Username
- Professional Title
- Description
- Status
- Profile keywords
- Website
- Links (Github, Twitter, Behance, etc.)
- Location
- Projects
- Education
- Experience
NOTE: All these inputs will be optional. If users decide, they can use their wallet address as the only piece of public data about themselves (NOT RECOMMENDED)
-
This is what users will see when they look through people’s profiles. Each profile will contain all the information entered in the create profile form (above).
NOTE: The profile page should be as clear as possible about a user’s skills and worth.
- The PFP, name, and professional title will be the first few things to show, then followed by a description and profile keywords
- It should HIGHLIGHT people’s projects (like a portfolio)
- It should show EXPERIENCE and EDUCATION below everything else
- Also, each profile page will have an URL using their wallet address with which they signed up (e.g.[job-board.com/u/0x13j2m32m1](http://job-board.com/u/0x13j2m32m1)
which would change if the wallet is matched to an ENS name, in which case the profile link will look like thisjob-board.com/u/ensname.eth
) -
This page will contain every developer, marketer, designer, etc. signed up on the site. Here’s what it should include:
- A list of users with their name + professional title + keywords related to their skills/experience
- A button on each profile item with something like
See Profile
orLearn More
that links to the user profile. - A floating modal for the filter fixed to the page that travels with the user as they scroll down
- this modal will include a filtering input where recruiters and other professionals can search for specific keywords or people’s names.
- several select/radio options to filter through people depending on their location and other information
-
Makes it possible for users to create jobs. This form will be a 3-step form that consists of:
-
Basics
-
Title (required)
-
Description (required)
Maybe it would be necessary to break down the description into different parts, like the following:
- Overview = brief description of the job
- Responsibilities = what the job entails and what the candidate will likely work on
- Requirements = what the organization/recruiter is looking for on each candidate -
Job Position (Marketing, Engineering, Customer Support, etc.)
-
Type of Job (Full Time, Part Time, Contract, etc.)
-
Job Keywords (required)
This one will define the categories in which the job post will appear within the site. After clicking the
Select Keywords
button, a modal will show that will allow recruiters to show the categories, skills, and keywords related to each job post (Blockchain, Solidity, EtherJS, Hardhat, Social Media, etc.)
-
-
Details (Optional)
- Salary (either Crypto or Fiat and let people choose between different currencies like ETH, BTC, DAI, USDT, USD, EUR, GBR, etc.)
- Compensation (Equity in percentages and bonuses like stipends, etc.)
- Location (defaults to remote if left blank)
NOTE: All these
Details
will be optional. If the person decide to keep them secret, that’s possible. However, it’s encouraged to fill everything to increase the quality of candidates. -
Summary
People will get the opportunity to REVIEW the data entered in the previous 2 steps (Basics and Details)
- It will show a list of
Basics
where people can review the Title, Description, Position, Type, and Keywords. - It will show a list of
Details
where people can review the Salary, Compensation, and Location - It will have an input where recruiters can add their own email or job post link for candidates to apply**.**
- It will show a list of
-
-
This is what users will see when they click on a job post. Each job post will contain the information entered in the create profile form (above).
- Each job page should have a form for Seekers to apply. Job seekers can add their resume/CV to their application as well as any links related to the job.
- Each job page should have an
Application List
of candidates (only Recruiters will see this list) where they can choose from. This will help reduce competition from other places + give an easier way for recruiters to sort through candidates.
NOTE: Each job page should be as clear as possible with information about the position. Also, it should show stuff like:
- Keywords below the job title (for friendlier categorization and UI)
- The PFP and name of the user who posted the job (later, we will add the avatar/name of the organization)
- Also, each job page will have an URL starting with the recruiter’s address or organization name + the job post title (e.g.job-board.com/jobs/username/marketing-manager
) -
This page should contain every job posted on the site, organized by the date of posting.
- A list of jobs with a title + position + type of job + location per job item entered in the form above
- A button on each job item with something like
See More
orApply
that links to the job. - Each
USER
will have jobs curated for their profile (jobs with keywords related to their profile higher up the list) - A floating modal for the filter fixed to the page that travels with the user as they scroll down
- this modal will include a filtering input where job seekers can search for specific keywords related to each job
- several select/radio options to filter through jobs depending on the
Position
,Type of Job
,Location
, andSalary
range.
2. Get Designs for Current MVP Features (from the #design-guild)
Once we have the MVP defined (user stories with possible features later), it would be great to send EVERYTHING to the design guild so they can start working on the designs. This would make it easier for them to develop a practical design system + mockups for each page talked about above.
So far @jazza.eth
from the design guild showed interest in helping with the job board design system.
Before we proceed with the front-end development, it would be great to have:
- A design system (typography, shadows, colors, etc.) (Important)
- Mockups for the MVP Features described above (Wallet Login, Job and Profile Forms, Users and Job lists, User and Job pages) (Important)
NOTE: Because the MVP will be simple at first, we don’t need a complex design system or mockups. For the MVP, we want to focus on the best user experience possible.
3. Start Development
With the designs and mockups ready, we can start developing the front-end pages as given by the #design-guild. However, it would be ideal to tackle the development in an organized way, which makes it easy to achieve our goals for the MVP faster and more efficiently. Here’s what’s proposed:
- Select a group of developers to work on the MVP (limited spots to 3-10 people to avoid clogging the repo). Then proceed with this:
- Assign a mockup per developer so they can translate them into code
- Assign developers the creation of
routes
to connect with the database - Assign developers the connection of these routes with the front-end
- Assign developers the task of testing routes + front-end components
- Test everything to prepare for the MVP launch
4. Launch MVP
Once the pages are hooked up with the database and everything works as expected, it’ll be time for the MVP to be finally launched. We expect to launch the MVP only to DevDAO members at first, so people looking for devs can post their job opportunities and developers can apply.
Once the MVP is launched, we’ll start the next steps in development:
- Iterate and fix bugs
- Scale the site if necessary
- Plan new features (Gigs Page, Gigs List, smart contract functionality(?) and Organizations) with RFC and User Stories
- Repeat the same Design + Development process
- Launch the new features
PS: carlomigueldy.eth & angelgomez.eth wrote this first RFC for the Job Board project if anyone might want to ask questions etc.
GitHub repo GitHub - Developer-DAO/DAO-job-board: A job board connecting DAOs with talent.