| name | propose-merge-filters |
| description | Proposes new merges for different kinds of filters based on the user's request. This helps the users of this webapp to effectively search for organizations. |
Propose Merge Filters
Description
This skill is used to propose new merges for different kinds of filters based on the user's request. This helps the users of this webapp to effectively search for organizations. Basically edit the api/filters/<filter-type>-filters.js. This file has the hardcoded filters that should be split into other filters. This is done to split (specific/combined/incorrectly worded) fitlers into some generic filters to improve data quality and so that it is easy for users to filter organizations based on their preferences.
Input
filter_type: The type of filter to propose merges for. This can be one of the following:
technologies: The technologies filter.
topics: The topics filter.
Output
- Modify
api/filters/<filter-type>-filters.js based on the proposed merges.
Approach
- Run
node scripts/generate-raw-filters.js to generate raw filters data.
- Run
bun scripts/aggregate-single-filter-data.js --filter-type <filter-type> --analytics-dir <analytics-dir> to aggregate analytics data. Here filter-type is the filter type you received from the user as input. analytics-dir is the full path for directory "../gsoc-organizations-store/analytics/data/monthly".
- Now look at the file
scripts/<filter-type>-data.json to see the aggregated data. It is sorted by the historical user view count and the number of orgs having that technology or topic.
- Now based on the data and some common sense, edit the filters to make the app more useful to users. Feel free to propose, new filters (that don't exist) to be added to the app if that makes sense.
- IMPORTANT: Take a look at tips below.
- Finally run
node scripts/generate-data.js to make sure you haven't created any cycles in the filters (e.g. [a -> [b, c], b -> [a, d]]). If you have fix the created filters and re-run the script to verify.
Tips
- Try to merge into the most viewed filters.
- Try to merge filters that have just 1 org or very less orgs (less than 5) into other filters if that makes sense. Don't do it forcefully so that the original filter loses its meaning or the new filter becomes too broad.
- Also feel free to remove/edit existing filters in the file if they are incorrect.
- Also consider the scenarios where we can simply tag a technology with another broader technology (e.g. "keras" -> ["machine learning", "keras"])
- If you feel some technology is too specific OR isn't a technology at all, feel free to suggest removing it as well (e.g. "not a tech" -> [])