How to add an AI-powered chatbot to your resume with Dify and GPT-4o

Navigating IT job offers can be tricky, especially when key details like specific cloud services are missing. AI can help bridge this gap through tools like Dify, allowing you to create interactive chatbots that align job descriptions with your skills. Learn how to set up and customize your AI ch...

How to add an AI-powered chatbot to your resume with Dify and GPT-4o

I get tons of job proposals every day, but sometimes they don’t quite match my skills. I know it’s tough for non-techies to figure out if an IT job is a good fit or not. For example, imagine a company looking for a cloud expert without mentioning which specific cloud they use. How can someone who isn’t tech-savvy determine whether you’re the right person for the job? You might have experience with AWS and Azure mentioned in your resume, but that’s not going to be immediately apparent from just reading about “cloud” on your resume. I think AI is going to play a huge role here. But before companies adapt to this (and I’m sure they will soon), you can get ahead of the curve by adding some interactivity using an AI chatbot that does exactly that. You can tell it what to focus on and how to interact with natural language, just like you use ChatGPT... consider it a first interview with potential customers/employees/recruiters... Let’s see how this works. We’ll use Dify, which is an amazing platform for creating chatbots using various LLMs. You provide your prompt and integrate it on any website or provide it as a standalone app without installing or coding anything... amazing isn’t it? The concept can be applied to many other scenarios, but we’re going to use this for the above mentioned use case.

So let’s get started!

High-Level Steps:

  • Create a new chatbot
  • Define the prompt
  • Select the LLM to use (here GPT-4o-mini)
  • Embed it or provide it as a standalone app to share

Step-by-Step:

  1. Navigate to Dify and sign up (it's free).
  2. Go to the Dashboard.
  3. Click on Studio > Chatbot.
Dify Dashboard

Give your chatbot a name and optionally select an icon.

You can download free icons from Freepik or any other platform if you like.

The screen below shows the configuration of the chatbot. You can customise a lot of things, such as linking to a knowledge base, adding variables, and setting fancy options like voice commands, reading aloud, showing citations, and much more. But let's keep it simple for now and just focus on the core of the chatbot, the prompt.

Now enter a prompt below in the instructions box.

Chatbot Configuration

Make sure to add your resume at the bottom of the prompt.

For very long or multiple documents, there are so-called knowledge bases which are much more efficient, but for the sake of simplicity, we can inject the prompt into the context. This will give us actually even better results than fine-tuning. A RAG with chunking technique and more complexity is not necessary at this point.
<instruction>
First, ask the user to provide the job description.
Then, use the following instructions to compare the job description with the resume from the context:

Compare the provided job description with the resume.
Identify and list only exact matches between the job requirements and the candidate's qualifications.
Do not include any inferred or assumed information - only list 100% verifiable matches.
Format the output as follows:

Each requirement from the job description in bold (using ##)
Use "Matches:" to introduce the matching information from the resume
For each match, show the role, company, and duration (using ###)
Below that, list the related tasks or experiences as bullet points

Do not include any XML tags in the output.
If there are no matches for a particular requirement, state "No exact matches found in the resume."
Use exact citations from the resume - do not summarize or rephrase.
Do not make up or presume any information not explicitly provided in the resume.
Show all matches for each requirement.
At the end, add a recommendation section titled "Recommendation:" that suggests whether the candidate is a good fit for the position based solely on the matches found.

Example output format:
[Requirement from job description]
Matches:
[Role] at [Company], [Duration]

[Related task or experience from resume]
[Another related task or experience from resume]

[Another relevant role] at [Company], [Duration]

[Related task or experience from resume]

[Another requirement from job description]
Matches:
[Role] at [Company], [Duration]

[Related task or experience from resume]

[Requirement with no matches]
No exact matches found in the resume.
[Continue for all requirements]
Recommendation:
[Recommendation based on the matches found]
Please provide the job description so I can perform this analysis using the resume from the context.
</instruction>

USE THIS RESUME

>>>>> COPY PASTE YOUR RESUME HERE

If you just want to test, you can use this sample resume:

John Doe
123 Main Street, Anytown, USA 12345
Phone: (555) 123-4567 | Email: john.doe@email.com

SUMMARY
Experienced software engineer with a strong background in web development and cloud technologies. Passionate about creating efficient and scalable solutions.

EDUCATION
Bachelor of Science in Computer Science
University of Technology, Graduated: May 2018

WORK EXPERIENCE

Senior Software Engineer
TechCorp Inc., June 2021 - Present
- Led development of a high-traffic e-commerce platform using React and Node.js
- Implemented CI/CD pipelines using Jenkins, reducing deployment time by 40%
- Mentored junior developers and conducted code reviews

Software Developer
WebSolutions LLC, August 2018 - May 2021
- Developed and maintained RESTful APIs using Python and Django
- Optimized database queries, improving application performance by 25%
- Collaborated with the UX team to implement responsive designs

SKILLS
- Programming Languages: Python, JavaScript, Java
- Web Technologies: React, Node.js, Django, HTML5, CSS3
- Database: MySQL, MongoDB, PostgreSQL
- Cloud Platforms: AWS (EC2, S3, Lambda)

After entering the prompt, make sure to select the desired LLM.

Before we can actually start testing it, we need to select the model to use.

I am using in this tutorial the cheap but powerful GPT-4o-mini. There are a few models default free from Dify; however, some need you to use your own API key. With this, you can overcome the limitations of the free version, however, have the cost control in mind. Currently, the GPT-4o-mini is roughly around $0.15 per million tokens, which is pretty decent. More on the pricing of the API can be found here.

You can decide for yourself which model to use. For the rest of this tutorial, we will use our own API key.

The API key can be set in the settings as shown below.

API Key Settings
API Key Settings
API Key Settings

Now we can select from a wide variety of models as we are using our own API key. Choose GPT-4o-mini.

Model Selection

We have now finished configuring the chatbot (Prompt + LLM) and we can now actually start testing it with a real job description to match with the resume.

Testing Chatbot

For testing purposes, you can use the following job description:

Senior Full Stack Developer

About Us:
We are a rapidly growing tech startup looking for a talented Senior Full Stack Developer to join our innovative team. We're building cutting-edge web applications that are changing the way businesses operate.

Responsibilities:
- Design, develop, and maintain web applications using React and Node.js
- Collaborate with cross-functional teams to define and implement new features
- Optimize application performance and scalability
- Implement and maintain CI/CD pipelines
- Mentor junior developers and conduct code reviews
- Participate in agile development processes

Requirements:
- Bachelor's degree in Computer Science or related field
- 5+ years of experience in full stack web development
- Strong proficiency in React, Node.js, and RESTful API design
- Experience with cloud platforms, preferably AWS
- Familiarity with CI/CD processes and tools
- Knowledge of database design and optimization (SQL and NoSQL)
- Experience with agile development methodologies
- Excellent problem-solving and communication skills

Nice to Have:
- Experience with microservices architecture
- Familiarity with containerization technologies (e.g., Docker)
- Contributions to open-source projects

We offer competitive salary, flexible working hours, and opportunities for professional growth in a dynamic startup environment.

After entering the job description, the result looks pretty good.

Chatbot Result

Let's use this as our initial version. Remember, you can always iterate and update the configurations, prompt models, etc., afterward and update the live version with one click.

Update Configuration

Now we can actually start using and sharing it. We have basically two options: either provide it as a standalone app or embed it in an existing website (like a resume or profile website you are hosting). Let's start with the first option: test the standalone app.

Standalone App

Start a new chat and play around. Optimize the prompt and hit update if necessary.

New Chat
Chat Window
Chat Window

Option 2: Embedding into an Existing Website

This is also a very nice feature if you already have a website with your profile where you can now add some interactivity. For this, just hit the embed into website and copy the code to your website as depicted below.

Embed Code
Embed Code

Now paste the code anywhere on your website.

Embed Code

If all goes well, you should now see on your website at the bottom an icon that pops up the chat window where now the customers/clients/recruiters can ask questions and match your resume.

Chat Icon
Chat Window

And that’s it!

You can now add AI-powered conversations to any static content you have, or offer them as a standalone app with just a few clicks. Dify offers dozens of features like collecting leads from the chatbot, voice support, and many more. Please refer to the documentation for more about other features.

i receive dozenes of job and project proppsal and sometimes these jobs dont closely match my skills. I know it is diffullt for non technies to judge easily whether an it job is a really a good fit or not. For example if a company is looking for a cloud expert, and they dont mention any specific cloud but you have aws and azrue experiecne mentioned in you rresume, how can an non technical person know that you are probably a ggood fit though the term clouc is not mentioend in your resume because you mention the specific cloud you worked with... in scneariso liek this and many others ai can be a big help. But, many companeis and recuritineers have not adapterd it for many reasons yet, but i am sure they soon will:)
But before they do that, you can ease the process and even stand out with your resume by adding some interactivity using an ai chatbot that does exactly that. you can tell him exactly what to focus on and how to interact using natural language the way you use Chatpgt... consider it a first interview with potential customers/emploeryers/recuriters... lets's see how this works.

We use for this Dify, an amazing AI chatbot and workflow platform where you can create a chatbot using a variabity of lLM like gpt, claude etc. , provide your prompt and integrate it on any website or provide it as a standlone app withtout installing or coding anything.. amazing isn't it? The concept or idea of this chatbot can be applied to many other scneairso, but we will use this for the above mentioned use case..

So lets get our hands dirty.

here are the high level steps:

  • Create a new chatbot
  • define the prompt
  • select the llm to use (here gpt-4o-mini)
  • embed it or provide as a standalone app to share

Step by step:

  1. navigate to https://dify.ai/ and sign up (its's free)
  2. GO TO THE DASHBOARD https://cloud.dify.ai/apps
  3. Click on studio > Chatbot

Give your chatbot a name and optionally select an icon...

You can download free icons in Freepik or any other platform if you like

The screen below shows you the configuraton of the chatbot.. you can customize a lot of stuff, like linking to a knoweledge base (we will get to this later) , adding variables, and setting fancy options liek voice commands read out, show citations and many more. But lets keep it simple for now and focus only on the core of the chatbot, the prompt.

Now enter a prompt below in the instructions box...

make sure to add your resume at the bottom of prompt.

for very long or multiple documents there are so called knoweldge base which are much more efficient, but for the sake of simplicity we can inject the prompt into the contxt. this will give us acutally even better results then fine tuning. a RAG with chunking tezczniquene and more complexity not necessary at this point.
<instruction>
First, ask the user to provide the job description.
Then, use the following instructions to compare the job description with the resume from the context:

Compare the provided job description with the resume.
Identify and list only exact matches between the job requirements and the candidate's qualifications.
Do not include any inferred or assumed information - only list 100% verifiable matches.
Format the output as follows:

Each requirement from the job description in bold (using ##)
Use "Matches:" to introduce the matching information from the resume
For each match, show the role, company, and duration (using ###)
Below that, list the related tasks or experiences as bullet points


Do not include any XML tags in the output.
If there are no matches for a particular requirement, state "No exact matches found in the resume."
Use exact citations from the resume - do not summarize or rephrase.
Do not make up or presume any information not explicitly provided in the resume.
Show all matches for each requirement.
At the end, add a recommendation section titled "Recommendation:" that suggests whether the candidate is a good fit for the position based solely on the matches found.

Example output format:
[Requirement from job description]
Matches:
[Role] at [Company], [Duration]

[Related task or experience from resume]
[Another related task or experience from resume]

[Another relevant role] at [Company], [Duration]

[Related task or experience from resume]

[Another requirement from job description]
Matches:
[Role] at [Company], [Duration]

[Related task or experience from resume]

[Requirement with no matches]
No exact matches found in the resume.
[Continue for all requirements]
Recommendation:
[Recommendation based on the matches found]
Please provide the job description so I can perform this analysis using the resume from the context.
</instruction>


USE THIS RESUME 

>>>>> COPY PASTE YOUR RESUME HERE 

If you just want to thest, you can use this sample resume

John Doe
123 Main Street, Anytown, USA 12345
Phone: (555) 123-4567 | Email: john.doe@email.com

SUMMARY
Experienced software engineer with a strong background in web development and cloud technologies. Passionate about creating efficient and scalable solutions.

EDUCATION
Bachelor of Science in Computer Science
University of Technology, Graduated: May 2018

WORK EXPERIENCE

Senior Software Engineer
TechCorp Inc., June 2021 - Present
- Led development of a high-traffic e-commerce platform using React and Node.js
- Implemented CI/CD pipelines using Jenkins, reducing deployment time by 40%
- Mentored junior developers and conducted code reviews

Software Developer
WebSolutions LLC, August 2018 - May 2021
- Developed and maintained RESTful APIs using Python and Django
- Optimized database queries, improving application performance by 25%
- Collaborated with the UX team to implement responsive designs

SKILLS
- Programming Languages: Python, JavaScript, Java
- Web Technologies: React, Node.js, Django, HTML5, CSS3
- Database: MySQL, MongoDB, PostgreSQL
- Cloud Platforms: AWS (EC2, S3, Lambda)

after entering the prompt make sure to select the desired LLM.

Before we can actually start testing it we need to select eh model to use.

I am using in thsi tutorail the cheap but powerful gpt-4o-mini. there are few models default free from dify, however some need you to use your own api key. with this you can overcome the limitations of th efree version, however have the cost control in mind... Currently the gpt-4o-mini is roughly around 0.15$ per million tokens, whcih is pretty decent.. More on the pricing of the API can be found here

youc an decide for yourself which model to use , for the rest of thist tutorial we will use our own api key.

the api key can be set in the settings as shown. below.

now we can select from a wide variety of models as we are using our own api key.. chose gpt-4o-mini.

we now have finiehd configuring the chatbot (Prompt + llm) and we can now actually starting testing it with a real job descirption to match with the resume

For testing purpose you can use the following job descirption


Senior Full Stack Developer

About Us:
We are a rapidly growing tech startup looking for a talented Senior Full Stack Developer to join our innovative team. We're building cutting-edge web applications that are changing the way businesses operate.

Responsibilities:
- Design, develop, and maintain web applications using React and Node.js
- Collaborate with cross-functional teams to define and implement new features
- Optimize application performance and scalability
- Implement and maintain CI/CD pipelines
- Mentor junior developers and conduct code reviews
- Participate in agile development processes

Requirements:
- Bachelor's degree in Computer Science or related field
- 5+ years of experience in full stack web development
- Strong proficiency in React, Node.js, and RESTful API design
- Experience with cloud platforms, preferably AWS
- Familiarity with CI/CD processes and tools
- Knowledge of database design and optimization (SQL and NoSQL)
- Experience with agile development methodologies
- Excellent problem-solving and communication skills

Nice to Have:
- Experience with microservices architecture
- Familiarity with containerization technologies (e.g., Docker)
- Contributions to open-source projects

We offer competitive salary, flexible working hours, and opportunities for professional growth in a dynamic startup environment.

after entering the job desirptkion,, the result looks pretty good ..

Let's use this as our initial version.. remember you can always iterate and upate the configuraitons, prompt modles etc. afterwards and update the live version with one click.

Now we can actully starting using and sharing it... We have basically two options, either provide it as a standalone app

or embedding it in an existing website (like a reusme or profile website you are hosting). Let's tart with the first option: test the standalone app:

Start a new chat and play around. Optimize the prompt and hit update. if necesary

Optino 2: embeeding into an existing website.

This is also a very nice feature if you already have a website with your profile where you can now add some interactivity to. for this just hit the embed into website and copy the code to your webstie was depicted below.

now paste the code anywhere on your webiste.

If all goes well, you should now see in your website at the bottom a icon that pops up the chat window where now the customers / client /recuriters can ask questions and match your resume..

with this approach you can add ai intelligence to any static content you have or offer it as a standalone app with jhust a few click.

There are dozens of features like collecting leads from the chatbot, voice support and many more.. please Refer to the documentation for more about othe feautres.