Skip to main content

aimsapccoe — College Club Recruitment Matcher

AIMSAPCCOE Logo

aimsapccoe is a Python package and web application for college club recruitment matching. It automatically evaluates and scores candidate fit against position requirements or club descriptions using web-scraped GitHub and portfolio data.

Scoring is processed across 5 weighted NLP levels:

  1. Level 1 — Language & Word Count (10 pts)
  2. Level 2 — Vocabulary Richness (20 pts)
  3. Level 3 — Keyword Match (30 pts) — TF-IDF cosine similarity
  4. Level 4 — Readability (15 pts) — Flesch Reading Ease
  5. Level 5 — Parts of Speech Analysis (25 pts) — Action verb and noun ratios

📦 Installation

To install the package in editable mode (for development and local running):

# From the project root folder:
pip install -e .

📥 Post-Install NLTK Setup

aimsapccoe automatically attempts to verify and download required NLTK corpus datasets upon first run, but you can download them manually if needed:

import nltk
nltk.download('punkt')
nltk.download('punkt_tab')
nltk.download('averaged_perceptron_tagger')
nltk.download('averaged_perceptron_tagger_eng')
nltk.download('stopwords')

🚀 Usage

1. Launch the Web UI

The package includes a modern local dashboard built using a Neo-Brutalism design system. Launch the Flask application with:

aimsapccoe web

Then visit http://127.0.0.1:5000 in your browser.

2. Python API Usage

Secretary Mode (Evaluate Applicants)

from aimsapccoe import SecretaryEvaluator

# Define what position requirements the club is looking for
evaluator = SecretaryEvaluator(
    position_description="Looking for a Python backend developer skilled in Flask and SQL."
)

# Run scoring against the candidate's public URLs
result = evaluator.evaluate_student(
    github_url="https://github.com/someuser",
    portfolio_url="https://someuser.github.io"
)

print(f"Total Match Score: {result['score']}/100")
print(f"Recommendation Verdict: {result['recommendation']}")
# Output: RECRUIT, REVIEW, or IGNORE

Student Mode (Evaluate Personal Fit)

from aimsapccoe import StudentEvaluator

# Scrapes and caches target club site once upon instantiation
evaluator = StudentEvaluator(
    club_website_url="https://acm.pccoe.org"
)

# Evaluate fit against your own profile URLs
result = evaluator.evaluate_fit(
    github_url="https://github.com/myusername",
    portfolio_url="https://myportfolio.dev"
)

print(f"Fit Match Score: {result['score']}/100")
print(f"Recommendation: {result['recommendation']}")
# Output: APPLY or SKIP

🧪 Running Tests

Unit tests use mocked API/Scraping requests to run instantly without making live HTTP requests:

# Run using unittest
python -m unittest discover -s tests

🚀 Publishing to PyPI

To upload this package to PyPI, follow these steps:

1. Install Build Tools

Ensure you have the latest versions of build and twine installed:

pip install --upgrade build twine

2. Build the Package

Generate the source distribution and wheel archives by running the python build frontend from the project root:

python -m build

This will create a dist/ directory containing the distribution packages (.tar.gz and .whl).

3. Check Distribution Archives

Validate that your package description will render correctly on PyPI:

twine check dist/*

It is highly recommended to upload your package to TestPyPI first to verify everything looks correct:

twine upload --repository testpypi dist/*

Note: You will need to create an account on TestPyPI and generate an API Token.

5. Upload to PyPI Production

Once verified on TestPyPI, upload to the live PyPI index:

twine upload dist/*

Note: You will need a production PyPI account and an API Token to authenticate.

Metadata

Release files for aimsapccoe 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aimsapccoe 0.3.0
File Size Uploaded
aimsapccoe-0.3.0.tar.gz 100.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aimsapccoe 0.3.0
File Interpreter ABI Platform
aimsapccoe-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 215.8 kB

Release files / aimsapccoe-0.3.0.tar.gz

Download URL aimsapccoe-0.3.0.tar.gz
Size 100.3 kB
Tags Source
SHA-256 checksum
How to use checksums
4b4d3e4583f47f20f9c141b7370232e33bf4f3bd88763cd4c208cb603dec5deb
BLAKE2b-256 checksum
How to use checksums
1c3fa7ea496cfe2bc172618017d25ff038b7fbd713280ae64af00d1c26ebff52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.12

Release files / aimsapccoe-0.3.0-py3-none-any.whl

Download URL aimsapccoe-0.3.0-py3-none-any.whl
Size 115.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
34faa57e5a001ffab9323902fcb78e0d0560fa1fc15b252228950ef501641a72
BLAKE2b-256 checksum
How to use checksums
328ce439252fc11c7d9db8b77a1311570f38051e2b70323dc8e93535530e579e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page