How to start freelancing on Upwork and actually get clients, with no prior experience
About Me
I'm Manuel, a full-stack developer from Argentina. I started coding around 20 months ago. Now I have successfully started my career as a developer, working with multiple start-ups and client from North America and Europe. I increased my salary x5 since I started 10 months ago. In this article, I'll tell everything you need to know about working on Upwork and getting your first clients!
Upwork is the way
Upwork is definitely the best place to look for clients when starting out. Specially if you don't have experience, are self-taught and live in a poor / third world country. Upwork is filled with clients that go from 3usd/h to a lot more, from all countries around the world. And they're willing to hire people also from anywhere. It's kind of the essence of Upwork.
Another reason is that most jobs move extremely quickly. You'll get called on a Saturday and be hired on Monday, or things like that. There's companies that have hiring processes that take many months. Upwork is easier because someone will need you, and they will need you. You might start the next day and have a deadline of a week to finish the project. The majority of clients are just looking for a developer to get the job done, as soon as possible. That was literally what all the clients I've worked with told me, "no specific date, but get it done ASAP".
You might think that the 10% fee that Upwork charges you is horrible, and I agree. I hate Upwork in some way, but at the same time is the only platform that actually got me clients. Upwork has a real client flow
What you need to know before starting your job hunt
To freelance on Upwork you need 2 things.
Speak english and be able to communicate without much trouble (fluently if possible). You can probably find jobs in your native language (if it's not english), but probably around 80% of job openings look for english-speaking workers.
Be able to provide value. You won't get a job if you can't prove your skills. And if you get one, you'll need to deliver great results to progress in your career.
Before getting my first gig on Upwork, I had 9 months of experience coding on my own, learning, building test projects, etc. I was sure that if a client asked for a blog, a landing page, a CRUD app, or anything similar, I would be capable of doing it. I had already made around 30 projects, including a real-time chat, an e-commerce, a blog, and more.
First step
You'll first need to create your profile.
Get a cool and decent-looking profile picture of yourself. And don't put a straight face like it's a mug shot, try to smile a bit and seem friendly.
Write a description. I don't think this matters too much, so I recommend just writing it by yourself and listing the technologies you know. You have to seem confident, make sure to use affirmations. "Tell me what about your needs and I'll turn them into a website in no time!".
For your experience section, considering you don't have experience, just put personal projects, as your portfolio, your CV, etc. The projects have to be real. Even tho they're test projects, you have to make something that doesn't look cheap. Include projects you're really proud of.
There's two ways of landing jobs in Upwork. Getting invited directly by the client, or applying yourself. The main difference is that you have to pay to apply, usually around $1 or $2 per application. If you get invited you also save a step, since you pass the first filtering and the client doesn't have to read your proposal. You already pass into the interviewing step.
Either way, Upwork grants you 80 connects when you create your account, so that's around 5/6 applications. Maybe this has changed since, but the number should be around there.
How did I manage to get my first 2 jobs?
I got my two first jobs by receiving invitations. IMPORTANT You're not gonna get invited if you don't have a nice profile and good reviews, specially if you're in a field with a lot of competition. If you put React.js on your profile, there's no way the clients won't find a better freelancer than you, with good reviews and charging less. And there's a TON of people with React on their profile.
To actually receive invitations you need keywords. Don't put React, put a specific stack of technologies, a specific library, a more unknown framework.
And why is that?
Imagine someone looks for talent in the searchbar. They will type "React" and will never find you. If they look for "TanStack Query", or "Three.js" or something like that, only a couple of search results will appear. To stand out you have to play the odds. Of course you can still put React or whatever mainstream technology, but make sure to fill out all the skills slots to not miss on any chances. My first job invite was because I had "T3 Stack" in my profile, a tech stack based on Next.js, made by an influencer which I liked at that time. I got my second job cause I had "Vector Databases" in my profile, a subset of AI. If I had only Next.js or just AI in general, I wouldn't appear on the search results for this job.
Getting a job by applying.
Upwork is different than LinkedIn or the rest of the more "classical" markets, with well established companies. As I said before, you have to be quick. Don't ever apply to a job that already has 50+ applicants if you don't have experience, you will never make it. Aim for jobs that were posted like 4 hours ago max. This might vary, but is mainly related to not letting the clients find more options (because they will see you and you'll be so good that they will feel confident on hiring you right away!). You might have to pay additional money to send more proposals. The proposals I sent with my free initial connects weren't even seen.
When you're sending your proposal, make sure you're doing 3 things. Try to provide value upfront, ask to hop in a call constantly and give good vibes. On my second job, I gave 2 possible solutions to a complex problem my client had. How couldn't he hire me? If already on my proposal I told him what to do exactly. I just had to code it.
Also, make sure to ask to hope on a call, since it's the best way to stand out and shine from day 1. You join the call, show yourself confident and happy, and nothing can go wrong. You can also be friendly and talk personal aspects with them, like what did they do during the weekend.
After talking with them about regular and casual topics, be ready to talk about your professional aspect/experience. If you don't have experience, don't lie. Talk them about what you like about coding, complex problems you have solved, etc. If the client sees you are amazing working with Tailwind, based on your test projects, they will possibly hire you without any professional experience.
I got my last job because a client invited me to have an urgent meeting, on a Sunday at 9am. I was barely awake but took the interview, and 1 hour after that I got an offer. This applies for both, job invites and job applications. You have to be the first one to apply (or the second/third if the two firsts were discarded instantly).
You have to pick your jobs wisely, because connects are limited. Try to lowball yourself at first. For example, my first job was a $65 project. Of course it wasn't much money, but it's not bad. That same client really like me and decided to trust me for future projects that had better payments, even tho I felt my work could be worth a lot more. Sometimes you have to appreciate the opportunity you have and leverage it, to get a better review, or a referral, etc. The most important thing is the 5-star review.
I got my first job! Now what?
Getting your first job is the most important thing, and probably the hardest. But don't think you have made it already. You have to stand out now. No matter what the job is about, or how the client is, try to deliver the best work possible.
The hardest thing to deal with is done! You already got the job, just have to put everything in practice now, and actually code. Don't be afraid to ask your clients for a super cool review if you know you deserve one. Top-notch reviews are the only thing that will make you stand out compared to a guy that has 10x more jobs completed than you.
How much should you charge?
I have a strategy to measure how much the Upwork market is willing to pay me. I'll systematically change my profile's rate (X usd/h) based on the amount of invites I get weekly. If you don't have a job at the moment and are struggling to get another one, of course you can change your rate and ask for less.
At first, aim high. If you're not receiving enough invites to secure another job quickly, consider decreasing your rate progressively. If you're currently charging 20usd/h, ask for 25usd/h. And just wait for proposals. Try to increase your salary like 10% or more each time you finish a project and start another one.
If you get the typical $30 fixed project that demands you an entire week of work, maybe that's a red flag. But also make sure to be realistic and grab anything that seems viable and that won't hurt you mentally or physically. The review is worth it, see it as an investment.
How to build long-term clients
Make sure to actually talk with your clients. Exchange valuable info with them, get to know them a little bit more if they're sociable and also like to interact with you. I have made great friends that were initially my clients, that now talk with me regularly about business, software, AI, etc. This is a way to make sure you'll never run out of work. I can just ask them and I know they trust me to take on another project.
How to perform really well and get 5-star reviews
You have to be really commited. Overworks if necessary, do whatever it takes to get the 5-star review. Join all the meetings, communicate constantly, give advice on the possible solutions for a problem and give opinions, if you think they will be valuable to the business of your client.
Freelancing on Upwork is scary sometimes. If you get a job, you NEED A 5-star review, a 4-star review is not good enough. Your clients will ask you for stuff and you'll have to figure out the way to make them a reality. No matter what it is. No one will help you.
You'll actually learn to code when a client asks you to do something in a technology you have never used, a topic you have never explored, etc. Try to never ask for help if you're doing something that has been done a lot of times before (like a blog or a basic CRUD), even if a Senior Developer can solve it for you in 2 minutes. Senior developers can solve it for a reason, because they've already faced a similar problem and know how to search for a solution. The most important thing as a self-taught developer is to know how to deal with emotions and handle frustration. At some point you'll face a situation called valley of despair, when you face a problem that gets you stuck for days and you don't know how to solve it. **Deal with it, don't avoid it**. The earlier you face this situation, the better. And you definitely don't want to go through it during your first job.
Interesting data about freelancing based on my experience
Jobs last between 1 week and 3 months, at least in my experience. This gives you freedom to maybe take a break if needed, and also increase your rate after receiving a good review. At the same time, freelancing will give you anxiety. Nothing is secured, you might find yourself looking for a job really soon. A stable job in a big company will be much simpler than freelancing, in terms of work-life balance.
If you're from a third-world country, it's your best chance to find good clients that pay well, without having a long career on your back.
You will learn to work on your own. Progress will be faster but you might encounter things that you do one way, but it's not really the best way to do it according to bigger organizations.
The end
This blog post covered a lot of topics but there's still a lot of things that I could have added. Let me know if you want me to write about how to get paid on Upwork (from anywhere in the world). How to avoid additional fees along the process, how to spend the money in USD, and how to leverage crypto to manage your freelance earnings.
I can also write about how to make it as a self-taught developer, which is probably what most people are looking for but don't know how to do.
Feel free to send me a DM on LinkedIn or an email, if you have any questions or just want to chat :). I'm open to new opportunities, so feel free to contact me for any job opportunity. I also offer paid consultations where we can have a video-call and talk about your career, what path to choose, make a learning roadmap...
Thanks for reading and hope this helps!
Subscribe to my newsletter
Read articles from Manuel Gudiño directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Manuel Gudiño
Manuel Gudiño
I'm a full-stack developer, passionate about new tech and acquiring knowledge. I like to share my personal projects and experiments with the community!