There are different ways to tackle this:
1. Find an Open Source system that is Reasonably Good
Install it and live with whatever it provides. If you have the skills and time, you can modify / extend it. I found one called JobberBase that you may want to look at.
2. Do some custom work on top of an existing CMS
You need to have a pretty good knowledge of the CMS to do this (and pretty good PHP skills)
3. Build from Scratch
You would need expert skills and lots of experience along with lots of patience and time and/or lots of friends with expert skills to do it that way.
I suggest you look at JobberBase and any other open source systems that you can find and then pick one and install it.