An AI-powered tool that generates personalized icebreakers and conversation starters based on LinkedIn profiles. This project uses IBM watsonx.ai and LlamaIndex to create a tool that helps make introductions more personal and engaging.
Imagine you're heading to a big networking event, surrounded by potential employers and industry leaders. You want to make a great first impression, but you're struggling to come up with more than the usual, "What do you do?"
This AI icebreaker bot does the research for you. You input a name, and within seconds, the bot searches LinkedIn, generating personalized icebreakers based on someone's career highlights, interests, and even fun facts.
- Extract LinkedIn profile data using ProxyCurl API or mock data
- Process and index the data using LlamaIndex and IBM watsonx embeddings
- Generate interesting facts about a person's career or education
- Answer specific questions about the LinkedIn profile
- Interact with the bot through a command-line interface or a Gradio web UI
icebreaker_bot/
├── requirements.txt # Dependencies
├── config.py # Configuration settings
├── modules/
│ ├── __init__.py
│ ├── data_extraction.py # LinkedIn profile data extraction
│ ├── data_processing.py # Data splitting and indexing
│ ├── llm_interface.py # LLM setup and interaction
│ └── query_engine.py # Query processing and response generation
├── app.py # Gradio interface
└── main.py # Main script to run without Gradio
- Python 3.11+
- A ProxyCurl API key (optional - you can use mock data)
- Clone the repository:
git clone https://github.com/HaileyTQuach/icebreaker.git
cd icebreaker
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Add your ProxyCurl API key to
config.py
(optional)
Run the bot using the command line:
python main.py --mock # Use mock data
# OR
python main.py --url "https://www.linkedin.com/in/username/" --api-key "your-api-key"
Launch the Gradio web interface:
python app.py
Then open your browser to the URL shown in the terminal (typically http://127.0.0.1:7860).
This is a starter template with placeholder functions. Your task is to implement the following components:
-
In
config.py
:- Define the prompt templates for facts generation and question answering
-
In
modules/data_extraction.py
:- Implement the
extract_linkedin_profile
function
- Implement the
-
In
modules/data_processing.py
:- Implement the
split_profile_data
function - Implement the
create_vector_database
function - Implement the
verify_embeddings
function
- Implement the
-
In
modules/llm_interface.py
:- Implement the
create_watsonx_embedding
function - Implement the
create_watsonx_llm
function - Implement the
change_llm_model
function
- Implement the
-
In
modules/query_engine.py
:- Implement the
generate_initial_facts
function - Implement the
answer_user_query
function
- Implement the
-
Update
modules/__init__.py
to import your implemented functions -
In
main.py
:- Implement the
process_linkedin
function - Implement the
chatbot_interface
function
- Implement the
-
In
app.py
:- Implement the
process_profile
function - Implement the
chat_with_profile
function
- Implement the
This project is licensed under the MIT License - see the LICENSE file for details.
- IBM watsonx.ai for providing the LLM and embedding models
- LlamaIndex for the data indexing and retrieval framework
- ProxyCurl for LinkedIn profile data extraction