Introduction
In today’s competitive job market, organizations receive numerous resumes daily. Manually reviewing each one can be time-consuming and prone to errors. In this blog, we’ll explore how to automate the resume screening process using Microsoft Power Automate. By leveraging its advanced capabilities, we can streamline the hiring process and identify the most promising candidates efficiently.
Step 1. Trigger the Flow
In this article, I used a manual trigger to run this flow. These are cases in business to apply for a job.
- Email Arrival: If the business requirement is to automate the process when an email with a resume attachment arrives, you can set up an email inbox (e.g., [email protected]) to receive candidate resumes. The flow can then be triggered automatically when a new email arrives in this inbox.
- Form Submission: Alternatively, if candidates submit their resumes through a web form (e.g., on the company’s careers page), you can configure the flow to trigger when a form submission occurs. The flow can extract the resume data from the form and initiate further actions.
In the current setup, the flow is manually triggered. For test purposes, I used a manual trigger and a file upload as input to upload the resume.
This trigger we will change based on business requirements.
![Business requirements]()
Step 2. Extract Resume Data
Here we will take the AI builder model “Extract information from documents”, mostly it is trained to take information from documents but if you think this model is not providing the information you want you can customize this model and train a model for your purposes as I did in this demo.
![AI builder model]()
I've created an AI model named the "Resume Processing Model" specifically designed to extract crucial information from resumes, including names, skills, and experience. This model is aimed at aligning candidate profiles with job descriptions efficiently. If you require additional information extraction beyond these three fields, you have the flexibility to incorporate more fields into the model.
In case you're unfamiliar with the process of training the model, fret not. In a subsequent blog post, I'll delve into the intricacies of model training, providing step-by-step guidance. You'll find an upload link within that post, which you can utilize to train your own model according to your specific requirements. Stay tuned for the upcoming blog post, where I'll provide detailed instructions to help you make the most out of the "Resume Processing Model" for your recruitment needs.
Step 3. Screening using ChatGPT
The information we obtain from the previous step will be passed to the Power Automate ChatGPT model. This model will screen candidates for the job opening and provide us with information on whether the candidate is suitable or not, along with the reasons for the assessment.
Again, we will add the Ai Builder model “Generate Text using ChatGPT” and again here we need to create a model that I created for resume scanning. I created a model “Ai Resume Screening”
![Generate Text using ChatGPT]()
There is another blog on how you can create ChatGPT responses In Power Automate please refer to that post to create your own PowerAutomate ChatGPT model.
Here is what I created.
![ChatGPT model]()
With 3 dynamics inputs,
My prompt
“Previous instruction should be ignored. Write in the English language for a response. Do not explain what you are doing. Do not self-reference. You are hiring a manager for the role given in detail. Role responsibility is also given below and candidate details as well please check candidate information and suggest whether this candidate is suitable for the given job or not. First start with whether it is suitable or not suitable. Then write a note, about why it is not suitable or suitable. For this role.
The job requirement is below.
- Knowledge Required: Business Strategy, Market Analysis, Financial Planning
- Skill Required: Leadership, Decision-making, Negotiation
- Attitude Required: Proactive, Visionary, Responsible
- Responsibility: Overseeing company operations, Strategic Planning, Building relationships
- Job Description: Lead the company toward its mission and vision and ensure financial performance and growth.
Experience Of years " 5
candidate details are here,
So information we are getting from the “Resume Processing Model” We are passing “AI Resume Screening” to verify candidate is suitable or not using AI.
Step 4. Final Action - Send an Email To the Hiring Manager
Finally, based on the extracted information, you can send an email to the candidate, either inviting them for an interview or thanking them for their interest.
- To: Specify the email address you want to send.
- Subject: I took 74 char from my output to highlight candidate stability.
- Body: Generated Text by Chat GPT.
Here is my code for this.
{
"type": "OpenApiConnection",
"inputs": {
"parameters": {
"emailMessage/To": "[email protected]",
"emailMessage/Subject": "@{variables('vSubject')} .....",
"emailMessage/Body": "<p>Hi Sandeep,</p><br><p>We got a candidate for open JD. Here is AI recommendation after resume assessment. </p><br><p>@{outputs('Create_text_with_GPT_using_a_prompt')?['body/responsev2/predictionOutput/text']}</p><br><br><p>Thanks,</p><p>Ai Resume Screening Manager</p><br><br>",
"emailMessage/Importance": "Normal"
},
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_office365",
"connection": "shared_office365",
"operationId": "SendEmailV2"
}
},
"runAfter": {
"Initialize_variable": [
"Succeeded"
]
}
}
Here is the image of the send email action.
![Send email action]()
Conclusion
By automating the résumé screening process, you’ll save time, reduce errors, and ensure a consistent approach. Power Automate empowers you to focus on the most promising candidates, ultimately enhancing productivity and improving the hiring experience.
Remember, this flow can be customized further to meet your specific needs.
Happy automating!