How to Scrape HubSpot Solutions Marketplace for an Agency Shortlist
For a HubSpot CRM implementation, a partner badge is only one part of agency fit. Location, language, relevant services, and evidence of similar work matter before you invite agencies to discuss a project.
The HubSpot Solutions Marketplace Scraper searches marketplace agency profiles and returns identifiers, descriptions, tiers, ratings, and review counts. I maintain this Actor on Apify. This guide builds an initial US, English-language implementation shortlist, then shows what still needs checking on each profile.

Use the current input vocabulary
The deployed schema and README differ on several filter values. The example here follows the deployed schema: tier inputs are lowercase, language values are uppercase, and services use numeric catalog IDs represented as strings.
Use search: "CRM implementation" when you want a readable keyword search. Do not put crm-implementation in services merely because it sounds like a plausible service slug. If you need an exact service filter, obtain its current catalog ID first.
Available partnerTiers values are elite, diamond, platinum, and gold. Leaving the array empty avoids restricting the search to those tiers. The current schema does not offer a NONE option or a sort input, despite older README examples mentioning them.
Run a focused first search
Open the Actor, choose the JSON view in Input, and paste:
{
"search": "CRM implementation",
"countries": ["US"],
"languages": ["ENGLISH"],
"maxItems": 20
}
Click Start and open the dataset after completion. Check a few profileUrl links and read the descriptions. A keyword match is a discovery signal, not confirmation that an agency can deliver your specific migration or integration.
maxItems limits agencies across the run. Its schema default is zero, meaning all matching results, while the form prefill is fifty. Set it explicitly to twenty for this check so a copied input cannot accidentally expand to every match.
If this search is too broad, add a tier or budget filter after reviewing the first results. budgets accepts LOWER, MIDDLE, and UPPER, labeled $0–2,500, $2,500–5,000, and $5,000+ in the form. These ranges do not establish the cost of your project. Country filters use ISO codes such as US or GB; industry values are uppercase, such as ECOMMERCE.
Know what the agency row actually contains
The README's output example is explicitly an “Example Agency” record. It is useful for understanding the shape, but is not evidence about a real agency or a successful run. The documented fields include:
| Fields | How to use them |
|---|---|
id, slug, profileUrl | Identify the agency and return to its marketplace profile. |
name, description, partnerType | Review its positioning and the services described. |
tier, rating, reviewCount | Keep the partner tier and review evidence together. |
adjustedRating, score, scrapedAt | Preserve source ranking signals and the observation time without inventing their methodology. |
The sample does not establish email, telephone, named decision-maker, or detailed project-price fields. Plan to review profile links for qualification instead of expecting an outreach-ready contact database.

Build an implementation review matrix
Export CSV with agency ID, name, profile URL, description, tier, rating, review count, and collection time. Remove repeated IDs before assigning agencies to reviewers.
Add columns for migration experience, required integrations, industry examples, working language, delivery region, and evidence URL. Open each profile and fill those columns only when the profile or linked agency site supports the entry. Mark “not confirmed” when the necessary evidence is missing.
Separate essential requirements from preferences. For example, if your project needs an ERP integration, an attractive review score cannot compensate for no evidence of that capability. Keep agencies with unconfirmed essentials in a research queue rather than silently treating them as qualified.
Compare reviews with their counts attached and read relevant comments where available. Do not calculate a “best agency” score by adding score, adjustedRating, and your own preference ratings: those fields do not share a documented scale or methodology.
The useful result is a short list of agencies with reasons for inclusion, supporting links, and questions for an eventual scope discussion. The scraper helps find candidates; it does not establish current capacity, fit, or a contractual quote.
Cost and empty-result checks
Pricing as of September 6, 2026 is $0.002 per agency result, plus a start event of $0.00005 per GB of allocated memory, minimum one event. Twenty agencies cost $0.04 in result events. Review current pricing and separately billed account usage before collecting a larger directory.
If a heavily filtered run is empty, first retry the keyword search with only maxItems. Then add country, language, and tier one at a time. This distinguishes a genuinely narrow intersection from a filter value copied out of an outdated example. Raising the item cap does not make invalid filter values meaningful.
Save the exact successful filters with your export. For a refresh, join on agency ID and review changes in profile text or tier without assuming a missing row means the agency has left the marketplace.
The HubSpot Node.js example can help integrate reviewed results into a research system. Clutch listings offer a separate source of agency profiles, while the Fiverr seller guide covers individual service packages.
Frequently asked questions
Should partnerTiers contain DIAMOND or diamond?
Use lowercase input values such as diamond. The deployed schema accepts elite, diamond, platinum, and gold, even though output tier labels can be uppercase.
Can I use crm-implementation as a services filter?
The current schema says services accepts numeric catalog service IDs as strings. Use search for a readable keyword until you have verified the correct service ID.
Does the budget filter provide a project quote?
No. A marketplace budget range is a discovery filter. Confirm scope, availability, and pricing with the agency before using a figure in a project budget.
