Hartley Brody

The Full Time Employee's Guide to Generating Freelance Clients on the Side

There are many reasons to begin freelancing while still maintaining a full time job. Whether you want to work on new projects outside the scope of your current role or make some extra money each month – or maybe you’re hoping to eventually jump into freelancing full time – getting your first few clients can be really rewarding.

But how should you get started? I’ll cover that in this article.

We’ll go over ways to build your expertise and generate demand for your time. Then we’ll talk about generating potential leads and how to convert them into paying clients. Finally, we’ll talk about some tips for your pricing conversations.

In a future article, I’ll talk about different styles of project management, easy ways to exceed your clients’ expectations, how to handle some of the legal and administrative issues you’ll face, and how to feel comfortable raising your rates. Make sure to subscribe for updates!

Freelance tips

Personally, I’ve worked with dozens of clients over the past few years across several different business problem domains. Some of my clients are one-person operations while others are large organizations that have run Super Bowl ads.

I learned a bunch from both my successes and my mistakes along the way as I was getting started, so I figured I’d put together a guide for other people who might want to follow a similar path.

Building Credibility: Creating Demand for Your Time

No matter what sort of work you want to do, the first question is always: where can I find leads that will make good clients?

Old School Outbound
A lot of times, people think that they have to turn to “the big sites” and sift through tons of vague project descriptions and compete with the bottom-of-the-barrel prices from overseas development farms. Or else they start attending networking events hoping to strike up a conversation with the right person.

The problem is that you waste a ton of time wading through projects and having dead-end conversations. And as a full time employee, you probably have even less time than the average freelancer to do all this work of finding clients.

Pulling in clients this way means that every new client can only be won after hard-fought, hand-to-hand combat. You have to connect with them, find out about their project, show them a meaningful portfolio, convince them you’re smart and trust worthy and beat out anyone else they’re considering for the work.

Not an easy task to accomplish if you have no connection to the person and no experience or referrals to back up your work.

Building an Inbound Pipeline
Instead, you should focus on building a pipeline of inbound interest for your talents and skills. Ideally, you’d want people to already know that you’re really good at what you do. Then, you’re in a position where people are reaching out to you, hoping you can help them.

Inbound Client Pipeline

It’s no longer an uphill battle to convince the potential client you can deliver value – your reputation proceeds you. This lets you pick and choose the projects you work on.

Since it took no effort to find this client, you don’t feel like you have to work for them. This lowers the marginal costs for finding new clients and learning about their projects.

Starting From Nothing
Now you might be thinking that this only happens once you’re an established freelancer and have a large portfolio of companies spreading word-of-mouth referrals.

But the reality is that you can build up interest in your skills without having any previous clients at all.

The secret? Creating helpful content around a problem domain.

Do some inbound marketing and write some articles around the types of problem you like to solve:

  • Write about tips for getting started with solving that problem
  • Write about common mistakes people make when solving that problem
  • Write about power tips someone might not know about solving that problem
  • Collect a list of other great resources where people can learn more about solving that problem
  • Make some tutorials on using common technology that solves that problem

Publish that content on your own personal blog (you do have a website, right?) but also see if you can submit a guest post on other sites that operate in that problem space, and submit your content to relevant tutorial websites.

Once you have a few articles out there around that problem or topic, you start to become the most well-known “expert” on the internet around a topic.

People who are doing research or have that problem and are looking for help will see your name over and over again and will eventually want to reach out to this person who seems to know so much.

You’ll start getting inbound interest for your time and you won’t need to chase after prospective clients, convincing them you’re great. They’ll come to you, already trusting that you know what you’re talking about.

Picking a Problem Domain
You might be thinking, “Great, I’m pretty good at writing code in {programming_language} or using {web_framework}.” And while there are plenty of people out there who market themselves successfully as a “Pythonista” or “Ruby on Rails Mercenary”, I’d argue that marketing yourself around a particular technology is a bad idea.

Instead, you should think about a business problem or domain of problems. Things like:

  • Improving the speed of business reporting tools and analytics queries
  • Designing and building user interfaces
  • Integrating enterprise software systems from different vendors
  • Quickly building minimum viable web applications
  • Web scraping and data collection

Thinking about your current job, you’re most likely not entirely focused on working with Technology X, but on solving some class of business problems. If you were to describe your job to a non-technical person, what would you say you work on?

Those are the kinds of things you should market yourself around.

Demonstrating that you’re an expert at solving business problems, rather than simply wielding a particular technology, will make it more likely to be found by non-technical clients (ie, the vast majority of them) and make it much easier for you to ask for more money, which we’ll get to in a bit.

Generating Your First Leads

Obviously, if you’ve got people reading your articles all over the internet, you want to be able to capitalize on that and make it easy for them to get in touch if they’re looking for more help on a project.

The easiest thing do to is have a single “Contact Me” page that you can always direct people to. But don’t just put a contact form or list your email address on that page and pat yourself on the back just yet.

If someone is visiting this page, they’re probably going to be a bit anxious.

They’re about to reach out to a stranger across the internet (you) and tell that stranger about a problem they’re having and need help with. Wouldn’t you be a bit nervous?

You want this contact page to focus on alleviating their anxiety and making them feel more comfortable reaching out to you.

welcoming clients and leads

You should include a little blurb about who you are, where you’re located (if it matters), what sorts of projects you like to work on and a bit about the organizations you’d like to work with.

An important thing here is to be specific. Don’t say you’ll work on anything and with any kind of organization or it won’t seem genuine. I’d humbly suggest checking out my “Contact Me” page as an example.

You might also consider giving people multiple options for getting in touch with you, besides just email. Some people just love doing phone calls, and while I usually try to avoid them for a first contact, I wouldn’t want to lose a big client because of that preference. I’ve also encouraged people to reach out on Twitter, and that’s led to a few great relationships as well.

Turning Leads Into Clients

If someone is interested in your expertise and decides to reach out, that’s awesome! You’ve got your first inbound interest for your time.

But you haven’t sealed the deal yet. Even if someone thinks you’re knowledgeable enough to reach out to, the next thing they have to decide is whether they think you’re a person they trust and want to do business with.

When you’re responding to inbound emails, it’s important to make sure you’re having productive conversations while also appearing professional.

Make sure that you do the following:

  • Write polite, well-formed emails that get to the point quickly
  • Ask questions so that you understand what their expectations are
  • Refer to previous work and clients, if applicable
  • Include a professional email signature

All of these ensure that the client takes your seriously, and transition you in their mind from “some expert stranger on the internet” to someone that they know and trust to do good work.


After you’ve gone through this sort of conversation a few times, you’ll get a much better sense for the type of information you need to learn about the project.

I’d recommend writing a form email or canned response that asks several pointed questions, so that you can respond quickly to any new leads.

Here are the things you’re probably trying to learn:

  • What is the scope of the project?
  • What is the deliverable, specifically?
    • Am I giving them code? data?
    • Am I hosting it for them?
    • Do the technologies/frameworks I use matter?
    • Does it need to integrate with any of their existing systems? How?
  • What is their timeline for getting the work done?
  • What is their budget for this project?
  • Is this a core part of their business or a side venture?

The template I use looks something like this:


Thanks so much for reaching out! I’d be happy to learn more about the project. Do you have a proposal you could send over? Specifically, I’d like to know:

<a big list of questions, and I delete ones that aren’t relevant for this project>

Let me know if you have answers to those questions and we can see if it’ll be a good fit!


It’s quick and to the point, and focuses mostly on their needs. I might mix up the list of questions I include depending on how much information they gave in their initial email.

Usually, if the project is sufficiently complex, you’ll have to hop on a phone call with the client to go over details. Pro tip: Always include timezones when scheduling calls or meetings with new clients. The internet is a big place, and you don’t want to miss a call and lose a client because you both assumed you were in each others’ time zone. Learn from my mistakes!

Tips for Having Pricing Conversations

money bags
Pricing conversations are hard and it’s impossible for me to present a one-size-fits-all solution. Sometimes you’ll have clients with a clear budget in mind that they won’t deviate from, other times they don’t really know what their price range is and might need you to help set their expectations.

Here are a few tips to keep in mind when you’re having those discussions:

Don’t Position Yourself as a “Coder”
When you’re first engaging with a client about working on a project, your goal is first and foremost to understand their business problem and how your expertise can (or can’t) help.

If you don’t know anything about their particular industry, ask them questions about their business – not just tech questions – in order to get the business context of their problem.

At the beginning of your conversation, try to avoid talking about or even mentioning technical topics like programming languages, frameworks, databases or hosting providers, unless the client insists on discussing it.

Instead, find out more about the potential users of the thing they’re asking you to build. What are their goals, and what are they currently doing to try and solve them? What are the main issues that caused this person to even reach out to you in the first place and what other options were they considering?

These might not all be appropriate questions in every circumstance, but your initial conversations should always strive to learn as much as you can about their problem at a business level, in order to focus the conversation on how you can help them reach their business goals.

Tell Them When They Shouldn’t Pay You
This also means that you should be willing and ready to suggest non-technical solutions to their problem, or solutions that don’t involve them paying you. There might be an API that already exists or a service they should try that’d be cheaper than paying you – tell them this.

Even though it seems like you’re walking away from work, you now have a person who trusts you to look out for their interests and help them solve their problems.

I’ve had clients that offered to pay for my time on the phone because I gave them advice on how to solve their problem for much cheaper than paying me to do the work.

You’re now their go-to “technical guy” and they’ll mention you to their friends and reach out again the next time they have a potential job. Now you’re building a network of people who trust you to help them, and those people are helping you by spreading word-of-mouth referrals. This is a great position to put yourself in if you want regular, repeat clients.

Don’t Bring up Pricing Too Early
Try to avoid nailing down a price until you’re sure you really understand their project and the business context behind it. You also want to give yourself a chance to convince them that you care about solving their problems and not just writing code.

I usually try to mention previous experience or anecdotes of things that have or haven’t worked in the past before pricing comes up, to show that I have experience solving their problem and that I’ll be able to bring that knowledge and wisdom to tackle their problem.

Avoid Per-Hour Pricing
For well-defined projects, go with an overall project price, instead of a per-hour price. Clients generally like this since they know what their bill will be up-front, and it’s also great as the freelancer to have this number in mind too.

Now, for this to work well, you need to make sure the project is well-defined in writing before you get started. And then during the project, you need to make sure you communicate early and clearly when you feel like things are outside of the original scope and will cost the client extra.

Some people like to charge per-hour since it discourages clients from adding extra fixes and changes along the way. If you have a client that’s like this, then maybe charging by the hour is a good thing. But that also incentivizes slow development.

I have found that charging a per-project price forces you to find the most efficient way to get things done, and really aligns incentives between you and your client.

Have a “Minimum Project Size”
Whenever you’re taking on a new client, you should have you “minimum” project price in mind. Never take on “just a quick favor” for $20 because that means your client is really looking for something cheap. Steer these people to “the big sites” like eLance or oDesk.

Whenever I’ve made an exception to my minimum project price, I’ve regretted it. Clients that expect to get you for less are usually very fussy and will balk at the slightest push-back you give about needing to charge more if they expand the scope or problems arise. Having a minimum filters out the yippy clients who will be a drain on your time and not compensate you properly for it.

At some point in the discussion, you should try to say the sentence “I’m probably not the cheapest person to do this work for you.” If this scares the client away, then they’re optimizing for low price over everything else and most likely would have been a bad client. But if they’re willing to pay a premium for your time, they think you’re worth it and will treat you as such.

Stick With Your Price Tag
Finally, never negotiate against yourself if they balk at your price. Sometimes you’ll offer a price and they’ll kinda drag their feet and wait for you to lower it for them.

These clients are bad at communicating and are going to keep expecting you to offer more for less throughout the relationship.

It’s not worth lowering your price to take on a bad client who’s going to demand more of your time anyways. That’s a lose-lose.

You’re doing this nights & weekends so presumably you don’t need their money. That puts you in a good position to stand by your quote.

I’ve had people get mad when I quote them a price. By being upfront about a price and sticking with it, I was able to avoid what would’ve been a terrible client, and I’m much better off that I didn’t engage with them at all.

Get Started!

As a full time employee, you won’t have a ton of time to start finding clients for freelance work, so it’s important that you build up an efficient pipeline. At a high level, you should focus on:

  1. Finding a problem domain you can become an "expert" in
  2. Creating content that helps people solve that problem
  3. Encouraging the readers of that content to contact you
  4. Responding quickly and professionally to turn leads into clients
  5. Negotiating a project's price well so that you stay happy & motivated

Hopefully this has given you enough information to start generating some freelance leads in your spare time. I’m happy to answer more specific questions if you have them.

Discussion on Hacker News.