# HirePulse tools (pypi · hirepulse-tools)

Apify tools for products, Google ads, company signals, jobs, keywords, SEO and YouTube transcripts.

- Trust score: 62/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

## Components

- pypi · `hirepulse-tools`: 62/100 (this document), [markdown](https://verifymcp.io/servers/edtool79-collab-hirepulse-open-source/hirepulse-tools.md), [page](https://verifymcp.io/servers/edtool79-collab-hirepulse-open-source/hirepulse-tools)

## Channel facts

- Registry: `pypi`
- Package: `hirepulse-tools`
- Version: `0.1.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-18.

- **Supply Chain Security**: 50/100
  - Malware scan not yet available for this package.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it.
  - 1 of 14 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to edtool79-collab/hirepulse-open-source).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 55/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4745 tokens (~593/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the HirePulse tools MCP server?

HirePulse tools runs locally as a PyPI package, launched with uvx hirepulse-tools. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add edtool79-collab-hirepulse-open-source -- uvx hirepulse-tools
```

### Cursor

```json
{
  "mcpServers": {
    "edtool79-collab-hirepulse-open-source": {
      "command": "uvx",
      "args": [
        "hirepulse-tools"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "edtool79-collab-hirepulse-open-source": {
      "command": "uvx",
      "args": [
        "hirepulse-tools"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add edtool79-collab-hirepulse-open-source -- uvx hirepulse-tools
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "edtool79-collab-hirepulse-open-source": {
      "type": "local",
      "command": [
        "uvx",
        "hirepulse-tools"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add edtool79-collab-hirepulse-open-source --command uvx --arg hirepulse-tools
```

### Hermes

```yaml
mcp_servers:
  edtool79-collab-hirepulse-open-source:
    command: "uvx"
    args: ["hirepulse-tools"]
```

### Netclaw

```json
{
  "McpServers": {
    "edtool79-collab-hirepulse-open-source": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "hirepulse-tools"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add edtool79-collab-hirepulse-open-source -t stdio -c uvx -a hirepulse-tools
```

### Other

```json
{
  "mcpServers": {
    "edtool79-collab-hirepulse-open-source": {
      "command": "uvx",
      "args": [
        "hirepulse-tools"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-17 (score 62)

First indexed and scored.

## MCP tools (8)

### `search_aliexpress` (~388 tokens)

Returns product_id, title, url, image_url, price, original_price, discount_percent, currency, rating, sold, sold_text, is_sponsored, listed_since and ship_to.
Use this when... searching AliExpress products by queries with a chosen currency and ship_to country.
Do NOT use for... seller names or seller ratings, shipping costs or delivery estimates, reviews or stock. rating is a product rating.
Cost: $2.50 per 1,000 products. Free Apify plan: 100 products per run; 60 products per page.

Optional inputs without schema defaults use None (omitted).
result_limit requests a run result cap and bounds fetched rows; max_total_charge_usd
is the spending option passed to Apify. Partial data is possible. MCP returns a JSON envelope limited to 32,000 UTF-8 bytes, omitting whole oversized records. Check output_truncated and result_limit_reached; returned rows may be incomplete.

Input parameters:

- `currency` (string): Currency of the prices.
- `max_price`: Only products up to this price (optional).
- `max_results_per_query` (integer): Up to 1,200 (20 pages of 60).
- `max_total_charge_usd` (number): Finite positive USD spending cap passed to Apify .call(); default 1.0.
- `min_price`: Only products from this price (optional).
- `queries` (array, required): Array of strings. In the Console UI: one per line. What to search for, for example "yoga mat". Up to 20 per run.
- `result_limit` (integer): 1–1000. Default 60. Requested run max_items and fetched dataset row limit.
- `ship_to` (string): Two-letter country code. Prices and availability follow this country.
- `sort` (string): Order of the results.

### `google_ads_by_domain` (~588 tokens)

Returns advertiser_name, advertiser_id, advertiser_verified, ad_id, format, first_shown, last_shown, preview_image_url and transparency_url; summary mode returns one row per domain.
Use this when... researching a company's Google ads by domains, or monitoring only_new_ads.
Do NOT use for... launching or editing ads; this tool retrieves Transparency Center records.
Cost: $0.005 per domain + $0.0015 per ad. Free plan: 1 domain, up to 5 ads.

Optional inputs without schema defaults use None (omitted).
result_limit requests a run result cap and bounds fetched rows; max_total_charge_usd
is the spending option passed to Apify. Partial data is possible. MCP returns a JSON envelope limited to 32,000 UTF-8 bytes, omitting whole oversized records. Check output_truncated and result_limit_reached; returned rows may be incomplete.

Input parameters:

- `country`: Only ads shown in this country, as a two-letter code such as US, GB or DE. Leave empty for ads shown anywhere.
- `date_from`: Only ads shown on or after this date (YYYY-MM-DD). Set together with "Shown until".
- `date_to`: Only ads shown on or before this date (YYYY-MM-DD).
- `domains` (array, required): Array of strings. In the Console UI: one per line. Company websites, for example "nike.com". Full URLs are fine too. Up to 100 per run.
- `format` (string): Only ads of this format.
- `max_ads_per_domain` (integer): Most recent ads to return for each domain (ads mode). Up to 120. For a cheap agent check use mode="summary" with one domain. For an ad sample use mode="ads" and max_ads_per_domain=1.
- `max_total_charge_usd` (number): Finite positive USD spending cap passed to Apify .call(); default 1.0.
- `mode` (string): "ads": one record per ad (preview image, dates, links). "summary": one compact record per domain (does it advertise, how many ads, which formats, latest ad), charged per domain only. Summary is ideal…
- `only_new_ads` (boolean): Return only ads that earlier runs of yours did not return yet, for the same domain and filters. Schedule the Actor daily or weekly to get alerted about new competitor ads. You still pay the per-domai…
- `platform` (string): Only ads shown on this Google platform.
- `result_limit` (integer): 1–1000. Default 60. Requested run max_items and fetched dataset row limit.

### `company_intent` (~350 tokens)

Returns domain, open_jobs, jobs_posted_last_30_days, ads_running_now, total_google_ads, organic_traffic_monthly, seo_trend, email_provider, intent_score and summary.
Use this when... comparing hiring, advertising, SEO and MX email-provider signals for company domains.
Do NOT use for... treating the 0-100 intent_score as proof a company will buy; use the underlying signals and summary.
Cost: $0.03 per company report, charged only when the full report was produced. Free plan: hiring and email signals for 5 companies.

Optional inputs without schema defaults use None (omitted).
result_limit requests a run result cap and bounds fetched rows; max_total_charge_usd
is the spending option passed to Apify. Partial data is possible. MCP returns a JSON envelope limited to 32,000 UTF-8 bytes, omitting whole oversized records. Check output_truncated and result_limit_reached; returned rows may be incomplete.

Input parameters:

- `country` (string): Two-letter country code for the organic traffic estimate, for example US, GB or DE. Default: US.
- `domains` (array, required): Array of strings. In the Console UI: one per line. Company websites, for example "stripe.com". Full URLs are fine too. Up to 100 per run.
- `include_jobs` (boolean): Add the 5 newest job titles to each report.
- `max_total_charge_usd` (number): Finite positive USD spending cap passed to Apify .call(); default 1.0.
- `result_limit` (integer): 1–1000. Default 60. Requested run max_items and fetched dataset row limit.

### `google_jobs` (~674 tokens)

Returns title, company, location, salary, salary_min, salary_max, contract_type, posted_at, posted_ago, source and apply_url; salary fields depend on what is shown.
Use this when... searching Google Jobs by queries for a country or a city with radius_km.
Do NOT use for... assuming salary is present on every job or submitting job applications.
Cost: $0.005 per search that returns jobs + $0.001 per job. Supports 90+ countries.

Optional inputs without schema defaults use None (omitted).
result_limit requests a run result cap and bounds fetched rows; max_total_charge_usd
is the spending option passed to Apify. Partial data is possible. MCP returns a JSON envelope limited to 32,000 UTF-8 bytes, omitting whole oversized records. Check output_truncated and result_limit_reached; returned rows may be incomplete.

Input parameters:

- `country` (string): Country to search jobs in, as a two-letter ISO code. Default: US.
- `employment_types`: Only return these contract types. Leave empty for all. For part-time jobs use the literal "partime". This spelling is required by the Actor code; "parttime" is not accepted.
- `include_descriptions` (boolean): Fetch the full description text for jobs whose apply link is on a company job board (Workday, Greenhouse, Lever, Ashby). Other jobs keep the link only. No extra charge. Default on.
- `language`: Two-letter language code. Language of the job search. Leave empty to use the main language of the country. Countries with more than one language: US: en/es; CA: en/fr; IN: en/hi; DZ: fr/ar; BE: fr/nl…
- `location`: Narrow the search to a city or region inside the country, written as "City,Region", for example "Austin,Texas" or "London,England". Leave empty to search the whole country.
- `max_jobs_per_query` (integer): How many jobs to return for each search, at most 200. Each returned job is one charged result. Default 50.
- `max_total_charge_usd` (number): Finite positive USD spending cap passed to Apify .call(); default 1.0.
- `queries` (array, required): Array of strings. In the Console UI: one per line. What to search for, as you would type it in Google, for example "data engineer" or "nurse night shift". Up to 50 per run.
- `radius_km`: Only with a city: search up to this distance from it. 1 to 300. Leave empty for the city's default area.
- `result_limit` (integer): 1–1000. Default 60. Requested run max_items and fetched dataset row limit.

### `ats_jobs` (~949 tokens)

Returns record_type, company_domain, title, location, salary, apply_url, detected_technologies and status on jobs; company_summary rows include total_active_jobs, new_jobs, closed_jobs and is_first_run.
Use this when... finding a company's job board from a domain such as stripe.com or a board slug in companies. Supports Greenhouse, Lever, Ashby, Workable, Recruitee and SmartRecruiters.
Do NOT use for... Workday or assuming every careers site is supported. Salary requires employer-published data; technologies come from job titles and descriptions.
Choose output_mode='summary_only' for short hiring checks. track_diff shares state_id; first-run NEW jobs are a baseline, not a hiring spike.

Optional inputs without schema defaults use None (omitted).
result_limit requests a run result cap and bounds fetched rows; max_total_charge_usd
is the spending option passed to Apify. Partial data is possible. MCP returns a JSON envelope limited to 32,000 UTF-8 bytes, omitting whole oversized records. Check output_truncated and result_limit_reached; returned rows may be incomplete.

Input parameters:

- `companies` (array, required): Company website domains (e.g. "stripe.com") or job-board slugs (e.g. "stripe"). To force a specific ATS, prefix the slug: "greenhouse:stripe", "lever:spotify", "ashby:linear", "workable:huggingface",…
- `departments`: Return only jobs whose department contains at least one of these words (case-insensitive). Example: ["engineering", "sales"].
- `extract_tech_keywords` (boolean): Scan each job title and description for core technologies (Python, AWS, React, Kubernetes, LLMs, ...) and return them in "detected_technologies" and in the summary's "top_technologies".
- `locations`: Return only jobs whose location contains at least one of these words (case-insensitive). Example: ["london", "new york", "germany"].
- `max_jobs_per_company` (integer): Maximum number of job records returned per company, after the other filters. 0 means no limit. When the limit cuts the list, NEW jobs are kept first, then CLOSED, then the rest. The summary's "matchi…
- `max_total_charge_usd` (number): Finite positive USD spending cap passed to Apify .call(); default 1.0.
- `only_changes` (boolean): Return only jobs whose status is NEW or CLOSED. Use it on scheduled runs to get just what changed since the last run.
- `output_mode` (string): "jobs_and_summary": one company_summary record per company followed by its job records. "summary_only": only the company_summary records (job counts, new/closed counts, departments, locations, techno…
- `remote_only` (boolean): Return only jobs marked or described as remote.
- `result_limit` (integer): 1–1000. Default 60. Requested run max_items and fetched dataset row limit.
- `state_id` (string): Name of the saved history used for change tracking. Runs that share a state_id are compared with each other. Use a different value per watchlist or per schedule.
- `technologies`: Return only jobs that mention at least one of these technologies, using the names from "detected_technologies" (case-insensitive). Example: ["Python", "Kubernetes", "LLMs"].
- `title_keywords`: Return only jobs whose title contains at least one of these words or phrases (case-insensitive). Example: ["engineer", "data scientist"].
- `track_diff` (boolean): Compare with the previous run that used the same "state_id" and set each job's "status" to NEW, EXISTING or CLOSED. On the first run every job is NEW (the summary marks this with is_first_run = true)…

### `keyword_volume` (~770 tokens)

Returns keyword, search_volume, cpc_usd, competition, competition_level and keyword_difficulty; metrics_available indicates whether metrics exist.
Use this when... measuring Google monthly keyword volume, CPC and competition, or discovering keyword ideas from keywords.
Do NOT use for... treating Google search_volume as measured visits to a website.
Choose mode='metrics', 'ideas' or 'suggestions'. Cost: $0.03 per lookup + $0.005 per keyword result. Free-plan metrics for the first 3 keywords depend on availability and can be paused.

Optional inputs without schema defaults use None (omitted).
result_limit requests a run result cap and bounds fetched rows; max_total_charge_usd
is the spending option passed to Apify. Partial data is possible. MCP returns a JSON envelope limited to 32,000 UTF-8 bytes, omitting whole oversized records. Check output_truncated and result_limit_reached; returned rows may be incomplete.

Input parameters:

- `country` (string): Country whose Google search data is used, as a two-letter ISO code. Default: US.
- `include_ai_search_volume` (boolean): Also return "ai_search_volume": an estimate of how often each keyword is used in AI assistants per month. This is one extra lookup per batch, plus one result charge for every keyword that has AI data…
- `include_monthly_searches` (boolean): Add a "monthly_searches" array with the search volume of each of the last 12 months to every keyword. Off by default to keep the output small.
- `keywords` (array, required): In "metrics" mode: the exact keywords to measure (up to 5,000). In "ideas" mode: seed keywords describing a topic (up to 200). In "suggestions" mode: seed phrases to expand into long-tail keywords (u…
- `language`: Two-letter language code. Leave empty to use the main language of the country. Countries with more than one language: US: en/es; CA: en/fr; IN: en/hi; DZ: fr/ar; BE: fr/nl/de; CY: el/en; EG: ar/en; G…
- `max_results` (integer): Only for "ideas" and "suggestions": maximum number of keywords to return (per seed in "suggestions" mode). Each returned keyword with metrics is one charged result. Default 50, maximum 1000.
- `max_total_charge_usd` (number): Finite positive USD spending cap passed to Apify .call(); default 1.0.
- `min_search_volume` (integer): Return only keywords with at least this many monthly searches. Keywords below the threshold are not returned and not charged. 0 = no minimum.
- `mode` (string): "metrics": return metrics for exactly the keywords given (one lookup per 700 keywords). "ideas": return keywords related to the seed keywords as a group, most relevant first (one lookup). "suggestion…
- `result_limit` (integer): 1–1000. Default 60. Requested run max_items and fetched dataset row limit.

### `domain_seo` (~593 tokens)

Returns record_type, domain, organic_traffic_estimate, organic_keywords and organic_traffic_value_usd on overview rows; ranked_keyword and competitor rows include keyword and competitor_domain respectively.
Use this when... comparing estimated organic traffic, ranking keywords, traffic value and competitor domains for domains.
Do NOT use for... presenting estimated organic traffic as measured website analytics.
Set top_keywords=0 and competitors=0 for overview only; check has_data on overview rows.

Optional inputs without schema defaults use None (omitted).
result_limit requests a run result cap and bounds fetched rows; max_total_charge_usd
is the spending option passed to Apify. Partial data is possible. MCP returns a JSON envelope limited to 32,000 UTF-8 bytes, omitting whole oversized records. Check output_truncated and result_limit_reached; returned rows may be incomplete.

Input parameters:

- `competitors` (integer): How many organic competitors to return (domains ranking for the same keywords, most shared keywords first). 0 = skip this lookup. Each returned competitor is one charged result. Default 10, maximum 1…
- `country` (string): Country whose Google results are analyzed, as a two-letter ISO code. Default: US.
- `domains` (array, required): Websites to analyze, for example "stripe.com". Full URLs are accepted and reduced to the domain. Up to 100 per run.
- `language`: Two-letter language code. Leave empty to use the main language of the country. Countries with more than one language: US: en/es; CA: en/fr; IN: en/hi; DZ: fr/ar; BE: fr/nl/de; CY: el/en; EG: ar/en; G…
- `max_total_charge_usd` (number): Finite positive USD spending cap passed to Apify .call(); default 1.0.
- `result_limit` (integer): 1–1000. Default 60. Requested run max_items and fetched dataset row limit.
- `top_keywords` (integer): How many of the domain's ranking keywords to return (organic top 20 positions, highest search volume first). 0 = skip this lookup. Each returned keyword is one charged result. Default 20, maximum 100…

### `youtube_transcripts` (~387 tokens)

Returns video_id, url, status, transcript and language; include_timestamps=True adds segments with start, duration and text.
Use this when... retrieving YouTube transcripts in bulk from videos, with timestamps when needed.
Do NOT use for... treating an error status as a delivered transcript or ignoring missing transcript data.
Check status on each record. Free Apify plan: first 3 videos of each run. Long transcripts may exceed the MCP output budget.

Optional inputs without schema defaults use None (omitted).
result_limit requests a run result cap and bounds fetched rows; max_total_charge_usd
is the spending option passed to Apify. Partial data is possible. MCP returns a JSON envelope limited to 32,000 UTF-8 bytes, omitting whole oversized records. Check output_truncated and result_limit_reached; returned rows may be incomplete.

Input parameters:

- `include_timestamps` (boolean): Add a "segments" array with the start time, duration and text of every caption line. Off by default to keep the output small.
- `language`: Two-letter language code such as "en", "es" or "de". If the video has captions in this language they are used; otherwise the video's main captions are returned and the "language" field tells you whic…
- `max_total_charge_usd` (number): Finite positive USD spending cap passed to Apify .call(); default 1.0.
- `result_limit` (integer): 1–1000. Default 60. Requested run max_items and fetched dataset row limit.
- `videos` (array, required): YouTube video URLs or 11-character video IDs. Regular links, youtu.be links, Shorts, embeds and live links all work. Up to 1,000 per run. Each delivered transcript is one charged result; videos witho…

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/edtool79-collab-hirepulse-open-source/hirepulse-tools#diagnostics

## Score history

- 2026-10-18: 62
- 2026-10-17: 62

## Common questions

### What is the HirePulse tools MCP server?

HirePulse tools is an MCP server listed in the public MCP registry as io.github.edtool79-collab/hirepulse-open-source. Apify tools for products, Google ads, company signals, jobs, keywords, SEO and YouTube transcripts. This page covers its PyPI package (hirepulse-tools).

### Is the HirePulse tools MCP server safe to use?

HirePulse tools scores 62 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 18 October 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the HirePulse tools MCP server expose?

HirePulse tools exposes 8 tools: search_aliexpress, google_ads_by_domain, company_intent, google_jobs, ats_jobs, and 3 more. Their descriptions and schemas cost roughly 4,699 tokens of context every time the server is loaded.

### Is the HirePulse tools MCP server still maintained?

HirePulse tools is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the HirePulse tools MCP server under?

HirePulse tools declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- PyPI project: https://pypi.org/project/hirepulse-tools/
- Socket report: https://socket.dev/pypi/package/hirepulse-tools
- Repository: https://github.com/edtool79-collab/hirepulse-open-source
- Changelog RSS feed: https://verifymcp.io/servers/edtool79-collab-hirepulse-open-source/hirepulse-tools.xml
- Changelog JSON feed: https://verifymcp.io/servers/edtool79-collab-hirepulse-open-source/hirepulse-tools.json
- HTML version of this page: https://verifymcp.io/servers/edtool79-collab-hirepulse-open-source/hirepulse-tools
