# Pulse

MCP-native organizational intelligence server that turns company, jobs, people, and web evidence into cohort briefs and operating-phase analysis

**Status:** completed · **Timeline:** 2026 · **Role:** Builder · **Team:** Solo

**Technologies:** Python, FastMCP, Pydantic, Crustdata, MCP, Agent Tools, Pytest

[GitHub](https://github.com/MohitGoyal09/Pluse) · [Live](https://github.com/MohitGoyal09/Pluse)

---

# Pulse: MCP-Native Company Intelligence

## Overview

Pulse is a Python/FastMCP server that turns Crustdata-style company, jobs, people, and web evidence into cohort-level organizational intelligence. Instead of asking only whether one account has buying intent, Pulse asks what a company is trying to become and compares that operating shift across a cohort.

The MVP is MCP-native: Claude calls structured tools and then writes the final narrative from compact evidence.

## Why I Built This

Most signal-driven sales and research tools are account-centric. They detect a trigger, summarize one company, and draft outbound. Pulse explores a different workflow: use fresh company data as an agent-readable evidence layer, then classify company phase, hiring direction, gaps, and likely entry points across several companies at once.

The project was designed to be useful for:

- vendors looking for the right account entry point
- investors comparing operating shifts across a cohort
- recruiters mapping functional hiring changes
- analysts turning messy company data into structured briefs

## Tool Surface

Pulse exposes a compact MCP tool set:

- `get_cohort`
- `get_company_snapshot`
- `compare_cohort_jobs`
- `classify_company_phase`
- `generate_company_brief`
- `generate_cohort_brief`
- `export_brief`

Each tool returns JSON-compatible dictionaries or lists so the model can reason from structured evidence instead of scraping prose.

## Architecture

```text
pulse/
  crustdata.py    Mock/live Crustdata boundary and response adapters
  models.py       Pydantic contracts for snapshots, phases, comparisons, and briefs
  formatters.py   Raw records -> model-readable evidence objects
  phase.py        Deterministic phase heuristics with confidence and counter-evidence
  briefs.py       Structured company and cohort briefs
  tools.py        Tool orchestration and export handling
  server.py       FastMCP registration
  fixtures/       Mock cohort data
  examples/       Saved demo outputs
```

## Mock and Live Modes

Pulse defaults to mock mode when no Crustdata token is present. This keeps the demo safe, repeatable, and reviewable without accidental external API calls. Live mode is explicit and requires either `mode="live"` at the tool call level or `PULSE_MODE=live` with a `CRUSTDATA_API_TOKEN`.

That boundary matters because agent tools should not silently spend API budget or leak assumptions about external data.

## Example Workflow

A typical prompt asks Pulse to find a cohort of Series A/B AI infrastructure companies, compare hiring patterns, identify companies moving from product-building to GTM expansion, and produce organizational intelligence briefs for the top candidates.

The tool sequence looks like:

```text
get_cohort(...)
compare_cohort_jobs(...)
classify_company_phase(...)
generate_company_brief(...)
generate_cohort_brief(...)
```

## What This Shows

Pulse demonstrates MCP-native product thinking: the project is not just a script that summarizes data, but a structured tool layer designed for agent reasoning. It turns raw company evidence into compact, inspectable outputs that a model can use to make business judgments.