iklobato e4543b56d7 init
2025-02-20 14:17:42 -03:00
2025-02-20 14:17:42 -03:00
2025-02-20 14:17:42 -03:00
2025-02-20 14:17:42 -03:00
2025-02-20 14:17:42 -03:00
2025-02-20 14:17:42 -03:00
2025-02-20 14:17:42 -03:00

Automatic LinkedIn Answer AI

Automatically respond to LinkedIn messages from recruiters using AI. This bot leverages your resume and professional documents to generate precise, context-aware answers. It uses browser automation, Retrieval-Augmented Generation (RAG), and memory to ensure accurate and personalized responses.


Features

  • Automated LinkedIn Messaging: Replies to recruiter messages in real-time.
  • Document-Based Answers: Uses your resume and professional documents to generate responses.
  • Precision with RAG: Retrieves relevant information from your documents for accurate answers.
  • Memory for Context: Remembers previous interactions for consistent responses.
  • Easy Setup: Simple configuration and no need for LinkedIn API credentials.

Use Cases

  1. Job Seekers: Automatically respond to recruiters with tailored answers based on your resume.
  2. Busy Professionals: Save time by letting the bot handle initial recruiter interactions.
  3. Networking: Maintain professional communication without manual effort.

Installation

  1. Clone the Repository:

    git clone https://github.com/iklobato/automatic-linkedin-answer-ai.git
    cd automatic-linkedin-answer-ai
    
  2. Install Dependencies:

    uv install 
    
  3. Set Up Environment Variables:

    • Create a .env file:
      OPENAI_API_KEY=your_openai_api_key
      
    • Replace your_openai_api_key with your OpenAI API key.
  4. Prepare Documents:

    • Place your resume and other professional documents in the docs/ directory.
    • Supported formats: .txt.
  5. Configure config.yaml:

    linkedin:
      username: "your@email.com"
      password: "your_password"
    deepseek:
      api_key: "your_openai_api_key"
      model: "gpt-4o"
    documents_dir: "docs/"
    bot_disclaimer: "🤖 Automated Response: This is an AI assistant. I'll respond based on my resume and experiences."
    

Usage

  1. Run the Bot:

    python bot.py
    
  2. How It Works:

    • The bot logs into LinkedIn using your credentials.
    • It navigates to your messages and checks for new recruiter messages.
    • For each new message, it retrieves relevant information from your documents and generates a response using OpenAI's GPT model.
    • The bot sends the response with a disclaimer indicating it's an automated reply.
  3. Monitor Logs:

    • The bot logs all actions (e.g., new messages, replies, errors) for debugging.
    • Logs are saved in the console with timestamps.

Customization

1. Add More Documents

  • Place additional .txt files in the docs/ directory.
  • The bot will automatically include them in its knowledge base.

2. Adjust Response Style

  • Modify the bot_disclaimer in config.yaml to change the bot's tone.
  • Update the system_prompt in the generate_response function for custom instructions.

3. Fine-Tune for Precision

  • Use OpenAI's fine-tuning API to train a custom model on your specific dataset.
  • Replace the ChatOpenAI model with your fine-tuned model.

Example Workflow

  1. Recruiter Message:

    Hi, I came across your profile and noticed your experience with Python. Can you tell me more about your projects?
    
  2. Bot Response:

    🤖 Automated Response: This is an AI assistant. I'll respond based on my resume and experiences.
    
    I have worked on several Python projects, including a machine learning model for predicting customer churn and a web scraper for data analysis. You can find more details in my resume.
    

Troubleshooting

1. Login Issues

  • Ensure your LinkedIn credentials in config.yaml are correct.
  • If LinkedIn blocks the login attempt, try using a browser session to verify your account.

2. No Responses

  • Check the logs for errors.
  • Ensure your documents in the docs/ directory contain relevant information.

3. Rate Limits

  • If OpenAI API rate limits are hit, reduce the bot's polling frequency by increasing the time.sleep() duration.

Contributing

Contributions are welcome! Follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature).
  3. Commit your changes (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature/your-feature).
  5. Open a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.


Acknowledgments

Description
No description provided
Readme 39 KiB
Languages
Python 62.9%
Dockerfile 37.1%