Amalgia is a CLI (Command-Line Interface) application built with Go and the Bubble Tea framework. It empowers you to:
- Import your resume and cover letter via a terminal-based file explorer (to be implemented).
- Fetch README files from all your GitHub repositories (both public and private).
- Save the fetched README files to a local directory for further processing.
- Interact with your professional profile using OpenAI's API, enabling you to generate documents like resumes or cover letters, and even chat with your profile data.
- Lay the groundwork for generating an up-to-date professional profile by combining your existing documents with your GitHub project information.
- Features
- Prerequisites
- Installation
- Usage
- Project Structure
- Configuration
- Next Steps
- Contributing
- License
- Acknowledgments
- Contact
- GitHub Integration: Fetches README files from all your GitHub repositories, including private ones.
- Local Storage: Saves the README files to a
readmes
directory for easy access and processing. - OpenAI API Integration:
- Chat with Your Profile: Interact with your professional data to gain insights or prepare for interviews.
- Document Generation: Use AI to generate resumes, cover letters, or other professional documents based on your profile and project data.
- Extensible Framework: Built using Bubble Tea, allowing for easy expansion and customization of the terminal UI.
- Placeholder for File Import: A foundation is set for importing your resume and cover letter via a terminal-based file explorer (implementation pending).
- Go Environment: Go 1.16 or later installed on your system.
- GitHub Personal Access Token:
- Required to access your repositories, especially private ones.
- Generate one from your GitHub account settings with the necessary scopes (
repo
scope is required). - GitHub Token Generation Guide
- OpenAI API Key:
- Needed to access OpenAI's services for generating documents and interacting with your profile.
- Sign up and obtain an API key from OpenAI's website.
git clone https://github.com/alexfigueroa-solutions/amalgia.git
cd amalgia
Set your GitHub Personal Access Token as an environment variable:
export GITHUB_TOKEN=your_personal_access_token
Note: Replace your_personal_access_token
with the token you generated.
Set your OpenAI API key as an environment variable:
export OPENAI_API_KEY=your_openai_api_key
Note: Replace your_openai_api_key
with the API key you obtained from OpenAI.
Run the following command to install the required Go modules:
go mod tidy
Run the application using:
go run main.go
- Start the Application: Upon running, the application initializes and starts the Bubble Tea program.
- Loading Data:
- The application attempts to import your resume and cover letter (currently a placeholder function).
- It fetches the README files from your GitHub repositories.
- OpenAI Interaction:
- Use the integrated OpenAI API to generate professional documents or interact with your profile data.
- Saving READMEs:
- README files are saved to the
readmes
directory within the project. - The application lists the repositories whose READMEs were successfully saved.
- README files are saved to the
- User Interaction:
- Navigate through the terminal UI to access different features.
- Press
q
orctrl+c
to exit the application.
Files Imported:
- /path/to/resume.pdf
- /path/to/cover_letter.pdf
Projects Fetched from GitHub and READMEs saved:
- repository1
- repository2
- repository3
AI-Powered Actions:
- Generate Resume
- Generate Cover Letter
- Chat with Your Profile
Press q to quit.
amalgia/
├── main.go # Main application file
├── go.mod # Go module file
├── go.sum # Go checksum file
├── readmes/ # Directory where README files are saved
├── README.md # This README file
└── config/ # Configuration files and templates
Ensure the following environment variables are set:
GITHUB_TOKEN
: Your GitHub Personal Access Token.OPENAI_API_KEY
: Your OpenAI API Key.
You can customize document templates located in the config/templates
directory (to be implemented). These templates will be used by the OpenAI API to generate personalized documents.
- Objective: Replace the placeholder
getResumeAndCoverLetter
function with actual file selection logic. - Approach:
- Utilize Bubble Tea's
filetree
orfilepicker
components. - Allow users to navigate their file system within the terminal to select their resume and cover letter.
- Utilize Bubble Tea's
- Objective: Enable AI-powered interactions and document generation.
- Approach:
- Use the OpenAI Go client library or make direct API calls.
- Implement commands or menu options in the terminal UI for AI features.
- Handle API responses and errors gracefully.
- Objective: Parse and extract meaningful information from the README files.
- Approach:
- Use libraries like
goldmark
for Markdown parsing. - Extract project descriptions, technologies used, and key accomplishments.
- Use libraries like
- Objective: Combine your existing resume, cover letter, and GitHub project information into a cohesive, updated professional profile.
- Approach:
- Use the OpenAI API to generate or enhance your resume based on your data.
- Incorporate templating for consistent formatting.
- Allow customization of generated content.
- Provide informative messages in case of errors.
- Implement logging to track the application's behavior and issues.
- Customize the Bubble Tea interface for a better user experience.
- Add navigation instructions and visual enhancements.
- Implement interactive menus for AI features.
Contributions are welcome! If you'd like to help improve Amalgia, please follow these steps:
-
Fork the Repository
-
Create a Feature Branch
git checkout -b feature/YourFeature
-
Commit Your Changes
git commit -m "Add your message"
-
Push to the Branch
git push origin feature/YourFeature
-
Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
- Bubble Tea: For the excellent TUI framework.
- go-github: For the GitHub API client library.
- OpenAI: For providing the API to enable AI-powered features.
- ChatGPT: For assistance in generating the initial project setup.
For any questions or suggestions, please contact:
- Name: Alex Figueroa
- Email: [email protected]
- GitHub: alexfigueroa-solutions
Happy coding with Amalgia!