Skip to main content
Glama
274,786 tools. Last updated 2026-07-08 19:18

"A tool for semantically searching job postings on LinkedIn and Indeed" matching MCP tools:

  • Search LinkedIn for public job postings matching a query. Wraps `nexgendata/linkedin-jobs-scraper`. Returns job title, company, location, posted date, and description. Posted-within filter is a soft hint applied client-side via the LinkedIn search UI. Args: query: Free-text job query (e.g. "senior python developer"). location: Optional location (e.g. "Berlin", "Remote"). posted_within_days: Soft recency filter (default 14, max 90).
    Connector
  • [Sales Intelligence] Search LinkedIn for public job postings matching a query. Wraps `nexgendata/linkedin-jobs-scraper`. Returns job title, company, location, posted date, and description. Posted-within filter is a soft hint applied client-side via the LinkedIn search UI. Args: query: Free-text job query (e.g. "senior python developer"). location: Optional location (e.g. "Berlin", "Remote"). posted_within_days: Soft recency filter (default 14, max 90).
    Connector
  • Get Indeed Job Details Fetches a single Indeed job posting by its viewjob URL. Returns job title, company, location, salary/compensation, employment type, posted date, full description, requirements/benefits, and apply URL. Use for ATS/CRM enrichment, compensation benchmarking, resume-to-JD matching with LLMs, and structured archival of postings discovered via the Indeed Listing endpoint.
    Connector
  • Get Indeed Job Listings Searches Indeed job listings by keyword and location with sort (relevance/date), country domain targeting, and offset-based pagination (start). Returns an array of jobs with title, company, location, salary, posted date, job URL, and jobKey for the requested page. Use for job-market dashboards, role/geo hiring-trend analysis, sourcing pipelines, and generating URL lists to feed into the Indeed Job endpoint.
    Connector
  • LinkedIn Remote Jobs Scraper — remote-only LinkedIn job postings for a keyword, with full company contact data. Real-tim Cost: $0.005–$0.05 USDC on Base per call.
    Connector
  • LinkedIn Jobs Scraper — search live LinkedIn job postings by keyword and location; every row includes the FULL company p Cost: $0.005–$0.05 USDC on Base per call.
    Connector

Matching MCP Servers

  • A
    license
    -
    quality
    B
    maintenance
    An MCP server that finds recent job postings based on your LinkedIn profile, scores each against your resume, and logs the results — all without logging into or scraping LinkedIn.
    Last updated
    MIT

Matching MCP Connectors

  • linkedin-humblebrag MCP — wraps StupidAPIs (requires X-API-Key)

  • LinkedIn API as MCP tools to retrieve profile data and publish content. Powered by HAPI MCP.

  • Long-polls a perspective-design job (started by perspective_create, perspective_respond, or perspective_update) and returns either its terminal result or another "pending" envelope to keep polling. Behavior: - Read-only — observes a running design job. Safe to call repeatedly. - Errors with "Unknown job_id" if no such job exists, or "job_id does not belong to a perspective design workflow" if the id is for a different kind of job. Workspace and perspective access are re-checked on every call. - Each call blocks up to wait_ms (default 30s, min 1s, max 45s). On timeout, returns status "pending" with a progress_cursor — pass it back on the next call to skip already-seen progress events. - Terminal status is "ready" (outline generated; share_url/direct_url/preview_url populated) or "needs_input" (follow_up_question populated). Failures surface as "Design job failed: ..." with the underlying message. When to use this tool: - Immediately after perspective_create / perspective_respond / perspective_update returns a job_id. - Re-polling after a previous call returned status "pending" (pass the returned progress_cursor back). When NOT to use this tool: - You don't have a job_id yet — call perspective_create / perspective_respond / perspective_update first. - Inspecting a finished perspective's config — use perspective_get.
    Connector
  • Find air-quality monitoring stations (measured by physical sensors, not modeled) near a point, within a bounding box, or by country. Returns each station's id, name, coordinates, distance from the query point (when searching by coordinates), country, provider, the parameters its sensors measure, and the timestamp of its most recent data (datetimeLast). Required first step: openaq_get_readings and openaq_get_measurements key on the location id this returns. Coverage is uneven and real — a station only reports the parameters it measures, and the absence of a nearby station means no monitoring there, not clean air. For dense modeled coverage anywhere on Earth, use open-meteo-mcp-server's air-quality tool instead.
    Connector
  • Preferred user-facing LinkedIn account analysis and account health dashboard. Renders the LinkedIn account readiness report with setup recommendations, probe evidence, and technical details. Use this directly when a user asks for LinkedIn account analysis, account health, connector readiness, setup diagnostics, or whether a LinkedIn Ads account is ready for reporting. It can take healthPayload from linkedin_get_account_health or run the same health checks directly. If accountId is omitted, the most recent LinkedIn account from session memory is used when available.
    Connector
  • Record payment for an ACCEPTED job. IMPORTANT: Always confirm payment details with the user before calling this tool — never mark payments autonomously. Job must be in ACCEPTED status (use get_job_status to check). Crypto payments (usdc, eth, sol): provide tx hash + network → verified on-chain instantly, job moves to PAID. Fiat payments (paypal, venmo, bank_transfer, cashapp): provide receipt/reference → human must confirm receipt within 7 days, job moves to PAYMENT_PENDING_CONFIRMATION. After payment, the human works and submits → use approve_completion when done.
    Connector
  • MONITORING: Quick status check for Terraform deployments Check the current status of a Terraform deployment job. Use this tool to quickly check if a deployment is running, completed, or failed. Returns job status, job_id, and other metadata without streaming logs. Use tflogs to stream the actual deployment logs. REQUIRES: session_id from convoopen response (format: sess_v2_...). OPTIONAL: job_id to target a specific deployment (use tfruns to discover IDs). **LIVENESS**: The response carries two distinct timestamps: - `updated_at` — last semantic change (only bumped when status / drift / version actually differ). Useful for sorting deployments; NOT a per-poll heartbeat. - `last_refresh_at` — last successful Oracle decode (stamped on every poll where reliable reached Oracle, even if nothing in the row changed). Use this to confirm reliable is still actively talking to Oracle for a long-running RUNNING job. Absent on rows that haven't been refreshed since the column was added. 💡 TIP: Examine workflow.usage prompt for more context on how to properly use these tools.
    Connector
  • User-facing LinkedIn creative comparison visual report renderer. Current app template: ui://linkedin/creative-comparison-v4.html. Use this directly when a user asks for a LinkedIn creative comparison visual report, creative performance report, creative winners/losers, or which creative concepts are performing strongest. It renders the visual MCP app with Overall/campaign views, creative action cards, primary results, diagnoses, and bottleneck diagnosis. It can either take comparisonPayload from linkedin_compare_creative_performance or fetch the comparison directly. For account-wide creative analysis, pass accountId and omit campaignId/campaignIds, or pass advertiserName/query so saved advertiser context or live account-name matching can resolve the LinkedIn account. Name-only account-wide requests are supported; do not claim the renderer requires a numeric accountId until this tool returns an account-selection blocker. lookbackDays accepts numbers and string aliases such as "30d", "30 days", and "past 30 days"; do not claim a numeric lookback is required. If accountId and name/query are omitted, the most recent LinkedIn account from session memory is used when available. For campaign-specific creative analysis, pass campaignId or campaignIds; if accountId is also supplied as parent context, set scope to campaign when possible. accountId plus campaignIds is accepted as a campaign-set compatibility shape.
    Connector
  • Search jobs across 90+ countries by title, location, salary, remote/hybrid work mode, or employment type. Find roles in tech, finance, product, design, marketing, and every other vertical — aggregated from 1000+ ATS sources globally. Default action is search; use refine when the user asks for more matches or gives feedback on a prior result set; use save to bookmark a job for the signed-in user (requires OAuth). REFINE PROTOCOL (action=refine has THREE distinct modes): (1) Pure continuation / 'show me more' / 'next batch' / 'another set' / 'more like these': pass refine_recommendations.exclude_ids = the full array of **Job Id** values from the most recent search/refine result's content text (verbatim) + refine_recommendations.session_id = prior response's session_id if present. Server returns next 10 unique jobs. (2) 'Show me more like #N' / 'similar to the Atlassian one' / 'jobs like #2': pass refine_recommendations.liked_indexes = [N] (1-based position from prior numbered list) + exclude_ids + session_id. Equivalently you may pass refine_recommendations.liked_job_ids = [<that job's **Job Id** value verbatim>]. Server seeds the recommendation from that job's title/skills/company profile. (3) 'Less like #N' / 'no more N-style jobs' / 'avoid jobs like that': pass refine_recommendations.disliked_indexes = [N] (or disliked_job_ids = [<Job Id>]) + exclude_ids + session_id. Server suppresses similar jobs. All three modes: if you skip exclude_ids, the user sees duplicates — that's a failure. The handler layers exclude_ids with server-side AgentKit memory, so partial lists still work. NEVER invent 'JOB_1' / '#1' as job_id values — always use the real **Job Id** string from the prior result's content text. For detail requests (user asks about a specific job from the list, e.g. 'details for #1', 'show me this job', 'tell me more about <company>'), DO NOT call this tool — call job_detail_tool instead. That separate tool binds to the job-detail widget card so the full job card renders in chat. OUTPUT BEHAVIOR: Render the search results as a numbered markdown list, one line per job, in this exact compact format: `N. **[Job Title](View_Job_URL)** — Company · Location · Job Type · Compensation · Posted MMM DD`. Embed the View Job URL as a markdown link on the title (so the user can click to apply). Keep URLs intact — don't strip parameters. Skip a field entirely if it's missing — never print 'N/A' placeholders. The numbered list IS the canonical user-facing answer. REQUIRED follow-up: after the list, output EXACTLY these two sentences as two parallel questions (same pattern for action=search and action=refine): Sentence 1 — 'Would you like to see full details on any of these? Reply with the number (#1), the company name, or the role title.' Sentence 2 — 'Or would you like to refine the list — what should change (work mode, level, salary, sector)?' These two sentences must be separate and parallel; do NOT merge them into one 'detail ... or refine' clause (that buries the detail CTA). Both questions must be asked every time after a search or refine result. When the user replies referring to a specific job from the list, identify which job they mean and call job_detail_tool immediately. Identifying the job (use flexibly — users rarely type '#N' literally): (a) any numeric or ordinal reference ('#1', '1', 'first', 'the 1st', 'top one', 'job 3', 'the third') → the Nth job in your prior numbered list; (b) a company name, partial or full ('Morgan Stanley', 'Morstan', 'Capital One') → case-insensitive substring match on the Company field of the prior list, pick the first match; (c) a role/title phrase ('the analyst role', 'the credit risk one') → case-insensitive substring match on the Job Title field. If multiple jobs match, prefer the earliest. Only if no reasonable match exists, ask a one-line clarifying question. Then pass that job's **Job Id** value from the prior search result's content text VERBATIM as job_id to job_detail_tool / tailor_resume_tool / cover_letter_tool. Do NOT invent a placeholder like 'JOB_1' or '#1' — those are not server-valid IDs. For save, pass job_id + optional job_title/company/job_url in save_job. Put search fields in search_jobs or parameters; refine in refine_recommendations; save in save_job.
    Connector
  • Store a generated outreach message on a CRM lead so it becomes durable context — e.g. an email, an email follow-up, a LinkedIn message or LI follow-up. The CRM is a 'sponge': you save the copy here, then read it back later (get_lead_context / list_lead_messages) and push it to the right channel via that channel's own tool/MCP (e.g. Smartlead for email). Does NOT send anything. Pass message_id to update an existing draft instead of creating a new one.
    Connector
  • Publish a post immediately to the user's connected social accounts (Instagram, TikTok, LinkedIn, X, Threads). ALWAYS confirm with the user first (target platforms + caption). Instagram and TikTok require at least one image or video in media_urls; LinkedIn, X, and Threads allow text only. Caption limits: X 280 chars, Threads 500 chars. X has a monthly allowance of 50 posts included in the add-on. Pass generated asset URLs (Supabase-hosted) as media_urls. LinkedIn also supports DOCUMENT posts (rendered as a swipeable carousel): pass exactly ONE .pdf/.ppt/.pptx/.doc/.docx URL in media_urls, targeting linkedin only. Document rules: one document per post, never mixed with images or videos, max 100 MB and 300 pages, password-protected PDFs are not supported, and the URL must serve the file bytes directly (Supabase-hosted works; Drive/Dropbox/OneDrive share links do not). Set document_title for document posts, and put any external link in first_comment instead of the caption (LinkedIn suppresses captions with links). If the user isn't subscribed or hasn't linked the platform, the result will instruct you to show a connect card, do not retry in that case.
    Connector
  • Retrieve the final output of a completed async job. Call ONLY after check_job_status returns status='completed' — calling on a non-completed job returns an error. Returns JSON whose shape depends on jobType: video/video-image → { videoUrl, duration }; image-3d → { modelUrl } (GLB format); transcription → { text, language, segments }; epub-audiobook → { audioUrl, chapters }; ai-call → { transcript, duration, summary }. All URLs are temporary (valid ~1 hour) — download immediately. This tool is free and does not require payment. Do NOT use for synchronous tools — those return results directly.
    Connector
  • Tracks a job from jobs_search results in the user's job tracker, identified by its job_id. For a job found elsewhere on the open web (with a URL but no jobs_search job_id), tracker_add_external is the right tool instead. Fields: - `job_id`: the job ID from jobs_search results (required) - `status`: initial status (saved, applied, interviewing, offered, archived); defaults to "saved" - `sub_status`: sub-status within the main status - `notes`: notes about the job Returns the tracked job with its details, or an error if it is already tracked. A job that was previously removed from the tracker is restored with its earlier status and notes.
    Connector
  • Keyword-search recent Arbeitnow job postings (keyless European/German job board, many English-speaking & visa-sponsor roles). The upstream API has no search param, so this scans the most recent pages and filters client-side: it keeps jobs whose title, company name, or any tag contains the query (case-insensitive). Scans up to `pages` pages (default 3, max 10). Older jobs that have scrolled off the recent pages will not be found.
    Connector
  • Preview the account owner's saved business-lead campaign. Returns public company website leads, employee-count confidence, source receipts, and next actions for manual review. This is first-party job-search research for the account owner, not applicant screening, not hiring decisions, not outreach, and not autonomous apply/send. Read-only by default: it does not persist leads unless persist_results is explicitly true and never scrapes LinkedIn.
    Connector
  • Set the employer-side status of one application to a job posting of a business you manage: submitted, viewed, shortlisted, rejected, or hired. Applicants alone may withdraw — passing 'withdrawn' is rejected (invalid_job_application_status). Idempotent per (application, status): re-setting the same status is a no-op overwrite. The change is visible to the seeker in their applications view and is audit-logged with this agent's attribution. Status changes never affect the business's trust score, ranking, or the applicant's account. Requires a scoped management key (allowed_actions include update_job_application_status — an explicit owner grant, never default) — works on any plan tier including Free (management actions are rate-limited per plan; management_rate_limited when the hourly allowance is used up). Returns job_application_not_found when the application does not belong to this business's postings.
    Connector