Skip to content

Commit e5308c6

Browse files
authored
Update README.md
1 parent 9930dbf commit e5308c6

1 file changed

Lines changed: 47 additions & 5 deletions

File tree

README.md

Lines changed: 47 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,53 @@ This work provides value to vendors seeking to identify government demand for ex
8989

9090
# Methodology
9191

92-
This project analyzes public sector job postings to identify roles that are either explicitly or implicitly involved in third-party data acquisition — referred to throughout this report as “data buyers.” Using a blend of traditional keyword detection, fuzzy matching, rule-based tagging, and predictive modeling via natural language processing (NLP), this approach surfaces both overt and hidden demand for external data tools and services.
92+
### Overview and Flow
9393

94-
The goal is to provide commercial data vendors with a replicable, high-precision strategy for identifying public sector buyers aligned to specific strategic use cases: fraud detection, sentiment analysis, patient record matching, and ad targeting.
94+
This project builds a fully automated pipeline to identify public sector roles likely involved in purchasing third-party data — referred to here as *data buyers*. The process integrates data acquisition, keyword-based labeling, and predictive modeling using natural language processing (NLP). The framework is designed to detect both explicit and latent demand for external data tools and services.
95+
96+
#### Step 1: Data Acquisition and Structuring
97+
98+
Using the official USAJobs API, the pipeline scrapes thousands of U.S. federal government job postings. Each job record includes unstructured fields such as job titles, descriptions, and key duties, along with structured fields such as agency name, department, and posting location.
99+
100+
In addition to raw fields, a series of structured **metadata features** are constructed, including:
101+
102+
- **Role seniority** (e.g., flags for "chief", "director", "senior")
103+
- **Agency size** (small, medium, large)
104+
- **Industry classification** (e.g., health, finance, communications)
105+
- **Generalist vs. specialist** role indicators
106+
107+
These derived features provide critical contextual signals for later modeling steps.
108+
109+
#### Step 2: Identifying Explicit Data Buyers
110+
111+
To establish a labeled training set, job descriptions are analyzed using:
112+
113+
- **Keyword detection**, targeting phrases such as “third-party data,” “data acquisition,” or “data purchasing”
114+
- **Fuzzy matching**, to capture linguistic variations such as “external analytics provider”
115+
116+
Jobs containing these signals are flagged as **explicit data buyers**, forming the positive class for model training. This set of confirmed buyers is treated as ground truth for building a classifier.
117+
118+
#### Step 3: Training the Predictive Model
119+
120+
The labeled dataset is used to train a **logistic regression classifier** that learns to identify data buyers based on:
121+
122+
- **TF-IDF vectorized job text** (from job title, description, and duties)
123+
- **Structured metadata** (e.g., agency size, seniority, industry)
124+
125+
To address class imbalance between buyers and non-buyers, **SMOTE** is applied to synthetically augment the minority class during training.
126+
127+
The model learns language and structural patterns that distinguish confirmed buyers from other postings — enabling it to generalize beyond the explicit keyword logic.
128+
129+
#### Step 4: Scoring and Lead Generation
130+
131+
Once trained, the model is applied across the full dataset. Each job posting receives a **DataBuyerScore**, a probability estimate reflecting how likely the role is to involve purchasing third-party data.
132+
133+
This scoring approach enables:
134+
135+
- Discovery of **latent buyer roles** that lack explicit language but share characteristics with confirmed buyers
136+
- **Prioritization** of high-scoring leads for vendor targeting
137+
- Broad **market-level analysis** of public sector data demand by agency, role type, and use case
95138

96-
Beyond individual lead identification, the project also surfaces **market-level trends** that shape how data purchasing decisions are made. These include patterns in **agency size**, **role seniority**, **Industry**, and whether buyers tend to hold **generalist or specialist titles**. Understanding these structural dynamics enables vendors to tailor their outreach, prioritize agencies more likely to buy, and better anticipate where buyer authority is embedded within government organizations.
97139

98140
---
99141

@@ -136,10 +178,10 @@ Initial classification used a **hybrid strategy**:
136178

137179
1. **Keyword detection**: targeting phrases like:
138180
- “third-party data”
139-
- “data vendor
181+
- “data licensing
140182
- “data subscription”
141183
- “procured dataset”
142-
- “market intelligence”
184+
143185
2. **Fuzzy matching**: to capture variants such as “third party provider” or “external analytics vendor.”
144186

145187

0 commit comments

Comments
 (0)