Skip to content

My data science contribution to ALX Connect. Major work was done on a private repo, I made this public version just to showcase a glimpse of what I have done. I give a shoutout to Triggerfish and Mccoy for their contributions too.

Notifications You must be signed in to change notification settings

sheidheda/ALX-Connect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ALX Connect

ALX Connect is a FastAPI-based web service designed as a hub for AI-driven tools and services. This API provides endpoints to assist users with resume parsing, job matching, interview preparation, and data-to-DataFrame conversion.

Features

  • Root Endpoint: Provides a welcoming message to users.
  • Resume Summary Endpoint: Parses a resume PDF, summarizes the content, and extracts relevant skills and experiences tailored to a provided job description.
  • Mentor-Mentee Matcher Endpoint: Converts JSON data to a Pandas DataFrame, profiles user data, and recommends mentor matches.
  • Interview Preparation Endpoint: Offers a chatbot for interview preparation with both synchronous and asynchronous communication modes.

Requirements

  • Python 3.8+
  • FastAPI
  • Pandas
  • LLamaParse (via Groq API)
  • Uvicorn
  • Additional dependencies as specified in requirements.txt

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/ALX-Connect.git
    cd ALX-Connect
  2. Install the dependencies:

    pip install -r requirements.txt
  3. Set up environment variables:

    • LLAMA_CLOUD_API_KEY: API key for the Llama model.
    • GROQ_API_KEY: API key for the Groq API.

Usage

  1. Run the application:

    uvicorn main:app --host 0.0.0.0 --port 8000
  2. Access the API documentation at http://localhost:8000/docs.

API Endpoints

Root Endpoint

  • URL: /
  • Method: GET
  • Description: Returns a welcome message.
  • Response:
    {
        "message": "Welcome to the AI Services Hub"
    }

Resume Summary Endpoint

  • URL: /generate_summary
  • Method: POST
  • Description: Processes a resume PDF and generates a job-tailored summary.
  • Parameters:
    • user_id (string): User identifier.
    • resume (file): The resume PDF file.
    • job_description (string): Description of the job.
  • Response: Returns a JSON with:
    • Summary of the candidate’s qualifications.
    • Relevant work experience structured by key responsibility and KPIs.
    • Top 10 relevant skills.
  • Example Request:
    {
        "id": "123",
        "summary": ["Summary tailored for job description..."],
        "experience": [
            {
                "Jobtitle": "Data Scientist",
                "company": "Tech Corp",
                "location": "Remote",
                "duration": "2 years",
                "key-responsibility": "Built machine learning models for business insights",
                "kpis": [
                    "Improved model accuracy by 20%",
                    "Reduced processing time by 30%",
                    "Increased revenue by 15%"
                ]
            }
        ],
        "skills": ["Python", "Machine Learning", "Data Analysis", ...]
    }

Mentor-Mentee Matcher Endpoint

  • URL: /data-to-df/
  • Method: POST
  • Description: Converts JSON data to a Pandas DataFrame and recommends Mentor-Mentee matches.
  • Parameters:
    • data (JSON array): List of dictionaries containing user data.
  • Response: JSON-formatted mentor matches based on the input data.

Interview Preparation Endpoint

Interview Preparation Question

  • URL: /ask-question/
  • Method: POST
  • Description: Asks a question and receives a response for interview preparation.
  • Parameters:
    • question (string): Interview question.
    • conversation_id (optional): Unique identifier for the conversation.
  • Response: JSON with conversation ID and AI-generated response.

WebSocket Chat

  • URL: /ws/chat/{conversation_id}
  • Method: WebSocket
  • Description: Real-time interview preparation with continuous dialogue support.
  • Usage:
    • Establish a WebSocket connection and start interacting with the interview bot.

Logging and Error Handling

  • Logging is implemented throughout the application to monitor API calls, responses, and error events.
  • Errors such as file parsing failures or API issues trigger HTTPException responses with appropriate status codes and messages.

License

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

Contributing

We welcome contributions! Please read CONTRIBUTING.md for guidelines on how to contribute to this project.

Contact

For any questions, please reach out to the project maintainer.


This README provides clear, structured information for users to understand and utilize each endpoint.

About

My data science contribution to ALX Connect. Major work was done on a private repo, I made this public version just to showcase a glimpse of what I have done. I give a shoutout to Triggerfish and Mccoy for their contributions too.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages