My Projects

A collection of some of my work as a Software Developer.

The following projects showcase a selection of my work. However, due to NDAs and privacy agreements, I am unable to share many other projects that I have worked on.

LinkedIn Jobs Scraper & University Curriculum Skill Alignment System

This project scrapes job listings from LinkedIn and compares the technical skills required by employers with those taught in university curricula. The goal is to measure how well university programs prepare students for industry demands.

Certificate Generation App

This project is a comprehensive desktop application for generating certificates, managing attendees, and automating the process of sending emails. The app supports importing attendee data from CSV, adjusting QR code settings, and generating certificates using a customizable template. Additionally, the app allows sending certificates as email attachments to the attendees via SMTP configuration.

It includes features such as:

  • CSV import for attendee data
  • QR code size and positioning customization
  • Certificate preview and generation
  • Email automation with customizable SMTP settings
  • Progress tracking and detailed results table

WhatsApp Bot

This project is a Python-based desktop application designed to automate WhatsApp messaging using data fetched from a Google Sheet. The app allows users to configure message delays, manage which rows of the Google Sheet are used, and send messages with attachments via Selenium. It features a sleek, dark-themed interface with real-time status updates and live data fetching from the Google Sheet.

It includes features such as:

  • Integration with Google Sheets for fetching contacts and message details
  • Customizable delay range between messages
  • Row-based operation control (full sheet or specific row range)
  • Dark mode user interface with real-time status updates
  • Progress tracking and option to resume from where it left off
  • Live updates from Google Sheet during execution
  • WhatsApp message sending via Selenium driver

Property Sniper Bot

This project is a desktop automation application designed to scrape real estate-related data from multiple sources such as logs.com, obituaries, CBC, and Rubin. It collects property addresses based on specific date ranges and compiles them into a unified list. Additionally, it can automate the process of adding these addresses into PropStream for further analysis or use.

It includes features such as:

  • Dark-themed user interface for better visibility and aesthetics
  • Automated scraping of addresses from various real estate and property data sources
  • Date-based filtering for scraping data within a specified range
  • Support for merging and deduplicating addresses from different data sources
  • Automated integration with PropStream to add the scrapped addresses
  • Progress tracking and status updates during the scraping and adding processes

Automated CV Scraper for ICTerGezocht

This project is an automation tool designed to scrape CVs from the ICTerGezocht platform, download them, and store the links to avoid duplicates. The bot logs into the platform, checks for new CVs daily, extracts download links, and handles potential errors during the process. It automates the entire workflow, ensuring that new CVs are captured and stored for further processing.

Key features include:

  • Automated login and session management on ICTerGezocht
  • Scraping and downloading new CVs on a daily basis
  • Duplicate detection and avoidance using stored history
  • Error handling and session recovery in case of failures
  • Periodic task execution with a 24-hour interval for continuous updates

RecruitRobin Automated CV Scraper

This project is an automation tool that scrapes candidate CVs from the RecruitRobin platform, downloads them as PDFs, and keeps track of the already processed CVs to avoid duplication. The bot automates the login process, navigates through candidate profiles, copies profile links, and downloads the CVs using an authentication token. It periodically runs the process every 24 hours to check for new CVs and sends them via email.

Key features include:

  • Automated login and session management for RecruitRobin
  • Daily scraping of new CVs and download as PDF
  • Duplicate detection using stored CV links
  • Error handling and automatic recovery in case of login failures
  • Periodic execution of the scraping process every 24 hours

Multi-Platform Job Posting Automation

This project automates the posting of job vacancies across multiple job boards using a Flask-based web interface. It integrates various job portals, allowing users to fill out job details and post them to multiple platforms with a single submission. The automation handles form data and API requests to streamline the job posting process across different websites like Indeed, JobBird, Werkzoeken, and more.

Key features include:

  • Form-based web interface for entering job details
  • Integration with multiple job boards for simultaneous posting
  • Support for job posting to platforms like JobBird, Indeed, Werkzoeken, and Jooble
  • Handles job title, job description, contact details, and more
  • Real-time feedback on the job posting process with message logging
  • Automatic saving of posting results and job data to JSON files

Amazon Tool for Product Analysis and Automation

This tool is a robust desktop application designed for automating the process of scraping product data from Amazon and filtering the results based on user-defined criteria. Built using Python and Tkinter, it allows users to retrieve product categories, extract product data, and perform detailed product analysis with the ability to filter by reviews and monthly revenue. The tool includes both automatic and manual modes for flexibility.

Key features include:

  • Automatic and manual modes for retrieving Amazon product categories and subcategories
  • Multi-threaded support for faster product extraction and search
  • Filtering capabilities for CSV files based on criteria like review count and monthly revenue
  • Supports custom search topics and allows real-time search progress tracking
  • Dark-themed GUI with real-time status updates for improved user experience
  • CSV export of filtered results for further analysis

Google Search URL Index Checker

This project is a Python-based tool that automates Google searches to check if specific URLs are indexed by Google. It uses Selenium WebDriver to control a headless browser, perform searches, and retrieve search results. The tool is designed to handle a list of URLs and report whether each URL is indexed or not.

It includes features such as:

  • Automated Google searches using Selenium WebDriver
  • Headless browser operation for faster performance
  • Customizable search intervals based on user preferences (Slow, Medium, Fast)
  • Validation of URLs loaded from a file
  • Result export to CSV for easy analysis
  • Support for error handling and retries in case of Google CAPTCHA or timeouts

Automated TikTok Creator Messaging Bot

This project is a Python-based bot that automates messaging TikTok creators through TikTok's affiliate platform. It uses Selenium WebDriver to log into a TikTok account, navigate to a specific creator's messaging page, and send predefined messages to multiple creators. The bot also includes functionality to store and reuse cookies for automatic login, and to ensure that it adheres to TikTok's messaging limits.

It includes features such as:

  • Automated TikTok login using saved cookies
  • Batch sending of messages to a list of TikTok creators
  • Product name attachment in each message
  • Support for error handling, retries, and logging of sent messages
  • Creator ID retrieval using TikTok's API
  • Daily message limit tracking and enforcement to prevent spam

Crypto/Web3 User Scoring System

This project is a Python-based system that analyzes Twitter bios and tweets to calculate how likely a person is to be a founder or key contributor in the crypto or web3 space. It uses a weighted keyword system to score the relevance of crypto-related topics found in user-generated content and integrates AI to refine scoring predictions.

It includes features such as:

  • Keyword-based scoring for crypto and web3 terms in user bios and tweets
  • Integration with Google Sheets to fetch user data
  • AI-based scoring using the OpenAI or Anthropic API for enhanced accuracy
  • Batch processing of users and generation of scores between 1 and 5
  • Support for JSON-based data storage and retrieval
  • Error handling and logging to track missing or problematic users

App Keywords Data Extraction Tool

This project is a Python-based tool that extracts app keyword rankings from the AppTweak API for various app categories. It automates the process of retrieving app IDs, fetching keyword rankings, and saving the results as CSV files. The tool supports multi-threading to speed up data collection and provides detailed control over API requests and sleep intervals.

It includes features such as:

  • Fetching app IDs from the AppTweak API for specific categories (e.g., "free" or "grossing")
  • Multi-threaded requests to efficiently gather keyword data
  • Saving keyword rankings for each app in CSV format
  • Customizable request intervals to manage API rate limits
  • Error handling and retry logic for API failures or timeouts
  • Merging of individual keyword data files into a comprehensive dataset

Twitter Bot - FPL Transfers and Player Data Monitoring Tool

This project is a Python and Flask-based tool designed to automate the process of monitoring fantasy football player transfers and posting updates to Twitter. It fetches transfer details for players and posts updates about player movements, while also allowing users to manage player data through a web interface.

It includes features such as:

  • Fetching player transfer data from the Fantasy Premier League (FPL) API
  • Automated tweeting of transfer details, including player names and teams
  • Multi-threaded execution to handle multiple players concurrently
  • Management of player data through a user-friendly Flask web interface
  • Error handling and retry logic for failed API requests or timeouts
  • CSV-based data storage for player details and past tweets

GPT-3.5 Fine-Tuning Web Interface

This project is a Python and Flask-based web interface designed to help users fine-tune OpenAI's GPT-3.5 model using custom prompts and parameters. It allows users to input API keys, adjust model parameters, and monitor the fine-tuning process in real-time.

It includes features such as:

  • API key input to authenticate and interact with OpenAI's API
  • Dropdown for selecting default prompts, or entering custom prompts for fine-tuning
  • Adjustable temperature slider to control response creativity
  • Support for setting the number of examples to generate for training
  • A 'Train' button to initiate the process of generating examples for fine-tuning
  • Option to start fine-tuning with the collected data via the 'Create Fine Tune' button
  • A real-time status area to display the current progress of the fine-tuning process
  • Handles the fine-tuning process in the background using threading to allow the user to continue other activities while it runs
  • Error handling and retry logic to ensure smooth operation during fine-tuning