# Gapify Actor (`goodluckchioma/gapify-actor`) Actor

Find real, unmet market demand by analyzing public conversations and comparing them against existing business supply in any African city. Evidence backed, not a guess.

- **URL**: https://apify.com/goodluckchioma/gapify-actor.md
- **Developed by:** [Nwimo Goodluck Chioma](https://apify.com/goodluckchioma) (community)
- **Categories:** Open source
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1,000.00 / 1,000 gap analyses

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Gapify

Find real, unmet market demand before you build. Not a guess. Evidence.

### What does Gapify do?

We built Gapify because most business ideas fail before they even launch, not because the idea was bad, but because nobody checked if people actually wanted it first. Gapify scans public web conversations, search results, reviews, forums, social mentions, for a city and industry you give it, and groups the ones that repeat into real demand signals. It then checks how many businesses already serve that need in the same area, so you can see how much people are asking for something versus how much supply already exists.

Every score comes with the actual quotes and links behind it, so you are not just trusting a number someone made up.

Works for any African city. Lagos, Nairobi, Accra, Cairo, wherever you are exploring.

### Why use Gapify?

Most new businesses launch on guesswork or by copying whatever a competitor already did. That is a big reason small businesses fail, especially for founders who cannot afford an expensive market research firm. Gapify replaces the guess with evidence that already exists online, just too scattered for one person to read through manually.

Use it to:

Validate a business idea before you spend money on it
Compare a few cities or product categories for the same idea
Back up a pitch deck or grant application with real numbers
Find an underserved niche inside a market you already know well

### How to use Gapify

Click Try for free
Enter a city, a country, and the industry or market you are exploring, for example Fashion, Fintech, Food
Optionally add a target audience, for example Women 25 to 40
Click Start and give it two to five minutes while it searches, groups signals, and checks supply
Read your results in the Output tab, or export as JSON, CSV, or Excel

### Input

location: the city to analyze, for example Lagos
country: the country the city is in, for example Nigeria
industry: the market or product category, for example Fashion
targetAudience: optional, describe who this is for
maxSignals: how many signals to analyze, between 10 and 100, default is 30

### Output

```json
{
  "location": "Lagos",
  "country": "Nigeria",
  "industry": "Fashion",
  "demandScore": 82,
  "competitionScore": 34,
  "frustrationScore": 76,
  "gapScore": 48,
  "supplyCount": 50,
  "totalSignalsFound": 20,
  "opportunities": [
    {
      "need": "affordable plus size work clothes",
      "mentionCount": 6,
      "evidence": [
        { "text": "majority of items in my size cost 2 to 3x more...", "source": "reddit.com", "url": "https://..." }
      ]
    }
  ]
}
```

You can download the full dataset as JSON, HTML, CSV, or Excel.

### Pricing

You pay $1.00 per completed gap analysis. One run, one price, nothing hidden. If a run fails before it finishes, you are not charged.

### Tips

More signals means a more reliable score, but it takes longer and costs a little more in platform usage
Try the same industry across two or three nearby cities and compare the results side by side
The search step occasionally hits a slow patch on the network. If a run times out, just run it again

### A note on how this works

Gapify only reads information that is already public. It does not access private accounts or anything behind a paywall. The results reflect what is publicly visible at the time you run it, and they are meant to inform your decision, not replace your own judgment about the market.

Found a bug or have an idea for what this should do next? Use the Issues tab above, we read them.

Built by our team for the Apify x She Code Africa BuildHer Hackathon 2026.

### Try our web app

We built a standalone web app with a cleaner search experience than the raw Actor form below. Try it here:

**https://goodluck-creat.github.io/gapify-actor/gapify-web.html**

You will need your own free Apify API token to run a search there, or use the demo token option on the page if one is available. Getting your own token takes about a minute:

1. Create a free account at apify.com
2. Go to Settings, then API and Integrations
3. Copy your personal API token
4. Paste it into the token field on our web app

# Actor input Schema

## `location` (type: `string`):

City to analyze, e.g. Lagos, Nairobi, Accra, Cairo

## `country` (type: `string`):

Country the city is in, e.g. Nigeria, Kenya, Ghana, Egypt

## `industry` (type: `string`):

Market or product category, e.g. Fashion, Fintech, Food

## `targetAudience` (type: `string`):

Who this is for, e.g. Women 25-40, University students

## `maxSignals` (type: `integer`):

How many search results to analyze (higher = more accurate, slower, costs more)

## Actor input object example

```json
{
  "location": "Lagos",
  "country": "Nigeria",
  "industry": "Fashion",
  "maxSignals": 30
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "location": "Lagos",
    "country": "Nigeria",
    "industry": "Fashion"
};

// Run the Actor and wait for it to finish
const run = await client.actor("goodluckchioma/gapify-actor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "location": "Lagos",
    "country": "Nigeria",
    "industry": "Fashion",
}

# Run the Actor and wait for it to finish
run = client.actor("goodluckchioma/gapify-actor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "location": "Lagos",
  "country": "Nigeria",
  "industry": "Fashion"
}' |
apify call goodluckchioma/gapify-actor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,goodluckchioma/gapify-actor"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/r8jZDElz94ppEBc1c/builds/2j7jkBDesAWJdXUNG/openapi.json
