{"id":29295800,"url":"https://github.com/ajitashwath/linkedin-copilot","last_synced_at":"2025-07-29T04:08:39.772Z","repository":{"id":304292791,"uuid":"1018040036","full_name":"ajitashwath/linkedin-copilot","owner":"ajitashwath","description":"A LinkedIn based AI agent that helps professionals create engaging content, generate leads, and stay informed with daily news summaries","archived":false,"fork":false,"pushed_at":"2025-07-28T15:32:10.000Z","size":264,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-28T17:34:32.571Z","etag":null,"topics":["crewai","docker","gcp","streamlit"],"latest_commit_sha":null,"homepage":"https://linkedin-copilot.streamlit.app/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ajitashwath.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-11T14:00:49.000Z","updated_at":"2025-07-28T17:00:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"4b3ca11d-8c77-43fd-bc6c-3294afae6bd8","html_url":"https://github.com/ajitashwath/linkedin-copilot","commit_stats":null,"previous_names":["ajitashwath/linkedin-copilot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ajitashwath/linkedin-copilot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajitashwath%2Flinkedin-copilot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajitashwath%2Flinkedin-copilot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajitashwath%2Flinkedin-copilot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajitashwath%2Flinkedin-copilot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ajitashwath","download_url":"https://codeload.github.com/ajitashwath/linkedin-copilot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajitashwath%2Flinkedin-copilot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267626966,"owners_count":24117709,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crewai","docker","gcp","streamlit"],"created_at":"2025-07-06T14:10:05.093Z","updated_at":"2025-07-29T04:08:39.763Z","avatar_url":"https://github.com/ajitashwath.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LinkedIn Copilot\nAn AI-powered LinkedIn automation tool built with CrewAI and Streamlit that helps professionals create engaging content, generate leads, and stay informed with daily news summaries.\n\n## 🚀 Features\n\n- **AI-Powered Content Creation**: Generate engaging LinkedIn posts using AI agents\n- **Daily News Summaries**: Get concise business news summaries to stay informed\n- **Lead Generation**: Identify potential leads from LinkedIn engagement\n- **LinkedIn Integration**: Seamlessly post content directly to LinkedIn\n- **Multi-Agent System**: Powered by CrewAI with specialized agents for different tasks\n\n## 🏗️ Architecture\n\nThe project uses a multi-agent architecture with CrewAI:\n\n- **Researcher Agent**: Researches trending topics and gathers relevant information\n- **Content Creator Agent**: Creates engaging, professional LinkedIn posts\n- **Lead Generator Agent**: Identifies potential leads from engagement patterns\n- **News Summarizer Agent**: Provides daily business news summaries\n\n## 📋 Prerequisites\n\n- Python 3.9+\n- LinkedIn Developer Account\n- API Keys for:\n  - LinkedIn API\n  - OpenAI API\n  - Serper API (for web searches)\n\n## 🛠️ Installation\n\n1. **Clone the repository**\n```bash\ngit clone https://github.com/Kartavya-AI/LinkedIn-Post.git\ncd Linked-Post\n```\n\n2. **Create a virtual environment**\n```bash\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n```\n\n4. **Set up these API Keys**\n```\n# LinkedIn API Configuration\nLINKEDIN_CLIENT_ID=your_linkedin_client_id\nLINKEDIN_CLIENT_SECRET=your_linkedin_client_secret\nLINKEDIN_FALLBACK_ACCESS_TOKEN=your_fallback_token  # Optional for testing\n\n# OpenAI API\nOPENAI_API_KEY=your_openai_api_key\n\n# Serper API (for web searches)\nSERPER_API_KEY=your_serper_api_key\n```\n\n## 🔧 LinkedIn API Setup\n\n1. **Create a LinkedIn Developer Account**\n   - Go to [LinkedIn Developer Portal](https://developer.linkedin.com/)\n   - Create a new app\n\n2. **Configure OAuth Settings**\n   - Redirect URI: `https://linkedin-copilot.streamlit.app/signin-linkedin/`\n   - Scopes required:\n     - `openid`\n     - `profile`\n     - `email`\n     - `w_member_social`\n     - `r_liteprofile`\n\n3. **Get API Credentials**\n   - Copy your Client ID and Client Secret\n   - Add them to your `.env` file\n\n## 🚀 Usage\n\n### Running the Streamlit App\n\n```bash\nstreamlit run app.py\n```\n\n### Using the CLI\n\n```bash\n# Get daily summary\npython -m src.linkedin_copilot.main run\n\n# Generate content for a topic\npython -c \"from src.linkedin_copilot.main import LinkedInCopilot; copilot = LinkedInCopilot(); print(copilot.generate_content('AI trends'))\"\n```\n\n### Authentication Methods\n\nThe app supports two authentication methods:\n1. **Manual Access Token**\n   - Paste a valid LinkedIn access token directly\n   - Useful for testing and development\n\n## 📱 Web Interface\n\nThe Streamlit web interface provides:\n\n- **Authentication Status**: Shows current login state\n- **API Configuration**: Manage API keys directly in the sidebar\n- **Content Generation**: Enter topics and generate LinkedIn posts\n- **Daily Summary**: Get today's business news\n- **Lead Generation**: Find potential leads from engagement\n- **Post Management**: Edit and publish content directly to LinkedIn\n\n## 🎯 Core Functionality\n\n### Content Generation\n```python\nfrom src.linkedin_copilot.main import LinkedInCopilot\n\ncopilot = LinkedInCopilot()\ncontent = copilot.generate_content(\"AI in the workplace\")\nprint(content)\n```\n\n### Daily News Summary\n```python\nsummary = copilot.get_daily_summary()\nprint(summary)\n```\n\n### Posting to LinkedIn\n```python\n# Requires valid access token\nsuccess = copilot.post_to_linkedin(content, access_token)\n```\n\n### Lead Generation\n```python\nleads = copilot.find_leads(access_token)\nfor lead in leads:\n    print(lead)\n```\n\n## 🤖 Agent Configuration\n\nAgents are configured in YAML files:\n\n### `src/linkedin_copilot/config/agents.yaml`\nDefines the roles, goals, and backstories for each agent.\n\n### `src/linkedin_copilot/config/tasks.yaml`\nSpecifies the tasks each agent can perform.\n\n## 📁 Project Structure\n\n```\nlinkedin-copilot/\n├── app.py                          # Main Streamlit application\n├── src/\n│   └── linkedin_copilot/\n│       ├── __init__.py\n│       ├── main.py                 # Core LinkedIn Copilot logic\n│       ├── crew.py                 # CrewAI configuration\n│       ├── config/\n│       │   ├── agents.yaml         # Agent configurations\n│       │   └── tasks.yaml          # Task definitions\n│       └── tools/\n│           ├── __init__.py\n│           └── custom_tool.py      # LinkedIn authentication tools\n└── README.md                       # This file\n```\n\n## 🚀 Deployment\n\n### Streamlit Cloud\nThe app is configured for Streamlit Cloud deployment:\n- Set environment variables in Streamlit Cloud settings\n- Ensure the redirect URI matches your deployment URL\n\n### Local Development\n```bash\nstreamlit run app.py --server.port 8501\n```\n\n## 🤝 Contributing\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## 🙏 Acknowledgments\n\n- [CrewAI](https://github.com/joaomdmoura/crewAI) for the multi-agent framework\n- [Streamlit](https://streamlit.io/) for the web interface\n- [LinkedIn API](https://developer.linkedin.com/) for social media integration\n- [OpenAI](https://openai.com/) for AI-powered content generation\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajitashwath%2Flinkedin-copilot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fajitashwath%2Flinkedin-copilot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajitashwath%2Flinkedin-copilot/lists"}