Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Opportunities 💰 #561

Open
4 of 26 tasks
ramiAbdou opened this issue Oct 10, 2024 · 0 comments
Open
4 of 26 tasks

Opportunities 💰 #561

ramiAbdou opened this issue Oct 10, 2024 · 0 comments
Assignees
Labels
Core Team Work 💻 Will be implemented by core team. Feature 🚀 A new feature or improvement.

Comments

@ramiAbdou
Copy link
Member

ramiAbdou commented Oct 10, 2024

Context/Problem

Currently, we have a Slack channel called #opportunities where members share different opportunities that they find. Multiple members have expressed how critical following this channel has been in their job search and overall ColorStack experience. It's very nice to just drop an opportunity quickly in this channel, but naturally this can get pretty overwhelming in a chat environment. There's no way to just find opportunities that you are looking for, you have to go 1-by-1 through each opportunity and decipher whether or not the opportunity is relevant/meaningful to you. Slack's search functionality is not ideal for this use case. This means that keeping up w/ opportunities can be very time consuming and overwhelming.

Additionally, these messages are very unstructured: sometimes it's a link to a job posting, sometimes it's a link to a LinkedIn post that has the job posting, sometimes it's multiple links, sometimes it has additional context and sometimes it doesn't. The benefit of lack of structure w/ this is it is very easy to quickly share an opportunity w/o additional constraints. That said, this puts the onus on the reader to have to click through the opportunity to find the details they're looking for (ultimately to know if they care about the opportunity).

We want to build something that makes finding opportunities easier.

Description

The solution will be to automatically create opportunities found in the #opportunities and introduce some structure/context to them with tags, ensuring that opportunities are easily filterable. We also want members to be able to save the opportunities they care about, so they will be able to bookmark opportunities they care about.

An opportunity will consist of the following fields:

  • Date Posted
  • Description: An AI-generated summary of the opportunity.
  • Expiration Date: Date that the opportunity is no longer relevant.
  • Posted By: The ColorStack member who posted the opportunity.
  • Slack Message: The message that the opportunity was created from.
  • Tags: Filterable tags associated w/ the opportunity (ie: Internship, New Grad, Summer '25, etc).
  • Title: An AI-generated title for the opportunity.

Acceptance Criteria

  • When an opportunity is posted in #opportunities or #opportunities-full-time, it will create an opportunity in our database. This should use AI to grab the company associated w/ the opportunity as well as generate a title/description.
  • After the opportunity is created, it should be put in a pending state.
  • To get an opportunity from pending to ready, a member needs to paste the content inside of the link (or LinkedIn post) and AI will use that content to automatically add tags to the opportunity. It should choose from existing tags if possible. Button on opportunity to add that context.
  • After the opportunity is created, it should send a Slack notification to the person who posted it asking them to do the above.
  • There should be a top-level Opportunities tab in the Member Profile.
  • A member can view opportunities posted.
  • A member can bookmark opportunities that they want to save.
  • For each bookmark that an opportunity gets, the original poster should get 10 points.
  • A member can search and filter opportunities, including:
    • By Company
    • By Tag
    • By Time (ie: Last Day, Last Week, Last Month)
    • Current/Expired/All
    • "Bookmarked"
  • When an opportunity is clicked on, it should show the full details of the opportunity including the Slack message that the opportunity was created from.
  • An opportunity can be edited at any time after creation by anyone in the community (just more hidden).
  • When an opportunity gets edited, we should store them as a "contributor" to the opportunity and show them in the opportunity table. We should also store a log in Mixpanel such that we know who did what.
  • In the companies page, we should show the # of open opportunities in the card.
  • In the individual company page, we should list all of the open opportunities in the page.

Future Ideas

  • A member can add an opportunity from the Member Profile directly.
  • Show "trending" opportunities based on either views or bookmarks.
  • A member can free-text search opportunities, which will match against:
    • Company
    • Description
    • Slack Message
    • Tags
    • Title
  • When a member views an opportunity, that will be stored in the database.
@ramiAbdou ramiAbdou self-assigned this Oct 10, 2024
@ramiAbdou ramiAbdou added Feature 🚀 A new feature or improvement. Core Team Work 💻 Will be implemented by core team. labels Oct 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Core Team Work 💻 Will be implemented by core team. Feature 🚀 A new feature or improvement.
Projects
Status: In Progress
Development

No branches or pull requests

1 participant