_ registry / mcp streamable-http · checked 1h ago

hirescrape

https://www.hirescrape.com

Registry code: 42fb89af67c661fa

api record

Scrapes public data from Instagram, LinkedIn, TikTok, TikTok Shop, YouTube and job boards such as Indeed and Glassdoor.

endpoint
https://hirescrape.com/api/mcp
door code
874d0d42e7c88137
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is hirescrape live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is hirescrape free to use?
Not measured yet.
What tools does hirescrape have?
6 tools: scrape_tiktok, scrape_instagram, scrape_linkedin, scrape_jobs, scrape_tiktok_shop, scrape_youtube.
Is hirescrape safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.6%

90 days 98.8%· all time 98.4%

latency
416ms

last good check

priced tools
0

of 6 tools

_ answered our checks, 90 days 939 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
_ what it is for
used for
  • scrape instagram profiles and posts
  • scrape job listings
  • scrape linkedin people and companies
  • scrape tiktok and youtube videos
takes → gives
text → data
tools
6 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 6 tools
6 never probed 0 of 6 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • scrape_tiktok reads unknown never probed

    TikTok profiles, posts, comments, fast-API feeds, search discovery. Guidance: Modes: profile (by URL), profile_by_search, post (by URL), posts_by_keyword (search_keyword), posts_by_profile (url + num_of_posts + what_to_collect), posts_by_url (URL capitalized), comments, posts_fast_profile/posts_fast_url/posts_fast_search (low-latency variants).

    mcp-tool

    {
      "type": "object",
      "title": "TikTok Scraper",
      "required": [
        "mode"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Full URL of the target object."
        },
        "mode": {
          "enum": [
            "profile",
            "audience",
            "profile_videos",
            "video",
            "transcript",
            "live",
            "video_comments",
            "comment_replies",
            "following",
            "followers",
            "search_users",
            "search_hashtag",
            "search_keyword",
            "search_top",
            "popular_songs",
            "popular_creators",
            "popular_videos",
            "popular_hashtags",
            "song",
            "song_videos",
            "trending_feed"
          ],
          "type": "string",
          "default": "profile",
          "description": "Which endpoint to call. Options: profile, audience, profile_videos, video, transcript, live, video_comments, comment_replies, following, followers, search_users, search_hashtag, search_keyword, search_top, popular_songs, popular_creators, popular_videos, popular_hashtags, song, song_videos, trending_feed."
        },
        "page": {
          "type": "integer",
          "description": "Page number (default 1)."
        },
        "trim": {
          "type": "boolean",
          "description": "Return a condensed response."
        },
        "limit": {
          "type": "integer",
          "default": 20,
          "maximum": 500,
          "minimum": 1,
          "description": "Max items to collect (applies to paginated modes)."
        },
        "query": {
          "type": "string",
          "description": "Search keyword."
        },
        "clipId": {
          "type": "string",
          "description": "TikTok song clip ID."
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor."
        },
        "handle": {
          "type": "string",
          "description": "Username / handle (without @)."
        },
        "period": {
          "type": "integer",
          "description": "Lookback days (7 or 30)."
        },
        "region": {
          "type": "string",
          "description": "Proxy / market region (e.g. US)."
        },
        "sortBy": {
          "type": "string",
          "description": "Sort key (depends on endpoint)."
        },
        "hashtag": {
          "type": "string",
          "description": "Hashtag (without #)."
        },
        "orderBy": {
          "type": "string",
          "description": "Order key (depends on endpoint)."
        },
        "sort_by": {
          "type": "string",
          "description": "Sort key (depends on endpoint)."
        },
        "user_id": {
          "type": "string",
          "description": "Platform user ID (often faster than handle)."
        },
        "industry": {
          "type": "string",
          "description": "Industry filter."
        },
        "language": {
          "type": "string",
          "description": "2-letter language code."
        },
        "min_time": {
          "type": "integer",
          "description": "Pagination cursor (unix seconds)."
        },
        "rankType": {
          "type": "string",
          "description": "popular or surging."
        },
        "comment_id": {
          "type": "string",
          "description": "Parent comment ID."
        },
        "max_cursor": {
          "type": "string",
          "description": "Pagination cursor."
        },
        "newOnBoard": {
          "type": "boolean",
          "description": "Only items new to the chart."
        },
        "timePeriod": {
          "type": "integer",
          "description": "Lookback days (7/30/130)."
        },
        "countryCode": {
          "type": "string",
          "description": "Country code."
        },
        "date_posted": {
          "type": "string",
          "description": "Posting timeframe."
        },
        "publish_time": {
          "type": "string",
          "description": "Publication time filter."
        },
        "followerCount": {
          "type": "string",
          "description": "Follower count bucket filter."
        },
        "creatorCountry": {
          "type": "string",
          "description": "Creator country."
        },
        "download_media": {
          "type": "boolean",
          "description": "Return permanent media URLs."
        },
        "get_transcript": {
          "type": "boolean",
          "description": "Include transcript in the response."
        },
        "audienceCountry": {
          "type": "string",
          "description": "Audience country."
        },
        "commercialMusic": {
          "type": "boolean",
          "description": "Only commercial-use tracks."
        },
        "use_ai_as_fallback": {
          "type": "boolean",
          "description": "Fall back to AI if no transcript."
        }
      },
      "description": "TikTok profiles, posts, comments, fast-API feeds, search discovery."
    }
    arguments 173 lines
  • scrape_instagram reads unknown never probed

    Instagram profiles, posts, reels, comments — 8 modes. Guidance: mode=profile/post/reel/comments (collect by URL), profile_discover (by user_name), user_posts/user_reels/all_reels (discover by profile URL). Dates: MM-DD-YYYY. post_type: Post or Reel. num_of_posts caps records.

    mcp-tool

    {
      "type": "object",
      "title": "Instagram Scraper",
      "required": [
        "mode"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Object ID (ad / highlight / etc)."
        },
        "url": {
          "type": "string",
          "description": "Full URL of the target object."
        },
        "mode": {
          "enum": [
            "profile",
            "basic_profile",
            "user_posts",
            "post",
            "transcript",
            "search_reels",
            "post_comments",
            "user_reels",
            "highlights",
            "highlight_detail",
            "song_reels",
            "embed"
          ],
          "type": "string",
          "default": "profile",
          "description": "Which endpoint to call. Options: profile, basic_profile, user_posts, post, transcript, search_reels, post_comments, user_reels, highlights, highlight_detail, song_reels, embed."
        },
        "page": {
          "type": "integer",
          "description": "Page number (default 1)."
        },
        "trim": {
          "type": "boolean",
          "description": "Return a condensed response."
        },
        "limit": {
          "type": "integer",
          "default": 20,
          "maximum": 500,
          "minimum": 1,
          "description": "Max items to collect (applies to paginated modes)."
        },
        "query": {
          "type": "string",
          "description": "Search keyword."
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor."
        },
        "handle": {
          "type": "string",
          "description": "Username / handle (without @)."
        },
        "max_id": {
          "type": "string",
          "description": "Pagination token."
        },
        "region": {
          "type": "string",
          "description": "Proxy / market region (e.g. US)."
        },
        "userId": {
          "type": "string",
          "description": "Instagram user ID."
        },
        "user_id": {
          "type": "string",
          "description": "Platform user ID (often faster than handle)."
        },
        "audio_id": {
          "type": "string",
          "description": "Instagram audio/song ID."
        },
        "date_posted": {
          "type": "string",
          "description": "Posting timeframe."
        },
        "next_max_id": {
          "type": "string",
          "description": "Pagination token."
        },
        "download_media": {
          "type": "boolean",
          "description": "Return permanent media URLs."
        }
      },
      "description": "Instagram profiles, posts, reels, comments — 8 modes."
    }
    arguments 96 lines
  • scrape_linkedin reads unknown never probed

    LinkedIn people, companies, posts, job listings, people search. Guidance: Modes: person/company/job/post (collect by URL), people_search (url+first_name+last_name), jobs_by_keyword (+location, country, time_range, job_type, experience_level, remote), jobs_by_url, posts_by_company, posts_by_profile (ISO 8601 dates!), posts_by_url.

    mcp-tool

    {
      "type": "object",
      "title": "LinkedIn Scraper",
      "required": [
        "mode"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Full URL of the target object."
        },
        "mode": {
          "enum": [
            "profile",
            "company",
            "company_posts",
            "post"
          ],
          "type": "string",
          "default": "profile",
          "description": "Which endpoint to call. Options: profile, company, company_posts, post."
        },
        "page": {
          "type": "integer",
          "description": "Page number (default 1)."
        },
        "limit": {
          "type": "integer",
          "default": 20,
          "maximum": 500,
          "minimum": 1,
          "description": "Max items to collect (applies to paginated modes)."
        }
      },
      "description": "LinkedIn people, companies, posts, job listings, people search."
    }
    arguments 36 lines
  • scrape_jobs reads unknown never probed

    Scrape jobs from LinkedIn, Indeed, Glassdoor, Google Jobs, ZipRecruiter, Bayt, BDJobs, and Naukri in one call. Guidance: searchTerm is required. location and sites default sensibly. Use isRemote=true for remote-only. Use hoursOld for 'posted this week'. countryIndeed controls the Indeed/Glassdoor region.

    mcp-tool

    {
      "type": "object",
      "title": "Multi Job Board Scraper",
      "required": [
        "searchTerm"
      ],
      "properties": {
        "sites": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": [
            "linkedin",
            "indeed",
            "glassdoor",
            "google",
            "zip_recruiter",
            "bayt",
            "bdjobs",
            "naukri"
          ],
          "description": "Boards: linkedin, indeed, glassdoor, google, zip_recruiter, bayt, bdjobs, naukri."
        },
        "offset": {
          "type": "integer",
          "minimum": 0,
          "description": "Skip first N results (pagination)."
        },
        "jobType": {
          "enum": [
            "",
            "fulltime",
            "parttime",
            "contract",
            "internship",
            "temporary"
          ],
          "type": "string",
          "default": "",
          "description": "Filter by employment type."
        },
        "distance": {
          "type": "integer",
          "default": 50,
          "maximum": 200,
          "minimum": 0,
          "description": "Radius in miles from location."
        },
        "hoursOld": {
          "type": "integer",
          "maximum": 8760,
          "minimum": 1,
          "description": "Only jobs posted in last N hours."
        },
        "isRemote": {
          "type": "boolean",
          "default": false,
          "description": "Remote-only."
        },
        "location": {
          "type": "string",
          "description": "City, state, country, or 'Remote'. Empty = global."
        },
        "easyApply": {
          "type": "boolean",
          "default": false,
          "description": "Only easy-apply jobs."
        },
        "maxResults": {
          "type": "integer",
          "default": 20,
          "maximum": 100,
          "minimum": 1,
          "description": "Max jobs per board (1-100)."
        },
        "searchTerm": {
          "type": "string",
          "description": "Job title, keyword, or skill."
        },
        "countryIndeed": {
          "type": "string",
          "default": "usa",
          "description": "Country code for Indeed/Glassdoor (usa, uk, canada, etc)."
        },
        "googleSearchTerm": {
          "type": "string",
          "description": "Custom query for Google Jobs only."
        },
        "descriptionFormat": {
          "enum": [
            "markdown",
            "html"
          ],
          "type": "string",
          "default": "markdown",
          "description": "Output format for job descriptions."
        },
        "linkedinCompanyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Restrict LinkedIn to specific company IDs."
        },
        "enforceAnnualSalary": {
          "type": "boolean",
          "default": false,
          "description": "Normalize salary to annual."
        },
        "linkedinFetchDescription": {
          "type": "boolean",
          "default": false,
          "description": "Fetch full LinkedIn job descriptions."
        }
      },
      "description": "Scrape jobs from LinkedIn, Indeed, Glassdoor, Google Jobs, ZipRecruiter, Bayt, BDJobs, and Naukri in one call."
    }
    arguments 118 lines
  • scrape_tiktok_shop reads unknown never probed

    TikTok Shop products + discovery by keyword/category/shop. Guidance: Modes: product (by URL), by_category (category_url), by_keyword (keyword + optional domain), by_shop (shop storefront URL), category_products (BD fast category dataset).

    mcp-tool

    {
      "type": "object",
      "title": "TikTok Shop Scraper",
      "required": [
        "mode"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Full URL of the target object."
        },
        "mode": {
          "enum": [
            "search",
            "products",
            "product",
            "reviews",
            "showcase"
          ],
          "type": "string",
          "default": "search",
          "description": "Which endpoint to call. Options: search, products, product, reviews, showcase."
        },
        "page": {
          "type": "integer",
          "description": "Page number (default 1)."
        },
        "limit": {
          "type": "integer",
          "default": 20,
          "maximum": 500,
          "minimum": 1,
          "description": "Max items to collect (applies to paginated modes)."
        },
        "query": {
          "type": "string",
          "description": "Search keyword."
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor."
        },
        "handle": {
          "type": "string",
          "description": "Username / handle (without @)."
        },
        "region": {
          "type": "string",
          "description": "Proxy / market region (e.g. US)."
        },
        "product_id": {
          "type": "string",
          "description": "Product ID."
        }
      },
      "description": "TikTok Shop products + discovery by keyword/category/shop."
    }
    arguments 57 lines
  • scrape_youtube reads unknown never probed

    YouTube videos, channels, and comments — 10 modes. Guidance: Modes: video (collect by URL), videos_by_explore/hashtag/keyword/podcast_url/search_filters/url (discover, async), channel (collect by URL), channels_by_keyword (async), comments (by video URL, async). Dates: MM-DD-YYYY. num_of_posts caps records (default 20, max 5000). search_filters supports upload_date/type/duration/features filters.

    mcp-tool

    {
      "type": "object",
      "title": "YouTube Scraper",
      "required": [
        "mode"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Full URL of the target object."
        },
        "mode": {
          "enum": [
            "video",
            "videos_by_explore",
            "videos_by_hashtag",
            "videos_by_keyword",
            "videos_by_podcast_url",
            "videos_by_search_filters",
            "videos_by_url",
            "channel",
            "channels_by_keyword",
            "comments"
          ],
          "type": "string",
          "default": "video",
          "description": "Which endpoint to call. Options: video, videos_by_explore, videos_by_hashtag, videos_by_keyword, videos_by_podcast_url, videos_by_search_filters, videos_by_url, channel, channels_by_keyword, comments."
        },
        "type": {
          "type": "string",
          "description": "Content type (all or shorts)."
        },
        "limit": {
          "type": "integer",
          "default": 20,
          "maximum": 500,
          "minimum": 1,
          "description": "Max items to collect (applies to paginated modes)."
        },
        "country": {
          "type": "string",
          "description": "Country code (e.g. US, GB)."
        },
        "hashtag": {
          "type": "string",
          "description": "Hashtag (without #)."
        },
        "keyword": {
          "type": "string",
          "description": "Search keyword."
        },
        "sort_by": {
          "type": "string",
          "description": "Sort key (depends on endpoint)."
        },
        "all_tabs": {
          "type": "boolean",
          "description": "Scrape all tabs on the destination page."
        },
        "duration": {
          "type": "string",
          "description": "Duration filter (Under 4 minutes / 4-20 minutes / Over 20 minutes)."
        },
        "end_date": {
          "type": "string",
          "description": "End date (YYYY-MM-DD)."
        },
        "features": {
          "type": "string",
          "description": "Feature filter (4K / HD / Creative Commons / Subtitles)."
        },
        "order_by": {
          "type": "string",
          "description": "Sort order for discovered videos (Latest / Oldest / Popular)."
        },
        "start_date": {
          "type": "string",
          "description": "Start date (YYYY-MM-DD)."
        },
        "time_period": {
          "type": "string",
          "description": "Lookback window (e.g. '1 day ago', '1 month ago', '1 year ago')."
        },
        "upload_date": {
          "type": "string",
          "description": "Upload recency filter (Today / Week / Month / Year)."
        },
        "num_of_posts": {
          "type": "integer",
          "description": "Max records to collect (0 = provider default)."
        },
        "keyword_search": {
          "type": "string",
          "description": "Keyword for filtered video search."
        },
        "transcription_language": {
          "type": "string",
          "description": "BCP-47 language code for transcript (e.g. en, es). Empty = auto."
        }
      },
      "description": "YouTube videos, channels, and comments — 10 modes."
    }
    arguments 102 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 42fb89af67c661fa.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/42fb89af67c661fa/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/42fb89af67c661fa/badge.svg)](https://brick.blue/agent/42fb89af67c661fa?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.