As explained in the first section of this three part series on creating a Freelancer Job Bidding website on WordPress– a reverse auction or job bidding website involves creating a job marketplace, where freelancers could bid for a job posted.
- Job Bidding Website – The Basics, User Roles
- Job Bidding Website – Search, Bidding Options and Communication Channels
- Job Bidding Website – Project Management and Pricing Options
There isn’t an auction functionality per se, but there is service request management, solution proposal system, and job assignment & tracking functionality involved.
Part I of this series covered an introduction to job bidding websites, the concept of a ‘Reverse Auction’, the workflow of a job bidding website and an overview of the user roles involved.
In this article, I’ll be covering the Search use case, Pricing and Bidding options and Communication Channels.
Functionality: Advanced Search Options
The reason why websites like Elance, Guru or Freelancer are successful is because they have the right tools to connect a client, with the apt freelancer.
Sites like these have hundreds of people posting jobs everyday. A freelancer, has to have efficient search options, to find jobs in his domain.
A basic feature to make search simple, would be to categorize job postings. Every job being posted by a client should be categorized appropriately, so that it can be found by the relevant candidate.
The categories should be the domain under which the service is classified, and could be hierarchical in nature. For example, a software development job should be categorized under Information Technology, with subcategory as Software Development/Implementation; a content writing job on the other hand, should be posted under Writer, subcategory Technical Writer.
These categories and subcategories have to be provided as options to filter search results.
Special skills required to complete a job could be added as tags to the job posting. These tags could also be used as suggestions for search keywords. For example, Java proficiency, a 4/5 rating for tasks completed, could be examples of skills required.
As far as the search interface is concerned, there has to be a search box provided on every page, to give visitors quick access to job postings based on keywords. The page which displays search results should have options to filter the search results using checkboxes or sliders to cap results. It’s quite similar to a search option you’d see on a shopping website.
Apart from categories being used as options to filter search results, there should be options to filter results based on job posting date, price and so on.
- Save Search Phrases Option: If a user is logged in, and performing a search based on a keyword combination, the search phrase should be automatically saved, and could be auto-suggested next time he/she performs a search operation, to improve user experience.
- Search Term Suggestions: Based on the keywords being used when searching, search terms should be auto-suggested, once again to improve user experience.
Implementing an Advanced Search Option
The search functionality you need use depends on the scale of your project.
For large scale projects which handle millions of users, with several actively searching for a job posting simultaneously, you need a dedicated search server, such as Sphinx or Solr. A dedicated server helps perform a fast and accurate search and is highly scalable. It also has advanced features search result sorting, filtering options and auto suggest options by default.
For a smaller project size, you could use a WordPress plugin solution with advanced search options; my suggestion would be the Relevanssi plugin as it provides many of the stated features.
Functionality: Bidding Options
The bidding model is based on the ‘Reverse Auction’ concept.
Since there is a need for service providers to compete for the job, every job posting needs to have a bid application form. Only logged in freelancers can bid for a job. A bidding form, might also have a freelancer registration option.
The job bidding form should have fields to summarize a freelancer’s capabilities along with fields to allow him to put forth an convincing proposal:
Freelancer Introduction: To allow freelancers to give a brief description about themselves.
Project Proposal: A section to detail out a proposed solution for the project.
Attachments: Freelancers could upload the project proposal as an attachment, or documents such as relevant portfolio items, etc.
Project Completion Estimates: There should be options to provide a cost and estimated duration of completion. Freelancers are allowed to bid without stating an estimated cost as well.
Bidding Rules and RestrictionsBidding rules govern how and when a bid can be made. For example, there could be options,
- To set a time limit for the bids to be placed.
- To restrict a freelancer from placing multiple bids for the same job posting. (However, an edit or retract the bid option can be made available, before the bids are locked in i.e., before the time limit for bidding expires)
- To apply a penalty on retracting a bid.
- To enforce every freelancer to bid a unique price.
There are several restrictions the administrator can apply on bidding privileges:
Option to Limit the number of Bids per Freelancer: To avoid spamming, there needs to be control over bids made by freelancers. For example, there can be a limit on the number of bids a freelancer can make every month. This can be set by giving credits to a user every month to make bids.
Charge a Cost Per Bid: Each freelancer can be charged a minor fee to bid. This is in case the credit system does not exist, or despite it. Else, a fee can be charged only to the winning bid.
Clients or Job Posters Options
As a client posting a job, there are certain settings provided to control the bidders for a particular job post:
Invite Freelancers to Bid: Based on the job listing, several freelancers, who suit the job profile, may be suggested to the client. Suggestions can also include previous freelancers the client has worked with. The client can send these freelancers (or any freelancer they choose), an invitation to bid for the job. An invitation to bid, allows a freelancer to bid for a job without using bidding credits or without any cost (if applicable).
Ban Freelancers from Bidding: Clients can ban certain freelancers or IP addresses from bidding for jobs posted by them. They also can report certain freelancers as unethical, which can cause the admin to completely remove a freelancers bidding privileges.
Bidding Rounds (Reject/Accept Proposal): There can be an option where bidding could be conducted in two rounds. After an initial round, where anyone is free to bid, the client may reject a few proposals and allow others to move to the next round, where more details of the project might be revealed. This maybe in case the project is confidential or very large, where a team of freelancers may be required to complete it.
Implementing Bidding Options
Bid applications, as mentioned, are forms on a job bidding or freelancer website.
Such forms can be created using the Gravity Forms plugin. A profile summary of the freelancer should also be displayed along with the application, highlighting a freelancer’s skills and work experience.
Site visitors or registered bidders can see profiles of freelancers, who have bid for a particular job. But details, such as the proposal given, bidding price, and estimated time of project completion are available only to the client.
Functionality: Communication Channels
Communication between a job poster and a candidate, is very important for a job poster to ensure that a candidate is suitable for the job. An efficient freelancer job bidding website, should provide several options for a job poster to begin communication with a suitable freelancer.
Private Messaging: Job posters have the option to begin communication with a freelancer, who has bid for a job. This can be provided as a private message board, where each party can exchange messages. Every message placed will send a notification email to the respective parties.
Online Chat: A live chat option can also be provided, which a client and freelancer can use.
There could be a restriction added to ensure that a communication channel can be started only by a job poster and not by a freelancer. A client could also have the possibility to email a freelancer directly, if needed. These communication channels could be made available before a project has been assigned to a freelancer.
What happens next?
Well, after a freelancer has been accepted and the project is awarded, the project management can be brought into the picture using dedicated ‘Project Management’ tools, which extend basic communication channels and introduce project tracking & reporting.
Let’s take a look at, ‘Project Management’ and ‘Pricing and Payment Options’ in the next article.