I just built an AI agent that automates upwork job applications now I've made about 500 Grand on upwork to date as I'm sure you can imagine I've learned a lot about what works and what doesn't sometimes the hard way um what I've come to realize is that the main distinguishing factor in a good upwork application versus a bad one is the degree of perceived customization and the degree of perceived value so what I've done here is I've built an nadn AI agent that produces a lot of both I've also included the workflow Down Below in
the description so if you just want to cut ahead and actually get it for yourself just check that down below so the way that it works is just like any agent we expose a chat window we then go and we grab an upwork job posting preferably something that includes some context about what the person wants and how they want it done so I'm just going to go here and then copy in all of this and then we just paste it in the flow then calls three subflows the first is an upwork agent that generates a
Google doc proposal which ends up looking like this this is written in best practice it's everything that I've learned in building uh a highly successful upwork profile that's generated over $500,000 after that we'll then generate um a proposal reply so basically in order to respond to a job on upwork you need what's called a CV and so this will actually go ahead and generate one for you again based off best practices with a little area called about me that you can paste your own details into and then finally it'll go and generate what's called a
mermaid diagram and for those of you that don't know a mermaid diagram is just a quick and easy way to essentially get a bunch of workflow code which we can copy and paste into any platform to produce what looks like a highly personalized and very valuable workflow that you just bent over backwards to create you can then do whatever you want with this you can screenshot it you could send it to them you could make some edits to it you could add it to like a bigger proposal to send over um but the Crux of
it is uh you end up with this message and all you do is you just copy and paste this message when you go to apply to said job you then scroll down to the CV part and then you put that puppy in there that's about it um this aut Ates a pretty core and unique feature of upwork job applications not specifically for people that are running automation companies but just anything that you can Envision as a process and today I'm actually going to be building it out with you live um step by step so this
isn't just going to be one of those situations where I show you the finish product and then run through it I'm actually going to show you guys what a real live build process looks like from start to finish so you guys can follow along with me okay so let's get to it I'm going to create a new workflow we're going to call this live build upwork AI agent I'm going to tag this as you know you can do an nadn for organizational purposes in my case is nadn course let's just Dive Right into putting the
agent together um I'm going to go over here and type in agent we'll go down to this the window that opens will default to a tools agent which is the one that we want but I'd recommend you also spend a little bit of time scrolling through the other sorts of Agents because it's not all tool agents although people tend to use them uh the most I'm then going to create a system message systems are just the way that models Define themselves and an AI agent is just you know using chat GPT or whatever AI model
Source under the hood so it's it's no different um what I usually write is you're a helpful intelligent something assistant and I'm going to give it some additional instructions your task is to receive an upwork job description then use it to generate assets like mermaid diagrams Google Docs and upwork application bodies perfect so we now have our AI defined and systematized we need to go to chat model scroll down to open AI chat model that's the one that I'm going to be using and just know that you guys can do whatever whatever um AI model
you want for this I'm just using chat GPT then you have to connect an account or essentially create a credential now if you've never created a credential before head on over to create new credential and then check out the documentation it's very straightforward essentially you will go and get into your open AI account go to the API key page and just copy and paste that into this section over here the second that that's done your credential will be created and you can proceed with the rest of this demo but I'm going to move over to
YouTube February 4 just cuz that's one that I connected and now we're connected to gp4 uh o mini and I'm just going to use GPT 40 mini for the purposes of this although I want you guys to know that if you use a better model you know you're going to get better results it's just going to be a little bit more time intensive and computationally intensive as well the next thing we're going to do is we're going to go and um add window buffer memory Now default contact window length is five I'm just going to
do 10 just because models have gotten better since that default was applied and now we sort of get to the point where we can start adding our tools so first of all for those of you that are new to AI agents this is now just like chatting with chat gbt so you can you know ask it whatever question you want and it'll use the default intelligence that's built into the model in order to get back to you but obviously we don't just want to stop there we want it to be able to call sub tools
and essentially execute workflows on our behalf in order to do things like generate a Google doc or you know write us a highquality upwork description or I don't know generate mermaid code the thing is while you could technically do all of this in just one long flow um what we're going to do is we're going to divide it into three sub subsets so that we can make sure that the module calls that we're doing are basically doing the best that they can at that one particular thing and I found that this is pretty necessary when
you're dealing with models like gp4 GPT 40 um if you really want to squeeze the best results out of them you got to keep the number of instructions that you're giving them to a minimum and you also just have to ask them to do like the the one thing that you really want so I'm going to head over to Tool here and then uh I'm going to be calling an n8n workflow tool the thing is we don't actually have that those tools yet so we're going to create them so I'm going to go back over
here and then I'm going to be creating three additional workflows the first is going to be called let's do live build upw agent and we'll say generate um application copy then I'm also going to go and generate a second one let's call this live build upor agent generate Google doc proposal then I'm going to go and generate a third one which is going to be called generate mermaid code so um if you guys want to add some additional asset that maybe I'm not including here then you just have to add one additional layer to this
you know I recommend using a naming convention like the name of the agent and then having a colon and then some specific tool usage that you want but okay great you should now have you know three or four tabs open one with the AI agent another with the first thing we want which is it to generate the application copy another with the second thing that we want which is to generate the Google Doc and then another with the third thing which is to generate that mermaid code with that sexy workflow diagram I showed you guys
so um in order to have an AI agent effectively call a service what we need to do is we need to go over here and then as a first step we want um when called by another workflow as our trigger so essentially when you have an execute workflow trigger you are enabling this um workflow to be called by a parent somewhere else so I'm just going on all three and I'm just adding execute workflow trigger so now all three have these little workflow triggers I'm just alt tabbing or in my case control shift tabbing and
control tabbing back and forth um to change tabs now we're going to start one by one um with the generate application copy and then once that's done it's kind of a simple um ask we're going to move over to the more complicated thing which is creating a a Google doc and updating it and having it ready um and then at the end we're going to do the the mermaid code and then we're going to put it all together but starting with the generate application copy if you think about what's actually happening here is we're basically
asking this AI agent top level to like maintain some sort of coherent thread or thought pattern or or something like that some stream of Consciousness and then what we're doing is we're saying hey you have all of these tools available to you you know here's a shovel over there is uh I don't know like a scythe and and over there is like a pickaxe okay I want you to go out and I want you to extract some ore so if you guys played RuneScape but I played a ton of it back in the day if
you want to extract some ore you need a pickaxe right so the idea is the model is smart enough to kind of make that determination for yourself and the reason why I'm building it out in this way is just so that you can add things onto this agent and make it as arbitrarily complex as you want you could add an upwork scraper to this thing to scrape jobs have those jobs automatically converted into the things that I'm talking to you about um you know I'm just I'm just sort of laying a fertile ground for you
to add more or less whatever you think is irrelevant whatever will help you make money but essentially what we want to do is um here we're just going to have that first agent talk to another AI model so I'm going to go over here and I'll type open AI I'm going to use the message a model text action so because we're connecting to another open AI node I'm just going to use the same credential I did before which is YouTube February the 4th and then uh from the list what I'm going to choose is just
GPT 40 mini and I'm doing this not because I actually care about the cost but just because it's a little bit faster I find and faster is better um when you're dealing with stuff like this you know when I'm doing a demo on YouTube is what I mean to say okay great now I could go in and I could like write all of this from scratch again and make it a little bit different but I've already spent the time and energy writing this specific prompt so I'm actually just going to go grab that prompt and
then I'll run through the logic and sort of tell you guys why I wrote what I wrote okay so this is the prompt I'm going to be providing it uh oh that's not actually The Prompt I'm be providing it this is the prompt I'm going to be providing it this is going to say you are a helpful intelligent upwork application writer perfect so the system prompt is always going to be our first one this is um how the system identifies this basically tells us um Let Me Whip up my little drawing app here the purpose
of this is basically to tell uh you know the AI who am I right so that's how that's how the AI answers this question so who am I well you're a helpful intelligent upwork application writer fantastic this second prompt down here this user prompt the purpose of this is basically to answer what do you want me to do and so these are two different things and I find the vast majority of the time you know not to admonish the rest of the industry or anything but the vast majority of the time when you know we
have these amazing AI agent flows usually the prompt engineering is really lacking and you can tell in the responses that that it sends and receives the quality the assets that it generates T of suck and stuff like that so if you want really high quality assets you got to start with with really high quality prompt engineering whereas high quality is one can reasonably do in like the hour that it took me to build this puppy but uh let me run you through what it looks like generally speaking and I've only stumbled upon this because I've
done a lot of it you want to start with the context of who you are okay so you want it to know something about you something that it it'll need to know in order to do a good job so in my case I'm an automation specialist applying to jobs and fre platforms right let's use green green is a happier color than whatever the heck I was using before the next is you basically give it a task so you say hey what what are you doing your task is to take as input an upwork job description
and return as output a customized proposal okay so this is just a high level overview of what the model does fantastic then what we do is we give it an example so high performing proposals are typically templated as follows and now here's the here's the key of prompt engineering that I'd like to put across to you guys when you're designing these sorts of flows for yourself um don't have the AI generate everything have the AI generate a very small portion of a thing that you've already templated so for instance if I have two options here
okay if this is option number one and I'm having it generate a big long page for me um and this is all AI text this is what most people do they have the AI generate the whole document and unfortunately AI is it's it's flexible which is fantastic but in business cases is flexibility and the lack of flex uh the lack of rigor is usually not what companies want and it doesn't make you money what you need to have is you need to have some sort of prediction predictability reliability and so what you really want it
to do is you actually want the vast majority of the text in whatever asset that you're making to actually already be templated so what you want is you want AI if AI is the green okay what you want is you want to write the vast majority of it yourself then just have ai fill in the blanks for you maybe a couple lines here or there okay that's about it so um after you tell it who you are after you give it a little bit of context surrounding the high level version of the task what you
want it to do is is give it an example in my case of the template that I want it to write now I've written tons of these things before I mean you know I made 500,000 bucks on upwork you don't make 500 Grand unless you sort of uh without sort of figuring out what people like and and and how best to treat them so so a high performing template that I found is where you basically just uh you say Hey you say I do what exactly what you're asking all the time I'm really confident the
right fit for it so I've actually just done something custom for you in this case I created a workflow diagram plus a demo of your thing in no code okay and you'll see that I'm wrapping these in these um little curly braces these are just variables that I'm using to tell the AI model this is what I want you to to change so hi I do thing all the time I'm so confident I'm the right fit for you that I just created a workflow diagram plus a demo of your blank in no code what I'm
going to do is I'm going to include this as a link right and this is going to be if you think about it that proposal that we have here and what we can do very easily is you could obviously just take a take a screenshot of this and then you can include that um in said file uh you know just before you go and apparently I can't cut and paste into Google Docs because I'm using the wrong browser anyway I think you guys understand the point that I'm trying to make um so uh yeah and
then I have these dollar signs here this is just a way that I'm telling the model later uh Hey I want you to like fill in these dollar signs with the actual link and then uh about me I'm a relevant job description that has done cool relevant thing of note other cool tie-in very neat happy to do this for you anytime just respond to this proposal else I don't get a chat window thank you so there's a lot going on here and I'm not going to you know I'm not going to harp on every little
bit but the whole happy to do this for you anytime just respond to this proposal else I don't get a chat window I found when I started including verbiage like this in my upwork proposals and and outbound messages um application or proposal to reply rate um shot up so I think the reality is a lot of people that use upwork that are hiring for jobs and stuff like that they don't actually understand that you can't interact with them unless they send you a message first you know upwork tells them but I I don't think the
best majority of people really know so we're just we're just harping on this on this fact if you like what you saw and if you like me you got to send me a message in order to keep talking and I know it's like a throwaway lineer it certainly seems that way but stuff like that works really well anyway so um you know if we just go back to our little writing tool here what we did before was we provided a template right well now what we do is we go rules and formatting and when you
do rules I always now do it as just a um new line delimited AKA like a big list of bullet points um and then when I do the format I always give it the key that I want it to Output in my case I'm going to be using Json JavaScript object notation specifically because it allows us to format the results and grab them as variables which you'll see in a second um but I this is the format that I always use when I when I develop prompts and I find that output quality just tends to
go up if you guys are curious about how to improve the quality of your prompts um on your end just head over to anthropics prompt guide they have this big prompt engineering step-by-step guide they literally give you everything that you could ever possibly need about prompt engineering right over here and everything that anthropic talks about is similar um similarly apply to everything that chat GPT or open AI or or other models do the only difference between anthropic and um open AI is anthropic prefers XML tags whereas open a prefers Json that's really not a big
deal you can totally um um do them interchangeably okay great and then at the end here I have some facts about me for the personalization um json. about me so let me actually change this to an expression just so we can actually render variables this is now in Gray because we don't actually have this this variable um before but then the last thing we need to do obviously is we need to feed it the the job description so let me just go job description and then um I'm just going to have a a placeholder down
here we'll click output content is Json then just as an option here um I'm going to go down to Output Randomness temperature I'm just going to change it to 0.7 why because anecdotally I find that my responses are closer to my tone of voice and what I like um when I'm at an 0.7 versus a one okay great so we have everything that we need there there's one more thing I have to add that I forgot to do um I I just want a way for um you guys to be able to like swap in
your own templates um and information about yourself at will just because I think it's important to make all the templates that I put out actually have some like practical purpose so I'm going to create an about me variable using an edit Fields node for those of you that are unfamiliar this is basically like a set a variable node in make.com and other no code platforms and just to make my life easy I'm just going to copy the about me that I wrote for myself before which is right over there um which was I'm an AI
automation freelancer that builds out systems CRM systems project management systems no code systems and integration some notable things I've done I've done endend project management for a $1 million a year cooperating agency outbound acquisition system that grew a Content company from 10K to 92k a month monday.com CRM for recruiting company doing 1 million a year blah blah blah blah right here's just some little pieces of social proof when you guys actually jump in there and um you know uh uh like edit the thing uh the the the workflow uh just add your own social proof
I'm going to leave mine in and you can just you can just map it one for one one if you want to and make your life a little bit easier okay great so now we have this model we should now actually be taking some information Jason about me awesome now what we need to do is if you think about it we need to test this right um and then I need to find a way to get get a variable in here so in order to test when you use an execute workflow trigger you actually have
to to pin um the data yourself like if you want to be able to test this realistically and see everything in your browser um just like you would with any other sort of workflow you need to actually go up here to the top rightand corner of the execute workflow trigger and then you have to to pin the result so I'm actually going to create my own Json JavaScript object notation I'm going to call it query because that's how the AI agent node is going to be sending our data and then what I'm going to do
is I'm just going to get the big long upwork job description here and I'm just going to paste it in so let me just go all the way this is actually going to be really long so I'm going to copy this then I'll say remove new lines from this I.E put it all on one line I'm going to paste this whole thing in this is going to take a fair amount of time to go but basically the reason why I'm doing that is because um in Jason you can't actually have new lines you see how
the text up here is uh green right now that's because this is valid Jason second that I add a new line in between my um two uh quote symbols it unfortunately breaks so what I wanted to do is I just want the model to regenerate me all of this but I wanted to do it with no no new lines so it's just simple and easy for me and the moment that that's done I'm just going to paste it right over here and then we'll have our query so these lovely human beings did write a fair
amount and that's okay I want to show you guys how it works on variable output links awesome that looks pretty good to me so I'm I'm going to copy this and then I'm going to go over here and just paste it and then I'm going to save and this is going to automatically pin the output and so now this is a little purple circle around it um that just means that the output is pinned set variable um we have the query I'm just going to test this so I can watch the output okay now I
have the about me I'm going to move over here to the right and now I'm actually just going to insert the job description from the execute workflow trigger if you don't have an expression field when you drag something in and n8n it'll just automatically stick it at the end which I know is annoying so just make sure you you change anything to an expression field first before you want to do that anyway now I have the whole job description F in is JS n JavaScript object notation I have this trigger that's say output content is
Json I can out test this on open Ai and I can have it try and basically generate me an example of this okay so uh let's see here hi I do thing all the time I'm so confident I'm the right fit for you that I just created a workflow diagram plus a demo of your blank in this case receipt and invoice extraction system in no code beautiful about me I'm an a automation freelancer that has done endend project management for $1 million year copyrighting agency and built an automated content generation system for an SEO agency
during 10 mli year I've noted run a make.com community that is 100,000 bucks a month happy to do this for you anytime just respond to this proposal else I don't get a chat window thank you awesome so now we have that output what we have to do is if we want to get that output back to our first AI agent we actually need to um we when I call the tool which I'll set up in in a moment we actually need the output to be the name of a variable that we specify so for Simplicity
uh I'm just going to go over here and create a new edit Fields note and then um what I'm going to do is I'll map it and I'll just call this let's just call it response I'm going to execute previous nodes just so I have access to that and then I'm just going to go to expression drag in this proposal field okay great so now um the AI agent is going to know that the end result is stored in a variable called response I'll tell it that in a second um and we have another variable
that'll be output here called response that'll be able to access so this is in a nutshell um how we do that first part just just generate that text now we actually need to hook it up to our agent so I'm going to go call nadn workflow tool what I want to call it is I want to call it something like generate proposal or uh sorry generate U what do I call this application copy so I'll call this generate application copy and then I'm just going to follow their format which was call this tool to generate
upwork application copy your input or the input will be an upwork job description the output will be the proposal the um upwork application copy string from the tool definitely do not leave that and let me just make this even clear generate upwork application copy cool the source that I'm going to do is from our database what I want is I want this some live build upwork agent generate application copy so generate application copy I may not have it you see um live build yeah I don't have it yet unfortunately because I created these three tabs
or um workflows um after I created this so it doesn't actually have access to that backwards we are going to refresh I'm going to go back here and then I'm going to go live build appliation generate application copy if you find yourself in that situation in the future by the way you can just copy the ID of the workflow which is always the thing that happens after um slw workflow slash then you can just go by ID and you can paste it in here same thing right exact same thing the field to return is going
to be response and that's just because this is the default uh field that naden always returns if I go back to my edit Fields node you see how I call this one response right okay beautiful so we now have basically everything that we need in order to actually test this puppy and my recommendation for you is anytime you're developing a workflow in NN or any other no code tool every time you think that you've gotten to some Milestone test it and make sure don't just assume that your flow works the way that you want it
to work work okay actually go and test it so I'm just going to rename this generate application copy I'm then going to open up a chat window with my a agent I'll say hello I'm going to have it tell me something how can I assist you today if you have something specific in mind just let me know beautiful I'm going to go over here I'm going to um just make sure everything's good on this end let me just unpin this I don't want this uh here okay great and now I'm going to paste in this
big upwork application here's an upwork job post and what I wanted to do is I wanted to be smart enough to know that it has to go and it has to generate um you know that upwork job application copy and voila looks like it did so if we go back to that chat window that's pretty fast here's a tailored application for the job you provided ook application copy high so you're looking for a make.com automation specialist um to streamline your blank here's all this information about me I'm happy to do this for anytime just respond
this proposal else I don't get a chat window thank you so that's cool right we now have something that's being customized dynamically based off of the input we'll also notice is the output of the if we go down to the generate application copy the output of this had a dollar sign right but the AI agent was smart enough to know that it was just a bunch of dollar signs and so nothing was filled in so it actually removed it right that's pretty neat well that should be um little hint as to how we're going to
combine the output of both of those tools in the future we're going to have the link the link is going to to go into the AI agent it's going to look at the um link to the Google Doc proposal and then it's going to look at the propos uh application copy that we just generated and it's going to say huh I guess this goes over there and it's actually going to like meld it for us live so that's pretty neat I'm I'm a fan but anyway I'm glad that all of this is now working and
we can move on to the next step which're is going to be creating a Google doc proposal if you want to call it that um to to send out on mass now I've actually gone ahead and I've created a template for this called the Google Docs upwork proposal template now what it looks like just to walk you guys through is we start off with the title of the system we then have a brief explanation of the system so in my case I'm doing automation right so I'm building systems for people that's why I keep on
saying system and system and system in your case I don't know maybe you're doing some sort of PPC ads or something feel free to to swap out the verbiage is necessary you can totally just copy this um Google doc and and save it to your own account we then start templating everything so we say hello now just because I'm bored I'm going to throw in a wave uh cuz I want this to be different from the one that I did before so hello as mentioned I'm so confident I'm the right fot for this I went
ahead and created a proposal for you including a step-by-step of how i' do it I've done the below many times and working with specific part of their request is actually one of my favorite parts of automation Talk about serendipity anyway here's how I'd build it step-by-step bullet points so basically left to right float with arrows a little bit about me about me bullet points you guys kind of seeing the point here we are templating out the copy in such a way that AI is only ever responsible for a very small but important chunk of the
finished product the reason why is so that human beings when they read it don't just go oh that's AI generated gibberish they go gibberish gibberish they go uh I'm just speaking gibberish now they go uh like wow you know this is really crisp and clean and obviously it's a real human being and then because we're just paraphrasing little sections here or there um we get that we get the benefits of like templating stuff out and being pretty procedural about things and we also get to take all the benefits of AI flexibility as well stuff like
specific part of their requests step-by-step bullet points right at the end I say to be up front my goal is to work with you on a long-term retainer since I find it Alliance incentives and lets me help clients better so I treat everything we do together as foundational help people systems to drive revenue and maximize cost savings I am really confident I can blow this out of the park Fe so if it sounds like something you're into just respond to my proposal on upwork and we'll take it from there thank you for your time so
this is all copy that I've used many times in order to make the $500,000 on upwork this is how I communicate with clients I always frontload and say my goal is to get you on some sort of recurring relationship everything I'm doing is in effort from that I'm 100% transparent at the very beginning of my relationship uh I find that if you just frontload with that you tend to perform a lot better and people are just I don't know they just tend to like you more because they're like huh the guy said he was going
to do something then he did it they did like extra on top of that and then he pitched me the thing that he told me he was going to pitch me right they kind of know what to expect so this is the template I'm going to use why don't we move over to our second node here or our second workflow which is the generate Google doc proposal so if you think about it um what we're going to have to do is we're going to have to generate a bunch of variables so title of system brief
explanation of system right specific part of their request step-by-step bullet points we're basically going to have to go and we're have to generate all these little tiny tiny bits here or there and then we're going to have to fit them in so there are a couple things that we're going to want to do the first is we're going to want to copy the Google Doc um you know first and foremost because we're not going to want to like do any edits on the main template we're going to obviously want to copy the template then do
all the edits on there um the second thing we're going to need to do is we're going to need to find some sort of find and replace unfortunately in nadn as opposed to a lot of other tools um there's no like simple way just to like slap a bunch of text inside of a Google doc as I'm sure some of you guys are aware uh it's just pretty annoying to do you can technically do a workaround with the Google drive module but this this sort of fine and replace template feature this just eliminates a large
portion of the issue it also allows you to do cool things like add template images in here so like you could totally imagine um a picture of you right over the a little bit about me right or something um I I much prefer this templated approach to basically everything else but let's start out simple let's start out with um copying the Google Doc okay and then we're going to generate a bunch of AI stuff and then we're going to squeeze it in that Google doc so first thing we're going to want to do is I'm
just going to open up docs what I'm going to want is I'm going to want a sorry uh I lied the very first thing we're going to want to do is actually we have to copy it right so I'm going to go drive and then copy file now if you guys don't have a Google Drive credential it's kind of annoying to set up to be honest you have to go to um your Google Cloud console which is I believe it's console. cloud.google.com let me see if I have it let's go here console. Cloud google.com right
over there you'll have to create an account after you create an account you'll get a page that looks something like this um then you have to go down to apis and Services scroll super far find the Google Drive API it's right over here then you're going to want to have to you're going to want to go to credentials um and then just copy over um all of these fields client ID and client secret you'll find them on the credentials page which I'm not going to show you for um security purposes and just because I don't
want have to like recreate my key it's pretty funny how many times people say stuff like hey Nick um you just exposed everything in the last video just FYI and I'm like oh you're right I should probably go back and fix that um anyway once you're done with that it'll ask you to sign in once you've signed in you'll have um you'll have the credentials just make sure to click that little sign in with Google button the resource we're going to be using is file operation is going to be copy if you think about it
we're obviously going to have to have this template so make sure to save that over to your account after you've done so you should have it accessible inside of your Google Drive so I'm going to go Google doc um proposal template right up workk proposal template this one right here okay great now we have file name actually we're going to need to generate a file name now that I'm think about it so this actually isn't going to work but uh it's going to work it's just not going to be ideal I'm just going to test
this now and then we're going to get as output a Google Drive ID which is great the next thing I'm going to want to do just because I know how Google Drive works is we're going to want to share this so if you've ever had a situation where you create a file or create a resource or copy something but then you can't share it with anybody nobody can see it and then end you can solve that just by going Google Drive and then share file again you're going to have to connect to your Google drive
and then what you want is you want to select the specific file ID that you just copied so don't actually use from list use by ID then copy over this so it's Dynamic right it's the IDE of the file we just copied over a second ago in terms of permissions I always just go reader then go anyone that way anyone can read but not everyone can write okay great so I'm just going to test this um we now have this uh document which should now be publicly accessible just to double check I'm actually going to
go back here and the unfortunate thing is NAD doesn't give you a URL that you can access easy what you have to do is you have to grab the ID and you have to paste the ID in between the SL d slash and the sledit and this is now our new document okay and you know that because it's called example in the top left hand corner as opposed to you know Google Docs upwork proposal template so it looks like everything on the copying front was good if I just um if I grab this and I
go into an incognito tab I can still see this right okay perfect so now I've just verified that the sharing settings are fine you can even see that there are other people on this that means that our client's going to be able to see uh fantastic the next thing that we're going to have to do is we're going to have to go and if you think about it we just added in um example as the title that's not really good enough I actually want to like have the whole like I I want the whole package
to be clean I want the title of the Google Doc to like say the specific system or a paraphrase version of the system I want everything to be you know above board so the way that we're going to do that is we actually have to go um and we have to generate using artificial intelligence a bunch of stuff so to make your lives easier just head back to the previous node um the previous workflow I should say and copy the llm node the open AI message model and just paste it in over here because we've
already done a lot of the hard work in building the foundation so all we're going to have to do is edit a few of these sections so here you are helpful intelligent proposal writer and as you can see we're going to provide the exact same context as before so before you know we had I'm an automation specialist doing X Y and Z then we had high performing proposals are typically templated as follows then output your results in Json using this format along with some rules right we're actually going to follow a very similar structure um
just again so I don't have to like go and write all this from scratch and prompt engineering is as I mentioned one of the highest Ry parts of the business so it's you know if it takes a lot of time it's not necessarily a bad thing um but just to avoid that from happening uh I'm going to copy in my previous one and then I'll just walk through what it looks like okay beautiful so oh you know I think I copied it from the wrong one yeah I did nope that's not the one must be
this one here okay perfect so I'm pasting that in you'll see it's a little longer what I'm saying is hey I'm an automation specialist applying to jobs on freelance platforms your task is to take as input an upwork job description and return as output JavaScript object notation for a customized proposal which I'll upload to Google Docs do you guys see how much context I'm providing it I'm actually giving it a bunch of information on exactly what I want to do just in case there's something I hadn't thought about that it'll be able to format in
the response AI as of the time of this video has extraordinarily broad understanding of basically everything might not have the deepest understanding if we're calling GPT 40 but it's so broad that it can typically find a lot of weird kind of one-off edge cases for you so I do stuff like this I tell it exactly what it is that I want it to do anyway then it says High performing proposals are typically templated as follows and notice how I'm actually giving it I'm giving it everything right I'm saying in markdown title of system markdown explanation
of system hi as mentioned I'm so confident that I'm the right fit for this that I went ahead and created a proposal for you including a stepbystep of how I do it I've done the below many times and working with specific part of their request it's a variable will fill in it's actually one of my favorite things to do Talk about serendipity anyway here is how we'll build all of this stuff so basically left to right flow with arrows a little bit about me about me bullet points to be up front blah blah blah and
then I have the rest of my copy here the thing that'll be relevant for you is output your results in JavaScript object notation using this format basically what we've done is we've gone through and we've gotten all of these headings and we just replaced them with variables right so title of system I should actually just make this one for one if I'm going to use that it's going to be a lot easier to access so title of system right check brief explanation of system that's right over here check specific part of their request that's right
over here check paraphrase system I don't know if I have paraphrase system I feel like I might have removed it anyway let's just get rid of that step by step bullet points check left to right flow with arrows check a little bit about me about me bullet points check and then you'll notice that after I provide it the example of the Json format that I want I also give it some rules hey I want you to write in a casual Spartan tone of voice hey don't use emojis or flowery language hey if there's a name
included somewhere in the upward job description this is kind of cool um add it for personalization purposes instead of it being like hey it's like hey Peter right if Peter is a small little throwaway line at the very bottom of like a three 00 uh you know 3,000 word u request for proposal Peter is going to feel like you really understood him right return stepbystep bullet points about me bullet points is strings delimit each bullet point with a back sln and make sure it includes a um hyphen in about me bullet points prefer not to
mention social proof that includes money and numbers for left to right flow with errors write a simplified left to right Flow delimited by these delimited just means um kind of broken up by for instance and then I give it an example then use first-person language like I I'd streamline I do blah blah blah then we have some facts about me for the personalization down here um and I'm again going to provide this for you uh now that I'm thinking about it like there's no need for us to repeat this over and over and over again
we could just draw from like one data source but just to keep this as modular as possible I'm going to have all of these about me stored separately this should now be about me wonderful now we go over here we should obviously get Jason slab okay doab me perfect and then down here at the bottom the job description is execute workflow trigger that's the very first node um then item. json. query so if we want to test this again right what we need to do is we need to go and we need to paste in
the whole upward job description now I've already done that in a previous um node right so I'm going to go back here I'm going to grab this whole query actually I can just grab this whole Json I'm going to go over here and then just paste that in looks good to me aside from some weird formatting I don't really like that whatever I'll just leave it as is I'm going to save this if we go to Jason it should be formatted right for me okay yeah it is perfect um we're now going to test this
because I want to make sure that everything here Works awesome now this open AI node is going to write right so um it's looking like it's not finding this for some reason not entirely sure why so I'm just going to go and I'm going to drag this in manually cuz I know that that node is there it's saying undefined this might just be one of those n8n oneoff errors so we'll leave it at that I'll click test and then we'll see if um we actually getting it this is now going to return a bunch of
Json basically JavaScript object notation cool looks like it did automated Outreach system cool cool very neat I'm curious what uh was fed in here though with this execute workflow trigger supposedly not working so just for uh posterity I'm going to repeat this and just make sure that that is not going to result in some weird error that I'm not expecting later on so this is looking good so let me rerun that one more time um I always like uh yeah I always like um just double checking it might take me yeah okay so there was
something wrong with the previous node for whatever reason it wasn't finding the um the variable that I was looking for but now we're generating the specific variables that we want like title system specific part of the request blah blah blah cool so now if you think about it what happens next is we generated title right so what we can do is actually we can just drag that in file name so now the file name of the copy that we're creating is going to be Gmail to Google driver seat and invoice automation fantastic okay great and
then we're sharing the file let's actually just test this now um all the way up to the SharePoint just from start to finish and let's see if you know in isolation these subflows work anytime you're developing an AI agent just go in isolation and test the subflow from start to finish using a query uh key or query object if you are using maybe some other naming convention then you can use that but the point is just try and mimic exactly the input that it's going to be receiving from the a agent and then make sure
that that works and then connect it to the a agent okay great so we have an output here from the share file looks like we now have shared said file I'm just going to quadruple check this I'm going to go over to this and paste didn't perfect looks like we got everything that we need we can now actually go through and do the customizing of this thing so now that it's shared we can actually go Google Docs what we want is we want update a document okay the doc ID or URL we're going to get
from the Google drive because that's the one that we just copied and then what we're going to want is the object is going to be text the action is going to be find and replace and now what we have to do is we basically have to go through and map those curly brace variables that I was using his placeholders and replace them with the output from the open AI node so if we just go back here what are those curly brace variables title of system brief explanation of system right specific part of the request I'm
going to build this alongside with you so I'm just going to paste that in and then for Simplicity sake I'm just going to add a bunch of actions I don't know how many there are but I just want to do this quickly so this is typically what you do when you want to do things quickly you just bulk um add because your mouse doesn't have to move around you don't have to look a lot awesome so now we have a bunch of finder tol text and now I'm just going to go and grab all of
these let's paste that in over actually yeah right over there um then I'm going to do specific part of their request right over there just alt tabbing back and forth to save myself a little bit of time step-by-step bullet points pasting that in left to right with arrows pasting that in about me bullet points pasting that in and was there anything else no I think that's it so we can actually get rid of the rest of these okay and then if you think about it we also have to add the new text right so the
new text for title of system is just going to be this variable that we already created called title ass system new text for brief explanation ass system just going to be there the new text for specific parts of the request is going to be there step-by-step bullet points there left to right flow with arrows there and about me bullet points there okay so now if we just kind of take a step back and think through it logically we've mapped all of the variables that we just generated using AI we've pumped them all into this Google
Docs find and replace feature and we have our document right over here so what should happen when we run this well it should go through and it should update it with all of this so I'm just going to click test step and we're going to see we're going to check it out for ourselves basically and voila we've now replaced the title we replaced the subheading we replaced this section down here we've added in a bunch of personalized info and now we have a little bit about me as well which is pretty pretty cool cool so
we verified that this works the last thing that we have to do is we just need to send this back to the AI agent right so how are we going to send this back to the a agent well it's going to be the same thing that we did in the previous uh workflow which is basically where we use an edit Fields variable or set variable field or whatever you want to call it um to have a response it's just this time I'm going to call it a URL I'm actually going to map a Google Docs
URL um so that you know the AI agent gets the URL sort of in its hand and then it can um use that to format out the uh the rest of the propos or applic so the way you do that is you just go edit fields and then what I'm going to do is I'll manual mapping the name here is just going to be the URL of proposal okay and then going to grab this document ID but if you think about it this isn't enough right it's just a document ID so what we actually do
is we have to map it the exact same as this so I'm going to grab this URL here which is just a Google Docs URL this is how they they work I'm going to paste it in then what I want to do is I want to replace this old id here with this mapped ID here and now as we see um we have docs.google.com dodid edit well for sanity why don't we go and we test this just make sure we're looking at the same dock okay we are looking at the same doc fantastic so now
that we have that uh URL of proposal string I can test this and now we're seeing that we're outputting this which means that when we do our uh you can just click known and then press P to unpin by the way when we do our AI agent Connection in a second we're going to be drawing from URL of proposal awesome okay so that was the first one let's now go and add another tool we'll call it this nadn workflow tool I'm going to scroll down and select generate Google doc proposal and the field I want
is URL of proposal I'm going to call this generate Google doc proposal I'm going to use their nameing convention here to say call this tool to generate a Google do proposal for an upwork job the input should be a string of an upwork job post and the output will be a URL let's say a proposal URL that you can use to fill in templates paste that in there wonderful now that we've verify that that second flow Works in isolation let's actually go and let's make sure it works in reality so what I'm going to do
now is go back to my um chat window here you see how I generated me all this right well I'm actually just going to um use its intelligence and I'll say can you generate me a Google doc now and now what it's going to do is it's going to pull from the window buffer it's going to grab the old memory and then it's going to make a decision on what to do next cuz it's doing a couple of API calls under the hood one once it's decided it's going to look and see if there is
any nadn workflow tool available that has a title kind of like you know Google doc proposal and stuff so ideally that's what it's doing right now cool so it's calling the nadn workflow tool now the ID and workflow tool is going through everything that we talked about before so it's actually generating the response it looks like we return this response node and it looks like it's generated the Google Doc description now cool and let me just double check that this makes sense and it does make sense perfect we have the whole proposal looks very custom
and very high quality looks like you know we spend a lot of time and energy generating this cool but um that's not enough let's go one step further now and let's generate a super high quality or perceived high quality mermaid uh dock or mermaid flowchart essentially so that the people on the other end think that not only did we write all the stuff ourselves we actually went through and used some sort of workflow tool to to put it all together this is how you can send at very high volumes without having to spend a lot
of time per individual one that you are sending so let me just rename this now that we're done with it say generate Google doc proposal and now the last thing we need to do is obviously our mermaid code now for those of you that are unfamiliar mermaid is a mythical creature no mermaid is a diagramming and charting tool it's JavaScript based basically it allows you to generate pretty good-looking things and it's really stupid that they do not have a an example of uh a mermaid flowchart on their website but essentially you can generate stuff like
this really easily and you know they have like their little programming convention and you just generate something in mermaid code and then you just paste it in a visualizer and it's just standard it's all parsed right so if you've ever used a workflow tool like Whimsical before it's basically the same thing as whimsicle right you press s you press a button and then voila you now have another thing you can do other stuff as well you can make mind maps you know a variety of things you can do um but the really cool thing is
mermaid is just sort of like universally understood Now by a lot of these diagramming tools so you could take it and you can paste it into any one of these tools then just have it like you know take the code and use it to like generate a very sexy looking workflow chart now I should note that you could totally extend this further and you could just have it generate a workflow chart for you automatically without actually having to go through all this rium roll it just requires a fair amount of server setup U because what
you have to do is you have to render the generated mermaid code on uh a website which you might do through some internal web hook and then you have to take a screenshot of that website and this is just way too much work um I'm focusing on the 8020 here if we can eliminate 90% of the work in an application and improve the perceived quality 3x then obviously we're going to do that uh but just know that you can take this you know arbitrarily far if you want so yeah let's actually go through and let's
let's do the generation what does it what does it look like well it's pretty simple actually you just talk to an llm and you say hey can you generate me me some mermaid code so to prove it I'm going to create an open a uh let's actually just copy it from the previous one that'll always be easier always copy uh from a previous flow if if possible because it'll save you a lot of time mermaid.jpg job description return as output Jason that includes mermaid JS code okay so um just for the purpose of this demonstration
generate mermaid .js code for the following flow and I'm going to say receive email from Facebook lead ads I'll say two add to CRM and three send customized sms okay so that is now what our what our whole prompt is and I'm just going to leave it at that just to show you guys what it looks like I'm then going to test step we're saying epic content is Jason but essentially what we get is here we get this graph TD a receive email from Facebook lead ads B add to CRM uh B to C send
customized SMS this is basically just like a relationship diagram in their coding language and this is all that open AI is going to be generating for us then we're just going to take it and paste it in somewhere um so that's pretty cool uh let me show you guys the actual prompt that I was using in order to make this done um make this happen if I copy this puppy I go back to here and then I paste it in you can see that what I said was your task is to take as input an
upward job description and return as output and mermaid diagram that I can visualize these using a subsequent mermaid.jpg the mermaid diagram code here's an example what your output should look like rules you only output flowcharts nothing else no sequence diagrams no Gant charts only flowcharts that's because Mermaid has a variety of different ways that they could show uh data they could do sequence flowcharts sequence diagrams Gant charts and stuff like that we just want flowcharts which I believe is just this graph do not output any accessory formatting information like backtick mermaid sometimes it does this
and I don't like it and your first character should be G I'm just really trying to constrain it so that it only outputs this graph TD thing okay great so now that that's done I mean to be honest that's basically it right we just need to test this on some actual code so I'm going to um now write my own query the same way that I did before using this data so I'm going to copy this over I'm going to paste this in now save it we've pinned this and now I'm just going to feed
this in voila we have the user prompt right here and we're going to untick Output content is Jason we're now going to test the step we're going to see if we get workable or usable mermaid code now this is a very long job description in hindsight wish I would have gotten a slightly shorter one just because of how much longer it's making the video take but Sal of V I guess the ideaas I could show you guys that it works on basically anything okay great and so now now we have all this code right fantastic
very cool I should note that I think we have a bunch of like new lines in here which kind of sucks um we need to replace these new lines otherwise I don't know if it'll I don't know if it'll work if I past it in yeah basically um this is outputting with a bunch of new lines uh but when you return it back to the AI agent those new lines will automatically be filled in so I think in this case um it's clear that it did generate me some mermaid code I'm just going to go
and connect this now to open AI uh to the the first agent sorry um last thing I need to do in order to make that happen is just edit fields and then going to say mermaid code I'm going to grab this content paste it in let's just test that step that is now the output wonderful I'm going to unpin this node and I'm going to go back to our agent and let's add one final tool and let me just copy this because we can template at most again drag that puppy in there we got to
stop saying that puppy man generate mermaid diagram and then over here we'll say call this tool to generate a mermaid doj generate mermaid.jpg job description the output will be the mermaid diagram code what we want is we want the field to be called mermaid code let me just double check that I'm feeling a little crazy right now yeah it's mermaid code beautiful let's leave it at that and then I will go back and I'll say can you generate me some mermaid.jpg it will access the window buffer memory just like it did before so first it'll
add to it then it'll go open aat model it's going to choose what to do which in our case is now memor uh generate the mermaid code looks like there was an issue interesting so it's going to get back to us with said issue um it did not return an item with the property mermaid code interesting so I must have did I unfortunately name this wrong or something mermaid code is here yeah so it looks like there was some issue oh sorry I was calling the wrong one my bad we got to go generate mermaid
code well that was an unfortunately easy bug try again so this AI agent is now trying to do it on its own um I don't want the AI agent to try doing this on its own because if you think about it in the chat thread it has like 500 examples of different things and if you're talking with the agent sort of in one session you're getting it to generate you some some code or something for another job we don't want it to get confused we want it to be very clear and blunt hey all you're
doing is you're generating mermaid code for the input that I gave you and that's really the value in tools just constraining you know the the space of all possible responses okay great so it looks like we did generate some code and it's right over here so that's nice if I just now copy you can see that it's even telling us we can use this in the mermaid live editor but that's okay I'm just going to use this in Whimsical and voila we now have a big workflow diagram where basically I'm showing people what I'm doing
so we're going to have a manual mode with a Google Google Sheets interface with manual data entry and a button to trigger automation they have an automated vat mode automated email to bookkeeper and accountant so on and so on and so forth where I'm basically walking through the scope of the project so you know that'd be pretty it'd be pretty cool to like take this generate an image of it and then I don't know can I just put the image in right over here actually I should probably put it right over here instead you know
you receive something like this and you think wow that guy really spent his time putting that puppy together right there I go again awesome so that is more or less what that looks like but I'm not going to stop there because I don't just want this to be an assistant really I mean like just for time purposes what I actually wanted to do is I wanted to do all three so I basically want it like just def by default when you um paste in an upwork job application just goes and it generates all three and
I'm just doing that for now uh like in the future you know as you can imagine let's say you start adding a bunch of other tools so we have an upwork HTTP request tool that like calls the upwork back end retrieves you a list of jobs right that that's really cool and you can totally do that once you have that well now you have a list of all these upwork jobs you can have another one that maybe gets a specific job well great now you have something that can independently list jobs grab a specific job
maybe you have a way to filter the jobs now so now you have something that gets all jobs um filters jobs gets the specific subset of jobs that you request pulls the descriptions of those automatically feeds it into this and then you know sort of does a lot of the work for you that way um but uh yeah you know you can go arbitrarily deep with us at our specific purposes we've um added these three and just functionally speaking most people are probably going to want to do all of them when they paste in a
description so they're going to generate mermaid generate Google doc proposal generate application copy so I'm just going to go over here and I'm going to tell it to so I will say when you receive an upwork job description you must generate a mermaid diagram a Google doc and an upwork application you must then replace the um dollar sign dollar sign dollar sign with the Google Doc proposal link cool so now we've changed the code sorry we've changed the prompt which I guess you can conceptualize this code I'm now going to refresh this from start and
I'm just going to delete the input so now we can just have a fresh conver ation with it I'm going to head over to our super crazy long prompt I'm going to paste it all in okay and now it should go through see the chat model with the prompt on it that says hey I'm going to want you to do all three of these things it's going to uh make the determination to access the specific tool set that we asked it to it's going to be reading through that system prompt and it's going to be
going damn this guy wants me to do all three of these things what a lazy piece of cra crap okay it's now generating all three already finished the application copy mermaid JS codee's done and the Google Doc proposal understandably since it's doing more is going to take an additional second but boy is it really gratifying when all these things turn green huh when these are done they feed the output back in the chat model and then it comes and it um basically phrases it in the way that we want so then I go to the
chat we see we have everything that we need here so the mermaid.jpg whatever tool we want and you know it's going to generate different things every time right then after that we have uh Google doc proposal which we can click over here to view and again it's going to generate slightly different things every time and then we have the outwork application copy so um I should not it's looking it's looking like it's attempting to embed this and I don't know on upwork uh they don't allow you to do that so we should probably add a
line in here that just says output the link in plain text Google doc proposal Link in plain text okay and that should um that should uh make it output it in plain text as opposed to you know like this view Google doc thing which you um you can't actually like insert an upwork anyway here it is you just copy that paste that into the job when you're ready to submit it just right over here yeah you see that how it says view Google doc I wonder if you just paste it in plain text no you
can't paste it in plain text so um you're going to have to drag grab that specific Link in this case and then grab the rest of this and then paste it in here and then paste it in right over here but after you make um the appropriate edits you will have essentially a link that looks like this that the person will then be able to open which nice that looks pretty clean and easy and then obviously we have um the workflow diagram that you can embed inside or make whatever changes you want to this as
well so I've been a couple of videos and upwork in the past typically what ends up happening is I make a video and then everybody starts doing the thing that I just showed them how to do and then the approach loses a little bit of viability because obviously we're you know only a certain number of people that watch videos like mine um and then those people tend to dominate the market share and take you know 80 90% of all available jobs and that sort of stuff I also think that epor is um very is starting
to get a lot more up to- dat with the approaches and they're trying to make sure that you know obviously you're not automating every aspect of the job application process although I do maintain that your ability to automate the job application process if you are a systems person or an automator is basically example a for why the person should hire you in the first place but anyway because of this I don't recommend that you use the exact templates that I'm providing here like I I recommend that you go through you actually switch it up a
little bit change the wording right change the change the specific tactics uh tactics and strategy will change um tactics and strategy will lose Effectiveness uh but the kind of like deeper understanding sorry tactics will lose Effectiveness but strategy and the deeper understanding of exactly what I'm doing here and what the idea behind it is um will remain with you forever so try and you know understand the latter not necessarily the former so switch up you know the exact approach a little bit you can add some other assets in there drag can drop a picture of
yourself waving or you riding a kangaroo I don't know if you could ride kangaroos sorry Aussies that watch me and uh you know once you have that that uh your own flavor to it then you can start applying and stuff like that on mass hopefully you guys appreciated the video I had a lot of fun putting that system together as per usual if you guys want to check out that template then please do um go down there'll be a link in the description it's the first time that I'm going to be charging for any one
of these templates but I want you to know that you can get them all in my communities both maker school and make money with make at any time and all several hundred of them are just bundled within the price uh of that offering as well as a bunch of other cool stuff like I answer your questions once a week and make money with make uh once a month Marathon session in maker School uh on a live call I'll do things like um daily Q&A where I answer questions that people are having or struggles that they're
currently undergoing with nadn make.com and other no code tools and ultimately just a lot of business advice motivation and the ability to connect with like-minded and successful entrepreneurs have a lovely rest of the day please Please Subscribe like do all that fun YouTube stuff that bumps me up to the top of the aggo I'll catch you in the next video bye