Skip to main content

Organizational Network Analysis Platform using ML and Graph Analytics

Project description

Organizational Network Analysis (ONA) Platform

A comprehensive Python application for analyzing organizational networks using machine learning and graph analytics. This platform transforms digital exhaust (emails, Slack messages, calendar data, code commits, etc.) into actionable insights about organizational structure, collaboration patterns, and network dynamics.

Features

  • Multi-source Data Ingestion: Supports email, Slack/Teams, calendar, documents, code repositories, and HRIS systems
  • Graph Construction: Builds weighted, temporal organizational graphs with sophisticated edge weighting
  • Network Metrics: Computes centrality measures (degree, betweenness, eigenvector, closeness), structural holes, and core-periphery analysis
  • Community Detection: Multiple algorithms (Louvain, Infomap, Label Propagation, SBM)
  • Machine Learning: Graph Neural Networks (GCN, GAT), Node2Vec embeddings, link prediction
  • NLP Analysis: Topic modeling (LDA, BERTopic), expertise inference, sentiment analysis
  • Temporal Analysis: Change point detection, onboarding integration tracking, network evolution
  • Multi-modal Fusion: Combines insights from multiple data sources
  • Anomaly Detection: Detects isolation, overload, and temporal anomalies
  • Intervention Framework: FINDING → HYPOTHESIS → INTERVENTION → MEASUREMENT workflow
  • Ego Network Analysis: Personal network analysis for individuals
  • Cross-Modal Validation: Validates insights across different data sources
  • Team Stability Analysis: Time-Size Paradox analysis for team retention and stability
  • Bonding/Bridging Analysis: Analyzes within-group (bonding) vs between-group (bridging) connections
  • Interactive Dashboards: Web-based visualization and reporting
  • Privacy-First: Built with privacy and ethics considerations

Installation

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Download spaCy language model
python -m spacy download en_core_web_sm

Quick Start

from orgnet.core import OrganizationalNetworkAnalyzer

# Initialize analyzer
analyzer = OrganizationalNetworkAnalyzer(config_path="config.yaml")

# Load data
analyzer.load_data()

# Build graph
graph = analyzer.build_graph()

# Run analysis
results = analyzer.analyze()

# Generate report
analyzer.generate_report(output_path="report.html")

Testing

Run the test suite:

pytest

For coverage report:

pytest --cov=orgnet --cov-report=html

See tests/README.md for more details.

Code Quality

Format code with black:

black orgnet/ tests/ example.py --line-length 100

Check code style with flake8:

flake8 orgnet/ tests/ example.py --max-line-length=100

Or use the Makefile:

make format   # Format code
make lint     # Check style
make test     # Run tests
make check    # Format, lint, and test

Project Structure

ONA/
├── orgnet/
│   ├── __init__.py
│   ├── core.py                 # Main analyzer class
│   ├── config.py               # Configuration management
│   ├── data/
│   │   ├── __init__.py
│   │   ├── ingestion.py        # Data ingestion layer
│   │   ├── models.py           # Data models
│   │   └── processors.py       # Data processing utilities
│   ├── graph/
│   │   ├── __init__.py
│   │   ├── builder.py          # Graph construction
│   │   ├── weights.py          # Edge weight calculations
│   │   └── temporal.py         # Temporal graph handling
│   ├── metrics/
│   │   ├── __init__.py
│   │   ├── centrality.py       # Centrality measures
│   │   ├── structural.py       # Structural holes, core-periphery
│   │   └── community.py        # Community detection
│   ├── ml/
│   │   ├── __init__.py
│   │   ├── gnn.py              # Graph Neural Networks
│   │   ├── embeddings.py       # Node2Vec, etc.
│   │   └── link_prediction.py  # Link prediction models
│   ├── nlp/
│   │   ├── __init__.py
│   │   ├── topics.py           # Topic modeling
│   │   └── expertise.py        # Expertise inference
│   ├── temporal/
│   │   ├── __init__.py
│   │   ├── change_detection.py # Change point detection
│   │   └── onboarding.py      # Onboarding analysis
│   ├── visualization/
│   │   ├── __init__.py
│   │   ├── network.py          # Network visualizations
│   │   └── dashboards.py       # Dashboard components
│   └── api/
│       ├── __init__.py
│       ├── app.py              # Flask API
│       └── routes.py           # API routes
├── config.yaml                 # Configuration file
├── requirements.txt            # Python dependencies
└── README.md                   # This file

Configuration

Edit config.yaml to configure:

  • Data source settings
  • Graph construction parameters
  • Analysis preferences
  • Privacy settings
  • API configuration

API Usage

Start the API server:

python -m orgnet.api.app

The API provides endpoints for:

  • /api/graph - Get organizational graph
  • /api/metrics - Compute network metrics
  • /api/communities - Community detection
  • /api/insights - Generate insights
  • /api/visualization - Get visualization data

Privacy & Ethics

This tool is designed with privacy in mind:

  • Aggregates data before storage
  • Respects retention policies
  • Focuses on patterns, not individual monitoring
  • Configurable anonymization

Important: Always obtain proper consent and follow organizational policies before deploying.

License

MIT License

Contributing

Contributions welcome! Please read the contributing guidelines first.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orgnet-0.1.2.tar.gz (117.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

orgnet-0.1.2-py3-none-any.whl (134.2 kB view details)

Uploaded Python 3

File details

Details for the file orgnet-0.1.2.tar.gz.

File metadata

  • Download URL: orgnet-0.1.2.tar.gz
  • Upload date:
  • Size: 117.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for orgnet-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ac13cc7ec5c36039790f94350d08eaf28feca5cc087b103eb904e95d517261e9
MD5 465ef43474b5bd2fc55a1aa260196a2d
BLAKE2b-256 26877937d6849cd3b255d60c6c6f155c105621d6d1d4301f32ffe37ecbaeae1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for orgnet-0.1.2.tar.gz:

Publisher: publish.yml on kylejones200/orgnet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file orgnet-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: orgnet-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 134.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for orgnet-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f12b892358d110bb67abc2dc6bf46583a64c83b67397aa8c297f2830735c7147
MD5 7b1a4e0b1ea93496a84be4247128e69a
BLAKE2b-256 daacbefc4c638cdf5ef3bf964d1a3acd9a5aa20d1887ec19e06d23d6bdd7a8bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for orgnet-0.1.2-py3-none-any.whl:

Publisher: publish.yml on kylejones200/orgnet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page