The gist is: If you want your business to be independent, sustainable and profitable in the long run building a network to draw upon is essential.
Don't put all your eggs in one basket by exclusively relying on recruiters or - worse - sites like Upwork.
Have a professional online presence, i.e. website, that's controlled by you. It probably won't immediately help you with getting projects through organic search traffic but if executed well a professional website can help convince potential clients that you're the right person for the job.
While you can outsource aspects such as marketing and sales you should be aware that in that case not only will you be leaving a lot of money on the table (because someone else higher up the value chain will capture that value for you) but you'll be dependent on third parties other than your clients, which means that your freelancing income can dry up at any time.
I much prefer when clients come to me. For this to happen, you have to increase your "luck surface area" - the more you demonstrate competence and value in public, the more chances that clients will find you and reach out.
1. Participating in online communities like Hacker News. I once said in a comment "oh hey, I was a digital nomad for a couple of years and did part time Django work." To which someone replied, "Are you still doing part time Django work? I need someone." They have been my best customer for the past year. Also, make sure your HN profile has your freelancing information in it.
Post every month in the who's hiring freelancers thread. I've gotten a few gigs there.
See if your city has a city-wide slack channel. Chicago where I am has a very large one and hanging out there has exposed me to a number of opportunities.
2. Be helpful. Someone from my college once asked me how to freelance, so I took them out for coffee and spent three hours discussing the ins and outs. Three months later he emailed me saying "I decided not to but do you want this client I found?" That client ended up paying me around $12,000 in the end. People like reciprocating help.
If I see someone asking a question about freelancing, I usually try to give a good answer. Some people use Twitter and post little tips. Some people give talks at local meetups.
3. Bring up often that you freelance as it makes sense. Don't be obnoxious, but let people know what you do. Nobody can ask you to freelance for them if they don't know that you freelance. My longest and best client ever knew that he needed a developer, and went back to my university and asked "do you know any freelancers?" I was the only one the professors knew who had said they were going to freelance, so they referred me.
4. Work in public. I have a mailing list where I write about how to freelance. I recently got an email from a reader saying "hey, we like your emails. Want to work for us?" One of my current best clients.
One of my colleagues has found good work from an open source Django library he maintains. His client of over 7 years was using that library and reached out because of the link to my colleague's website in the Readme.
I once got a client from sitting in a coworking space. A guy I had talked to and told about my freelancing said, "hey I'm getting a full time job, want my client?" Client for 3 years.
5. Keep in touch with everyone. This is a little more labor intensive, but super powerful. Using a spreadsheet or a CRM, regularly send emails to people you've met. Try as much as possible to provide value when you do, whether just asking how they are, giving encouragement, showing them useful articles, or making them aware of opportunities you think they'd benefit from. Don't try to sell, just build relationships. If at some point you need work and don't have anyone, you'll have a large network of people who remember you and will be sympathetic.
So, is the answer to be a digital nomad, take college grads out for coffee, have an email list, tell your college department you freelance, go to a coworking space, and maintain an open source library?
Well, no. If you had asked me to tell you two years ago how I would get all of my current clients I would have never been able to predict the exact methods. But as I said, a high "luck surface area" is what makes this work. Doing some combination of the above can make you a pretty "lucky" person.
All of my current clients came to me, and they are all wonderful to work with, pay well, I never have to chase down invoices, and selling to them is way easier because they are already sold on hiring me from what they've seen me do before contacting me.
Also, how can I find out more about your mailing list?
1)Facebook Groups. It's a little bit tough but I had some success there. Groups like Startups Jobs, Jobs in San Francisco, Remote Jobs in Startups etc.
2) Freelance Marketplaces. Upwork (upwork.com), Freelancer (freelancer.com), and Periodix (https://periodix.net/). It's a new service but helps me a lot already. I found this service in Reddit and didn't expect great results. But I found something reasonable for myself and be hired fast.
3) Linkedin. Recruiters write me every day.
4) Local Websites. I check every day local job boards to find a local project. Because it seems faster to be hired.
Facebook groups - good idea, thanks I'll check them but I'm afraid it will take a lot of time to define those groups and to find a good job there. What is your experience there?
Thanks for Periodix, looks like something interesting - I've already signed up and it shows pretty good jobs matches for me. Will see if will land a job there soon.
On Facebook Groups, you faced competition and sometimes clients don't reply to you because Messanger doesn't show you mails not from your friends. They are hidden. So, I don't like it much.
I did DevOps and it took more than a month to go through the process. There is a need for that specialty more than others, so that likely had some impact.
They filter both the clients and freelancers so you get quality on both sides. My experience is very positive for now.