AI Job Search Agent avatar

AI Job Search Agent

Try for free

This Actor is paid per event

Go to Store
AI Job Search Agent

AI Job Search Agent

louisdeconinck/ai-job-search-agent
Try for free

This Actor is paid per event

The AI Job Search Agent automates job hunting by analyzing your LinkedIn profile, identifying relevant roles, searching for matches, and generating personalized cover letters using AI and web scraping.

The AI Job Search Agent is an automated tool that helps job seekers find and apply for the most relevant positions based on their LinkedIn profile. Using advanced AI models and web scraping techniques, this agent analyzes your professional background, identifies suitable job titles, searches for matching opportunities, selects the most appropriate positions, and even generates personalized cover letters.

Features

  • LinkedIn Profile Analysis: Extracts and analyzes your LinkedIn profile to understand your skills, experience, and qualifications
  • Job Title Recommendation: Suggests the most relevant job titles based on your professional background
  • Automated Job Search: Searches LinkedIn for job opportunities matching the recommended titles
  • Intelligent Job Selection: Selects the 5 most relevant and varied positions from the search results
  • Personalized Cover Letters: Generates tailored cover letters for each selected job
  • Comprehensive Report: Creates a detailed markdown report with all findings and recommendations

Technology Stack

  • Python: Core programming language
  • Apify: Web scraping and data extraction
  • Pydantic AI: Structured data validation and AI integration
  • Google Gemini AI: Advanced language model for analysis and content generation

Architecture

The AI Job Search Agent follows a sequential workflow:

  1. Profile Extraction: The agent uses Crawlee and Apify's LinkedIn Profile Scraper to extract your professional data from LinkedIn.
  2. Profile Analysis: The extracted profile data is processed and analyzed to identify key skills, experiences, and qualifications.
  3. Job Title Generation: Based on the profile analysis, the system recommends the most suitable job titles.
  4. Job Search: Using Crawlee and Apify's LinkedIn Job Scraper, the agent searches for positions matching the recommended titles.
  5. Job Filtering & Ranking: The system evaluates each job opportunity against your profile, filtering and ranking them by relevance.
  6. Job Selection: The top 5 most relevant and diverse positions are selected from the ranked results.
  7. Cover Letter Generation: For each selected job, a personalized cover letter is generated based on your profile and the job requirements.
  8. Report Generation: Finally, all findings and recommendations are compiled into a comprehensive markdown report.

This pipeline ensures a thorough, data-driven approach to job searching that leverages both web scraping capabilities and AI-powered analysis.

Input Parameters

The agent requires the following input:

1{
2  "linkedin_profile_url": "https://www.linkedin.com/in/yourprofile/"
3}

Output

The agent generates several outputs:

  1. LinkedIn Profile Information: Extracted data from your LinkedIn profile
  2. Recommended Job Titles: List of suitable job titles based on your profile
  3. Selected Jobs: Details of the 5 most relevant jobs found
  4. Cover Letters: Personalized cover letters for each selected job
  5. Markdown Report: A comprehensive report summarizing all findings and recommendations

Project Structure

1ai-job-search-agent/
2├── README.md
3├── requirements.txt
4├── src/
5│   ├── __init__.py
6│   ├── main.py         # Main application logic
7│   ├── models.py       # Pydantic data models
8│   ├── prompts.py      # AI system prompts
9│   └── tools.py        # LinkedIn scraping functions

Key Components

LinkedIn Profile Analyzer

The profile analyzer extracts information from a LinkedIn profile using Apify's LinkedIn Profile Scraper. It then processes this data to identify the user's skills, experience, education, and other relevant information.

Job Title Recommender

Using the Google Gemini AI model, the system analyzes the LinkedIn profile information to recommend the 5 most suitable job titles for the user.

For each recommended job title, the system searches LinkedIn using Apify's LinkedIn Job Scraper to find relevant job opportunities.

Job Selection and Cover Letter Generation

The AI evaluates all job opportunities and selects the 5 most relevant positions. For each selected job, it generates a personalized cover letter that highlights the user's most relevant qualifications.

Report Generation

Finally, the system creates a comprehensive markdown report that includes the profile analysis, recommended job titles, selected jobs, personalized cover letters, and an executive summary.

Example Output

The markdown report includes:

  • Profile overview with name, headline, and location
  • List of recommended job titles
  • Details of each selected job including:
    • Job title and company
    • Location and job URL
    • Reason why the job was selected
    • Personalized cover letter
  • Executive summary with job search strategy insights

JSON output:

1{
2  "linkedin_profile_info": {
3    "firstName": "Louis",
4    "lastName": "Deconinck",
5    "headline": "Freelance Data Consultant & Apify Data Scraper",
6    "addressCountryOnly": "Belgium",
7    "addressWithoutCountry": "Kortrijk, Flemish Region",
8    "about": "Looking for freelance / contract (ZZP) business intelligence or data analysis work. \n\nData Engineer & Data Analyst: Power BI, SQL, Python, Azure Cloud, Excel, VBA, Fabric, Power Query, SAS, Git, Data Modelling, Data Governance & Business Intelligence",
9    "experiences": [
10      {
11        "title": "Business Intelligence Expert",
12        "subtitle": "ABN AMRO Bank N.V. · Freelance",
13        "caption": "Nov 2023 - Present · 1 yr 5 mos",
14        "description": "ABN Amro is the third largest bank in The Netherlands. I trained 14 in-house data stewards on Microsoft Power BI (DAX), Power Query (M-code), and data modeling. I played an important role in the setup of a Belgian branch data warehouse in Azure Databricks (Apache Spark) by performing data quality monitoring on Azure Data Factory migration pipelines from operational systems toward a data lake."
15      },
16      {
17        "title": "Web Scraping Developer",
18        "subtitle": "Apify · Self-employed",
19        "caption": "Oct 2024 - Present · 6 mos",
20        "description": "Developed over 50 custom built B2B lead generation web scrapers in Typescript & Python using Crawlee & Apify with over 400 monthly active users. Scraped over 10,000,000 pages avoiding advanced anti-scraping measures."
21      }
22    ],
23    "educations": [
24      {
25        "title": "University of Oxford",
26        "subtitle": "Undergraduate Advanced Diploma, IT Systems Analysis & Design",
27        "caption": "2020 - 2021",
28        "description": "I followed courses on software development, project management, data management and business & functional analysis together with international IT experts. I achieved the highest possible grade of Distinction. The University of Oxford is the highest-ranked university in the world according to Times Higher Education."
29      },
30      {
31        "title": "Ghent University",
32        "subtitle": "Master of Science - MS, Business Administration: Finance & Risk",
33        "caption": "2015 - 2019",
34        "description": "My master dissertation's topic was: \"Acquisition by private equity vs industrial holding: impact on performance\" under the supervision of Rudy Aernoudt, Chief Economist of the European Commission. My team won the Business Strategy Game by McGraw-Hill during our course Strategic Management. Ghent University is the highest ranked Belgian university according to the Shanghai ranking."
35      }
36    ],
37    "licenseAndCertificates": [
38      {
39        "title": "Fabric Analytics Engineer (DP-600)",
40        "subtitle": "Microsoft",
41        "caption": "Issued Jun 2024"
42      },
43      {
44        "title": "CS50: Programming, Python, SQL & Web Development",
45        "subtitle": "Harvard University",
46        "caption": "Issued Mar 2024"
47      }
48    ],
49    "honorsAndAwards": [
50      {
51        "title": "Winner AFC Data Challenge",
52        "subtitle": "Issued by Academics for Companies · Mar 2022",
53        "description": "Out of 11 teams, our team won first place in the AFC Data Challenge. We formulated data-driven business solutions for an online retail player using Power BI & Python."
54      },
55      {
56        "title": "Winner Business Strategy Game",
57        "subtitle": "Issued by McGraw-Hill · Feb 2019",
58        "description": "BSG is a business simulation. Our team was able to secure the first position in our industry."
59      }
60    ],
61    "languages": [
62      {
63        "title": "Dutch",
64        "caption": "Native or bilingual proficiency"
65      },
66      {
67        "title": "English",
68        "caption": "Native or bilingual proficiency"
69      }
70    ],
71    "volunteerAndAwards": [
72      {
73        "title": "Math & Statistics Tutor",
74        "subtitle": "Superprof",
75        "caption": "Jan 2020 - Present · 5 yrs 3 mos"
76      },
77      {
78        "title": "Reasearch Analyst",
79        "subtitle": "Curvo",
80        "caption": "Jun 2023 - Dec 2023 · 7 mos"
81      }
82    ],
83    "projects": [
84      {
85        "title": "Credit Risk Modelling: Probability of Default",
86        "subtitle": "Aug 2023 - Aug 2023",
87        "description": "Developed two statistical credit risk models for probability of default (PD) in Python with Scikit-learn and XGBoost: logistic regression versus gradient boosted trees. I performed data cleaning, compared and improved model performance and calculated expected loss (EL) using exposure at default (EAD) and loss given default (LGD)."
88      },
89      {
90        "title": "Boat Sales Data Analysis",
91        "subtitle": "Sep 2022 - Sep 2022",
92        "description": "Analyzing listings for a boat sales newsletter. Performed data exploration, cleaning and analysis in Python using libraries: Pandas, Numpy, Matplotlib and Seaborn. Formulated business recommendations to increase newsletter readership."
93      }
94    ],
95    "publications": [
96      {
97        "title": "Diagnosis and monitoring denosumab therapy of giant cell tumors of bone: radiologic-pathologic correlation",
98        "subtitle": "Skeletal Radiology · Jul 29, 2023",
99        "description": "Helped perform data analysis for this medical paper on the correlation between radiology and pathology for bone tumors."
100      },
101      {
102        "title": "Acquisition by Private Equity Player versus Holding: Impact on Performance",
103        "subtitle": "Ghent University · Jun 6, 2019",
104        "description": "Master's dissertation on acquisitions by private equity players and holdings under the supervision of professor Rudy Aernoudt, Chief Economist of the European Commission."
105      }
106    ],
107    "skills": [
108      "Apify",
109      "Web Crawling",
110      "TypeScript",
111      "Excel",
112      "Power BI",
113      "MySQL",
114      "Transact-SQL (T-SQL)",
115      "Python",
116      "Data Analysis"
117    ],
118    "linkedinUrl": "https://www.linkedin.com/in/louisdeconinck/"
119  },
120  "selected_job_titles": [
121    "Data Consultant",
122    "Business Intelligence Consultant",
123    "Data Analyst",
124    "Data Engineer",
125    "Web Scraping Developer"
126  ],
127  "selected_jobs": [
128    {
129      "job_id": "4181413685",
130      "job_title": "Corporate Finance Consultant – Financiële en Fiscale Due Diligence",
131      "job_description": "...",
132      "company_name": "Titeca Pro Accountants & Experts",
133      "company_url": "https://be.linkedin.com/company/titeca-pro",
134      "location": "Roeselare, Flemish Region, Belgium",
135      "time_posted": "1 week ago",
136      "num_applicants": "Be among the first 25 applicants",
137      "salary_range": null,
138      "job_url": "https://be.linkedin.com/jobs/view/corporate-finance-consultant-%E2%80%93-financi%C3%ABle-en-fiscale-due-diligence-at-titeca-pro-accountants-experts-4181413685",
139      "apply_url": "https://www.titeca.be/nl/vacature/corporate-finance-consultant-financiele-en-fiscale-due-diligence/",
140      "seniority_level": "Mid-Senior level",
141      "employment_type": "Full-time",
142      "job_function": "Finance and Sales",
143      "industries": "Accounting",
144      "reason": "This role aligns perfectly with Louis's finance and risk background, M&A experience, and data analysis skills. His experience with financial data analysis, risk assessment, and due diligence makes him a strong candidate.",
145      "cover_letter": "Dear Hiring Manager,\n\nI am writing to express my interest in the Corporate Finance Consultant position at Titeca Pro Accountants & Experts, as advertised on LinkedIn. With my Master's degree in Business Administration: Finance & Risk from Ghent University and my advanced diploma in IT Systems Analysis & Design from the University of Oxford, combined with my experience in business intelligence and data analysis, I am confident I possess the skills and expertise to excel in this role.\n\nIn my previous role as a Business Intelligence Expert at ABN AMRO Bank N.V., I trained data stewards on Microsoft Power BI and data modeling, and contributed to the setup of a data warehouse in Azure Databricks. As a Senior Credit Risk Analyst at Argenta, I analyzed financial bank data using SAS, SQL, Excel, and Power Query, and guided a data migration as a Data Steward. These experiences have equipped me with a strong understanding of financial, accounting, and fiscal data analysis, as well as corporate finance principles.\n\nI am particularly drawn to Titeca Pro's commitment to providing clear and substantiated insights to clients, and I am eager to contribute my analytical skills to help clients make informed strategic decisions. I am proficient in MS Office and data analysis tools, and I am confident in my ability to identify critical risks and opportunities within M&A transactions.\n\nThank you for considering my application. I am excited about the opportunity to contribute to Titeca Pro Accountants & Experts and look forward to discussing my qualifications further.\n\nSincerely,\nLouis Deconinck"
146    }
147  ],
148  "summary": "The job selection strategy focuses on roles that leverage Louis's existing skills in data analysis, business intelligence, and financial modeling, while also providing opportunities for growth and variety. The selected positions span different industries (finance, retail, manufacturing, staffing) and seniority levels (entry-level to mid-senior), ensuring a diverse set of opportunities. Key themes include data analysis, Power BI, SQL, and Azure Cloud, aligning with Louis's core competencies. Prioritization should be given to the mid-senior level roles at Hays and Valiuz, as they offer the best combination of experience utilization and career advancement potential. The Young Graduate Analytics Consultant position at Unilin is also a strong contender due to Unilin's focus on innovation and sustainability, which may appeal to Louis's values. The DataKhi role provides an opportunity to apply his skills in a startup environment, which could be a good fit if Louis is looking for a more entrepreneurial experience. Finally, the Corporate Finance Consultant role at Titeca Pro directly utilizes his finance background and offers a unique opportunity to apply his data skills in the M&A space.",
149  "markdown_report": "..."
150}

Markdown output:

1# Job Search Report for Louis Deconinck
2Generated on 2025-03-17 21:31:17
3
4## Profile Overview
5- **Current Headline**: Freelance Data Consultant & Apify Data Scraper
6- **Location**: Kortrijk, Flemish Region, Belgium
7- **LinkedIn URL**: https://www.linkedin.com/in/louisdeconinck/
8
9## Suggested Job Titles
10Based on your profile analysis, here are the most relevant job titles for your background:
11
12- Data Consultant
13- Business Intelligence Consultant
14- Data Analyst
15- Data Engineer
16- Web Scraping Developer
17
18## Selected Job Opportunities
19
20### Corporate Finance Consultant – Financiële en Fiscale Due Diligence at Titeca Pro Accountants & Experts
21**Location**: Roeselare, Flemish Region, Belgium
22**Job ID**: [4181413685](https://be.linkedin.com/jobs/view/corporate-finance-consultant-%E2%80%93-financi%C3%ABle-en-fiscale-due-diligence-at-titeca-pro-accountants-experts-4181413685)
23
24#### Why This Role?
25This role aligns perfectly with Louis's finance and risk background, M&A experience, and data analysis skills. His experience with financial data analysis, risk assessment, and due diligence makes him a strong candidate.
26
27#### Cover Letter
28Dear Hiring Manager,
29
30I am writing to express my interest in the Corporate Finance Consultant position at Titeca Pro Accountants & Experts, as advertised on LinkedIn. With my Master's degree in Business Administration: Finance & Risk from Ghent University and my advanced diploma in IT Systems Analysis & Design from the University of Oxford, combined with my experience in business intelligence and data analysis, I am confident I possess the skills and expertise to excel in this role.
31
32In my previous role as a Business Intelligence Expert at ABN AMRO Bank N.V., I trained data stewards on Microsoft Power BI and data modeling, and contributed to the setup of a data warehouse in Azure Databricks. As a Senior Credit Risk Analyst at Argenta, I analyzed financial bank data using SAS, SQL, Excel, and Power Query, and guided a data migration as a Data Steward. These experiences have equipped me with a strong understanding of financial, accounting, and fiscal data analysis, as well as corporate finance principles.
33
34I am particularly drawn to Titeca Pro's commitment to providing clear and substantiated insights to clients, and I am eager to contribute my analytical skills to help clients make informed strategic decisions. I am proficient in MS Office and data analysis tools, and I am confident in my ability to identify critical risks and opportunities within M&A transactions.
35
36Thank you for considering my application. I am excited about the opportunity to contribute to Titeca Pro Accountants & Experts and look forward to discussing my qualifications further.
37
38Sincerely,
39Louis Deconinck
40
41---
42### DATA ANALYST at DataKhi
43**Location**: Tourcoing, Hauts-de-France, France
44**Job ID**: [3462720209](https://fr.linkedin.com/jobs/view/data-analyst-at-datakhi-3462720209)
45
46#### Why This Role?
47This role is a good fit because it requires Power BI and SQL skills, which Louis possesses. The job also mentions Azure Cloud, which aligns with his experience. It provides an opportunity to apply his skills in a startup environment.
48
49#### Cover Letter
50Dear Hiring Manager,
51
52I am writing to express my interest in the Data Analyst position at DataKhi, as advertised on LinkedIn. With my experience in data analysis, Power BI, SQL, and Azure Cloud, I am confident I possess the skills and expertise to excel in this role and contribute to your dynamic startup.
53
54In my previous roles, I have developed a strong foundation in data analysis and business intelligence. As a Business Intelligence Expert at ABN AMRO Bank N.V., I trained data stewards on Microsoft Power BI and data modeling. As a Senior Credit Risk Analyst at Argenta, I analyzed financial bank data using SAS, SQL, Excel, and Power Query. These experiences have equipped me with the skills to analyze business problems, manipulate data, create dashboards, and ensure data flow accuracy.
55
56I am particularly drawn to DataKhi's focus on data expertise and sustainable development, and I am eager to contribute my analytical skills to help your company make data-driven decisions. I am proficient in Power BI, SQL, and Azure Cloud, and I am confident in my ability to create new data flows and participate in the development of your startup.
57
58Thank you for considering my application. I am excited about the opportunity to contribute to DataKhi and look forward to discussing my qualifications further.
59
60Sincerely,
61Louis Deconinck
62
63---
64### Young Graduate Analytics Consultant at Unilin
65**Location**: Waregem, Flemish Region, Belgium
66**Job ID**: [4158765196](https://be.linkedin.com/jobs/view/young-graduate-analytics-consultant-at-unilin-4158765196)
67
68#### Why This Role?
69This role is suitable for a recent graduate and aligns with Louis's data analysis skills, Power BI proficiency, and interest in building data platforms. The focus on Azure and PowerBI matches his experience.
70
71#### Cover Letter
72Dear Hiring Manager,
73
74I am writing to express my interest in the Young Graduate Analytics Consultant position at Unilin, as advertised on LinkedIn. With my Master's degree in Business Administration: Finance & Risk from Ghent University and my advanced diploma in IT Systems Analysis & Design from the University of Oxford, combined with my strong affinity for data analysis and reporting tools, I am confident I possess the skills and expertise to excel in this role.
75
76In my previous role as a Business Intelligence Expert at ABN AMRO Bank N.V., I trained data stewards on Microsoft Power BI and data modeling, and contributed to the setup of a data warehouse in Azure Databricks. As a Senior Credit Risk Analyst at Argenta, I analyzed financial bank data using SAS, SQL, Excel, and Power Query. These experiences have equipped me with a strong understanding of data analysis, reporting, and the translation of data into actionable insights.
77
78I am particularly drawn to Unilin's enthusiasm for new talent and the opportunity to contribute to the development of the Azure and PowerBI dataplatform. I am eager to analyze reporting needs, set up solutions, and share new trends with the Unilin Data & Analytics community. I am also excited about the potential to work with new technologies such as machine learning and AI.
79
80Thank you for considering my application. I am excited about the opportunity to contribute to Unilin and look forward to discussing my qualifications further.
81
82Sincerely,
83Louis Deconinck
84
85---
86### Data Analyst Retail Media at Valiuz
87**Location**: Lille, Hauts-de-France, France
88**Job ID**: [4164107331](https://fr.linkedin.com/jobs/view/data-analyst-retail-media-at-valiuz-4164107331)
89
90#### Why This Role?
91This role requires experience with SQL, Python, and data visualization, all of which Louis possesses. The focus on retail media provides a different industry context, adding variety to the job selection.
92
93#### Cover Letter
94Dear Hiring Manager,
95
96I am writing to express my interest in the Data Analyst Retail Media position at Valiuz, as advertised on LinkedIn. With my experience in data analysis, SQL, Python, and data visualization tools like Tableau, I am confident I possess the skills and expertise to excel in this role and contribute to the performance of your retail media campaigns.
97
98In my previous roles, I have developed a strong foundation in data analysis and business intelligence. As a Business Intelligence Expert at ABN AMRO Bank N.V., I trained data stewards on Microsoft Power BI and data modeling. As a Senior Credit Risk Analyst at Argenta, I analyzed financial bank data using SAS, SQL, Excel, and Power Query. These experiences have equipped me with the skills to measure campaign effectiveness, provide actionable insights, and work with data scientists and product teams.
99
100I am particularly drawn to Valiuz's focus on stimulating collective intelligence and making data an asset for new commerce models. I am eager to analyze campaign performance, identify success factors, and test new approaches to improve ROAS. I am also excited about the opportunity to work with your modern data stack, including Google Big Query, Databricks, and Tableau.
101
102Thank you for considering my application. I am excited about the opportunity to contribute to Valiuz and look forward to discussing my qualifications further.
103
104Sincerely,
105Louis Deconinck
106
107---
108### Data Analyst at Hays
109**Location**: West Flanders, Flemish Region, Belgium
110**Job ID**: [4170759037](https://be.linkedin.com/jobs/view/data-analyst-at-hays-4170759037)
111
112#### Why This Role?
113This role requires 4+ years of experience and proficiency in Azure, SQL, Power BI, and Python, all of which Louis has. It offers a mid-senior level position, providing an opportunity for career advancement.
114
115#### Cover Letter
116Dear Hiring Manager,
117
118I am writing to express my interest in the Data Analyst position at Hays, as advertised on LinkedIn. With over four years of relevant experience and knowledge of Azure, SQL, Power BI, and Python, I am confident I possess the skills and expertise to excel in this role and contribute to your team's success.
119
120In my previous roles, I have developed a strong foundation in data analysis and business intelligence. As a Business Intelligence Expert at ABN AMRO Bank N.V., I trained data stewards on Microsoft Power BI and data modeling. As a Senior Credit Risk Analyst at Argenta, I analyzed financial bank data using SAS, SQL, Excel, and Power Query. These experiences have equipped me with the skills to develop data solutions, analyze business systems, and maintain BI stacks.
121
122I am particularly drawn to Hays's reputation as a market leader in the production of food supplements and vitamins, and I am eager to contribute my analytical skills to help your organization make data-driven decisions. I am proficient in Azure, SQL, Power BI, and Python, and I am confident in my ability to advise on improvements, support users, and ensure data integrity.
123
124Thank you for considering my application. I am excited about the opportunity to contribute to Hays and look forward to discussing my qualifications further.
125
126Sincerely,
127Louis Deconinck
128
129---
130
131## Executive Summary
132The job selection strategy focuses on roles that leverage Louis's existing skills in data analysis, business intelligence, and financial modeling, while also providing opportunities for growth and variety. The selected positions span different industries (finance, retail, manufacturing, staffing) and seniority levels (entry-level to mid-senior), ensuring a diverse set of opportunities. Key themes include data analysis, Power BI, SQL, and Azure Cloud, aligning with Louis's core competencies. Prioritization should be given to the mid-senior level roles at Hays and Valiuz, as they offer the best combination of experience utilization and career advancement potential. The Young Graduate Analytics Consultant position at Unilin is also a strong contender due to Unilin's focus on innovation and sustainability, which may appeal to Louis's values. The DataKhi role provides an opportunity to apply his skills in a startup environment, which could be a good fit if Louis is looking for a more entrepreneurial experience. Finally, the Corporate Finance Consultant role at Titeca Pro directly utilizes his finance background and offers a unique opportunity to apply his data skills in the M&A space.

Configuration

The behavior of the AI models can be adjusted by modifying the system prompts in src/prompts.py and the model settings in src/main.py.

Limitations

  • The agent relies on the availability and accuracy of LinkedIn profile and job data
  • The quality of recommendations depends on how complete and up-to-date your LinkedIn profile is

License

This project is licensed under the MIT License.

Developer
Maintained by Community

Actor Metrics

  • 1 monthly user

  • 1 bookmark

  • >99% runs succeeded

  • Created in Mar 2025

  • Modified a day ago

Categories