{"id":51574715,"url":"https://github.com/theinfinity007/slack-ai-agent","last_synced_at":"2026-07-10T23:01:25.889Z","repository":{"id":363195943,"uuid":"1262239296","full_name":"TheInfinity007/slack-ai-agent","owner":"TheInfinity007","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-07T20:22:44.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-07T22:21:03.151Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/TheInfinity007.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-07T18:43:22.000Z","updated_at":"2026-06-07T20:22:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/TheInfinity007/slack-ai-agent","commit_stats":null,"previous_names":["theinfinity007/slack-ai-agent"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/TheInfinity007/slack-ai-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheInfinity007%2Fslack-ai-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheInfinity007%2Fslack-ai-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheInfinity007%2Fslack-ai-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheInfinity007%2Fslack-ai-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheInfinity007","download_url":"https://codeload.github.com/TheInfinity007/slack-ai-agent/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheInfinity007%2Fslack-ai-agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35345662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-10T02:00:06.465Z","response_time":60,"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":[],"created_at":"2026-07-10T23:01:22.905Z","updated_at":"2026-07-10T23:01:25.884Z","avatar_url":"https://github.com/TheInfinity007.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Slack AI Member Analysis Agent\n\nA lightweight Slack bot that automatically analyzes new team members and posts AI-generated hiring fit and engagement recommendations back to Slack.\n\nBuilt using Slack Bolt, LangChain, and PostgreSQL, this agent helps teams capture member intelligence, track analysis results, and keep people operations aligned with product fit.\n\n---\n\n## Key Features\n\n- Automatically responds to Slack `team_join` and `member_joined_channel` events\n- Fetches Slack user profile data and performs external research using email domain and GitHub search\n- Generates structured analysis using OpenAI, Google Gemini, or Groq LLM providers\n- Stores analysis results in PostgreSQL with tracking metadata\n- Posts rich Slack messages with fit score, insights, and engagement recommendations\n- Includes a development-only test endpoint for validating the analysis pipeline\n\n## Tutorial\n\nA walkthrough video demonstrating setup and usage:\n\nhttps://youtu.be/MnG0ugK2JAI?t=2342\n\n---\n\n## Screenshot / Demo\n\nA sample Slack analysis message and database reference are shown below.\n\n![Slack member analysis screenshot](./assets/slack-analysis.png)\n\n![Database schema screenshot](./assets/database-schema.png)\n\n![Database row screenshot](./assets/database-row.png)\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 24+ installed\n- PostgreSQL database accessible via a connection string\n- Slack app configured with bot token, app token, and signing secret\n- One of the supported LLM providers configured:\n  - OpenAI\n  - Google Gemini\n  - Groq\n\n### Install dependencies\n\n```bash\nnpm install\n```\n\n### Environment variables\n\nCreate a `.env` file in the project root with the following values:\n\n```env\nSLACK_BOT_TOKEN=xoxb-your-bot-token\nSLACK_APP_TOKEN=xapp-your-app-token\nSLACK_SIGNING_SECRET=your-signing-secret\nSLACK_PRIVATE_CHANNEL_ID=C0123456789\nDATABASE_URL=postgresql://user:password@host:port/database\nLLM_PROVIDER=openai\nOPENAI_API_KEY=your-openai-key\n# GOOGLE_API_KEY=your-google-key\n# GROQ_API_KEY=your-groq-key\nCOMPANY_NAME=Your Company\nCOMPANY_PRODUCT=Your Product\nPORT=3000\nNODE_ENV=development\n```\n\n### Run the app\n\n```bash\nnpm start\n```\n\nFor development mode with automatic reload:\n\n```bash\nnpm run dev\n```\n\n---\n\n## How It Works\n\n1. The bot listens for Slack events using Bolt in socket mode.\n2. When a new user joins the workspace or a channel, it fetches Slack profile data.\n3. It performs lightweight research on the member using email domain and GitHub search.\n4. The agent sends the collected data to an LLM prompt for fit scoring, insights, and recommendations.\n5. The result is saved in PostgreSQL and posted to the configured Slack channel.\n\n---\n\n## Development Testing\n\nWhen `NODE_ENV=development`, the app exposes a test endpoint:\n\n```http\nPOST /test/analyse-member\n```\n\nRequest body example:\n\n```json\n{\n  \"memberInfo\": {\n    \"id\": \"U1234567\",\n    \"name\": \"Jane Doe\",\n    \"email\": \"jane.doe@example.com\",\n    \"title\": \"Product Manager\",\n    \"timezone\": \"America/Los_Angeles\"\n  }\n}\n```\n\nThis allows you to validate the analysis pipeline without waiting for Slack events.\n\n---\n\n## Database\n\nThe project uses PostgreSQL and creates a `member_analyses` table with columns such as:\n\n- `member_id`\n- `member_name`\n- `member_email`\n- `fit_score`\n- `insights`\n- `recommendations`\n- `research_data`\n- `sent_to_slack`\n- `analyzed_at`\n\n\u003e Add database schema or screenshot here.\n\n---\n\n## Notes\n\n- Avoid using personal emails for research. The agent ignores emails from common personal domains.\n- Ensure the Slack bot has permissions to read user profiles and post messages.\n- Confirm the Slack app is running in socket mode and that the app token is valid.\n\n---\n\n## License\n\nThis project is released under the ISC License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheinfinity007%2Fslack-ai-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheinfinity007%2Fslack-ai-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheinfinity007%2Fslack-ai-agent/lists"}