{
  "data": {
    "id": "Aq0TpdSOrkr95eY9w",
    "actId": "81MFSygAxZBaN8ZwI",
    "userId": "LFz5m5tySDyJXqduP",
    "startedAt": "2026-10-18T16:34:09.856Z",
    "finishedAt": "2026-10-18T16:34:17.206Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 7286,
      "runTimeSecs": 7.286,
      "computeUnits": 0.008095555555555555,
      "imageSizeBytes": 552176640
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"LinkedIn Email Finder | Exact Personal Match\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"description\": \"LinkedIn email finder for a profile URL you already have. Returns a personal Gmail, Outlook, Yahoo, or Hotmail only when the match is 100% exact. No match, no charge. 400M+ records, Starting from $30 per 1,000 found. You supply the URL. Mawsool is not affiliated with LinkedIn.\",\n  \"properties\": {\n    \"lawfulUse\": {\n      \"title\": \"Professional use and lawful basis\",\n      \"type\": \"boolean\",\n      \"description\": \"This run is for professional outreach, recruiting, or account-based marketing, and you have a lawful basis to use a match. Mawsool does not send the email for you. Leaving this off does not stop the run.\",\n      \"default\": true\n    },\n    \"urls\": {\n      \"title\": \"LinkedIn profile URLs\",\n      \"type\": \"array\",\n      \"description\": \"Profile URLs you already have, such as linkedin.com/in/.... After a match, check quality in Email to LinkedIn: https://apify.com/oday/mawsool-email-linkedin-lookup\",\n      \"editor\": \"stringList\",\n      \"prefill\": [\n        \"https://www.linkedin.com/in/example\"\n      ],\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"urlsCsv\": {\n      \"title\": \"Or paste CSV\",\n      \"type\": \"string\",\n      \"description\": \"A url or linkedinUrl column. One URL per row is also accepted.\",\n      \"editor\": \"textarea\",\n      \"prefill\": \"url\\nhttps://www.linkedin.com/in/example\"\n    },\n    \"fileUrl\": {\n      \"title\": \"Or upload a CSV file\",\n      \"type\": \"string\",\n      \"description\": \"CSV with a url or linkedinUrl column. HubSpot, Salesforce, Clay, and recruiter exports all work.\",\n      \"editor\": \"fileupload\"\n    },\n    \"maxUrls\": {\n      \"title\": \"Maximum URLs\",\n      \"type\": \"integer\",\n      \"default\": 100,\n      \"minimum\": 1,\n      \"maximum\": 50000,\n      \"description\": \"Cost-control cap. Maximum 50,000. You pay only for profiles that return a personal email.\"\n    },\n    \"concurrency\": {\n      \"title\": \"Concurrent lookups\",\n      \"type\": \"integer\",\n      \"description\": \"How many profiles to look up at the same time.\",\n      \"default\": 8,\n      \"minimum\": 1,\n      \"maximum\": 20\n    },\n    \"resumeId\": {\n      \"title\": \"Resume ID (optional)\",\n      \"type\": \"string\",\n      \"description\": \"Reuse this ID to skip profiles that already returned an email.\",\n      \"editor\": \"textfield\"\n    },\n    \"freshStart\": {\n      \"title\": \"Look up finished profiles again\",\n      \"type\": \"boolean\",\n      \"description\": \"Turn this on to ignore saved progress and look up the whole list again.\",\n      \"default\": false\n    }\n  }\n}",
    "readme": "# LinkedIn Email Finder | Exact Personal Match\r\n\r\n**LinkedIn email finder.** Paste a profile URL you already have. Get the personal email when the match is 100% exact. No match, no charge. Starting from $30 per 1,000 emails found.\r\n\r\n## If you need a different Mawsool Actor\r\n\r\n| If this is what you need | Open |\r\n| --- | --- |\r\n| You have an email and want the LinkedIn profile. | [Reverse Email Lookup](https://apify.com/oday/mawsool-email-linkedin-lookup) |\r\n| You have a name and company and want the profile URL. | [LinkedIn Profile Finder](https://apify.com/oday/mawsool-linkedin-profile-finder) |\r\n| You only need the current employer, before paying for a full profile. | [Current Company Checker](https://apify.com/oday/mawsool-linkedin-company-checker) |\r\n| You want the current company and headline, and you will compare them to your CRM yourself. | [Profile Freshness Check](https://apify.com/oday/mawsool-linkedin-profile-freshness) |\r\n| You want an alert when the employer or headline changes. | [Job Change Tracker](https://apify.com/oday/mawsool-linkedin-job-change-watch) |\r\n| You have a profile URL and want the full profile. | [LinkedIn Profile Scraper](https://apify.com/oday/mawsool-linkedin-profile-details) |\r\n| You have a large file of profile URLs. | [Mass Profile Scraper](https://apify.com/oday/mawsool-mass-linkedin-profile-scraper) |\r\n| You want the current employer's website from a profile URL. | [Profile to Company Website](https://apify.com/oday/mawsool-linkedin-profile-to-company-website) |\r\n| You want the job history only. | [Work Experience](https://apify.com/oday/mawsool-linkedin-profile-experience) |\r\n| You want schools and degrees only. | [Education](https://apify.com/oday/mawsool-linkedin-profile-education) |\r\n| You want a yes or no for one certificate. | [Certification Checker](https://apify.com/oday/mawsool-linkedin-certification-checker) |\r\n| You want certificates, patents, courses, and publications. | [Certifications and Patents](https://apify.com/oday/mawsool-linkedin-profile-credentials) |\r\n| You want likes and comments for outreach. | [Profile Activity](https://apify.com/oday/mawsool-linkedin-profile-activity) |\r\n| You have a company URL and want the full company record. | [Company Details](https://apify.com/oday/mawsool-linkedin-company-details) |\r\n| You have a large file of company URLs. | [Mass Company Scraper](https://apify.com/oday/mawsool-mass-linkedin-company-scraper) |\r\n| You want the website, industry, and employee range. | [Firmographics and Website](https://apify.com/oday/mawsool-linkedin-company-firmographics) |\r\n| You want office addresses. | [Company Locations](https://apify.com/oday/mawsool-linkedin-company-locations) |\r\n| You want lookalike companies. | [Similar Companies](https://apify.com/oday/mawsool-linkedin-similar-companies) |\r\n| You want the recent posts on a company page. | [Company Posts](https://apify.com/oday/mawsool-linkedin-company-posts) |\r\n| You want only new posts on the next scheduled run. | [Company Post Monitor](https://apify.com/oday/mawsool-linkedin-company-post-watch) |\r\n\r\nThe same list is on [Mawsool's Apify profile](https://apify.com/oday).\r\n\r\n## Use with AI agents\r\n\r\nApify exposes this Actor to ChatGPT, Claude, Gemini, Grok, and other agents through the Apify MCP server. Tell the agent the input you have, the fields you want back, and the starting price on this page. If you already have profile URLs and only need the current company and headline, use [Profile Freshness Check](https://apify.com/oday/mawsool-linkedin-profile-freshness) first and compare the result to your CRM yourself.\r\n\r\n A visitor who starts on one Actor can open the rest from that page.\r\n\r\n\r\nThis is a personal mailbox on record: Gmail, Outlook, Hotmail, Yahoo, and the same kind of address people keep for years. It is not a guessed `first.last@company.com`. A 99% match is dropped. You never pay for it, and it never appears in the dataset.\r\n\r\nMawsool holds **400M+ LinkedIn profiles with an exact personal email on record**. Most matches are Gmail, Outlook, Yahoo, or Hotmail.\r\n\r\nMawsool is not affiliated with LinkedIn. You supply the profile URL. This Actor does not log into LinkedIn, does not crawl LinkedIn pages, and does not ask you for a LinkedIn cookie or password.\r\n\r\n## Who this is for\r\n\r\nSales and GTM teams who already have the profile URL and need a mailbox that still works after the person changes jobs.\r\n\r\nRecruiters, HR, and headhunters who should not write to the company inbox. A message to the work address can land with the current employer. A personal mailbox reaches the person.\r\n\r\nRevOps cleaning a list after the work email bounced.\r\n\r\nAccount-based marketing teams who already know the buying committee and need a personal address for a lawful customer list on an ad platform. Building that audience from a search is a later Mawsool Actor. This one enriches URLs you already have.\r\n\r\n## Why a personal email beats a work email\r\n\r\nA work address belongs to the employer. It dies on the day they leave, and it is the wrong door for a recruiter.\r\n\r\nA primary personal address is different. People open their bank, their phone, their recovery codes, and ten years of accounts on that Gmail, Outlook, Yahoo, or Hotmail. They almost never retire it. The address stays the person, while the job title and the company domain change.\r\n\r\nThe second reason it is priced starting from $30 per 1,000 found, not like a pattern-guess tool: the address is exact-matched to that LinkedIn profile. It is not a formula. If we are not certain, we return nothing and we do not charge.\r\n\r\n## How to run it\r\n\r\nAdd the profile URLs you already have. The professional-use box is on by default and does not block the run.\r\n\r\n```json\r\n{\r\n  \"lawfulUse\": true,\r\n  \"urls\": [\"https://www.linkedin.com/in/example\"]\r\n}\r\n```\r\n\r\nPaste a CSV with a `url` or `linkedinUrl` column, or upload the export from HubSpot, Salesforce, Clay, or a recruiter tool. Lists over 200 continue if the run stops. Set `resumeId` to skip profiles that already returned an email.\r\n\r\n## What a row looks like\r\n\r\nA match. You are charged once for this profile. Extra addresses on the same profile are included in that charge.\r\n\r\n```json\r\n{\r\n  \"inputUrl\": \"https://www.linkedin.com/in/example\",\r\n  \"hasPersonalEmail\": true,\r\n  \"personalEmail\": \"person@gmail.com\",\r\n  \"personalEmails\": \"person@gmail.com\",\r\n  \"emailCount\": 1,\r\n  \"emailProvider\": \"Gmail\",\r\n  \"matchType\": \"exact\",\r\n  \"success\": true\r\n}\r\n```\r\n\r\nNo exact match. The row is successful, the email is empty, and you are not charged.\r\n\r\n```json\r\n{\r\n  \"inputUrl\": \"https://www.linkedin.com/in/example\",\r\n  \"hasPersonalEmail\": false,\r\n  \"personalEmail\": null,\r\n  \"emailCount\": 0,\r\n  \"emailProvider\": null,\r\n  \"matchType\": \"none\",\r\n  \"success\": true\r\n}\r\n```\r\n\r\nFilter the dataset to `hasPersonalEmail` = true. That is the list you load into the sequence, the ATS, or the ad platform.\r\n\r\n## Check the exact match\r\n\r\nTake `personalEmail` from a row where `hasPersonalEmail` is true and paste it into [Email to LinkedIn](https://apify.com/oday/mawsool-email-linkedin-lookup) ([reverse email lookup demo](https://apify.com/oday/mawsool-email-linkedin-lookup/examples/reverse-email-lookup-demo)).\r\n\r\nThat Actor goes the other way: mailbox to profile. When `hasLinkedIn` is true and the profile URL is the one you started with, the exact match checks out. A miss on that lookup means this Actor had no certain personal email for that URL, so you were not charged here.\r\n\r\n## Price\r\n\r\nYou pay only when a personal email is found. One profile is one charge, even if that profile has more than one address on record. Starting from $30 per 1,000. Gold, Platinum, and Diamond are $30. The free plan is $50.\r\n\r\n| Plan | Per 1,000 emails found |\r\n| --- | --- |\r\n| Free | $50 |\r\n| Bronze | $46 |\r\n| Silver | $42 |\r\n| Gold, Platinum, and Diamond | $30 |\r\n\r\nPaid Apify plans get the lower price automatically. A list of 1,000 URLs that matches 400 profiles costs 400 charges, not 1,000.\r\n\r\nRuns of this Actor on Apify are billed here. A flat file, a private deployment, or a volume contract is a separate delivery, not a way to skip Store charges for the same runs. For that separate delivery, email [info@mawsool.tech](mailto:info@mawsool.tech).\r\n\r\n## Where each team uses the match\r\n\r\n**GTM and sales.** The work email bounced, or the champion changed jobs. You still have the LinkedIn URL. This Actor returns the mailbox they actually read.\r\n\r\n**Recruiting, HR, and headhunting.** Do not send a confidential approach to the company domain. The personal address is the one that does not notify the current employer.\r\n\r\n**Account-based marketing and marketing intelligence.** You already have the LinkedIn URLs of a buying committee. The personal emails can be uploaded as a customer list on Google Ads, Meta, LinkedIn Campaign Manager, or X, where that platform allows a customer list and you have a lawful basis. This Actor does not build the audience. It enriches the URLs you bring. A search Actor for net-new accounts can come later.\r\n\r\n**Clay, HubSpot, Salesforce, Make, Zapier.** Put this step after a profile-URL column. Map `personalEmail` when `hasPersonalEmail` is true.\r\n\r\n## Example tasks\r\n\r\nOpen one, press Start, then replace the example URL with your own list.\r\n\r\n| Task | Search it answers |\r\n| --- | --- |\r\n| LinkedIn URL to Gmail demo | linkedin url to gmail |\r\n| Find personal email from LinkedIn profile URLs | find personal email from linkedin |\r\n| Sales list after the work email bounced | linkedin email for outreach |\r\n| Recruiter and headhunter shortlist | linkedin email finder recruiting |\r\n| HR outreach off the company inbox | personal email for recruiting |\r\n| Clay waterfall step | clay linkedin personal email |\r\n| HubSpot or Salesforce backfill | hubspot linkedin email |\r\n| Customer list for Google and Meta | linkedin emails for custom audience |\r\n| ABM buying committee | account based marketing personal email |\r\n| Saudi and GCC list, PDPL-aware | linkedin email saudi arabia |\r\n\r\n## FAQ\r\n\r\n### How do I find a personal email from a LinkedIn URL?\r\n\r\nPaste `linkedin.com/in/...` URLs you already have and run. If Mawsool has a 100% exact match, `personalEmail` is filled and you are charged once.\r\n\r\n### Do you charge when there is no email?\r\n\r\nNo. `success` is true, `hasPersonalEmail` is false, and that row is free.\r\n\r\n### Do you return guessed addresses?\r\n\r\nNo. `first.last@company.com` and any match under 100% are dropped. They are not a row.\r\n\r\n### Is this a LinkedIn scraper?\r\n\r\nNo. Mawsool is not affiliated with LinkedIn. There is no LinkedIn login, no cookie, and no page crawl. You provide a profile URL. The Actor looks that URL up in Mawsool’s own exact-match records.\r\n\r\n### Why do these emails stay valid?\r\n\r\nThey are primary personal mailboxes. People build the rest of their accounts on them, so they rarely change. A work email often dies at the next job.\r\n\r\n### Why is a personal email better for recruiting?\r\n\r\nA recruiter who writes to the company address can expose the approach to the current employer. The personal mailbox reaches the candidate.\r\n\r\n### What is the coverage?\r\n\r\n400M+ LinkedIn profiles with an exact personal email on record. Most returned mailboxes are Gmail, Outlook, Yahoo, or Hotmail.\r\n\r\n### Is this GDPR, CCPA, and PDPL compliant?\r\n\r\nMawsool publishes a [privacy policy](https://mawsool.tech/privacy-policy), a [CCPA notice](https://mawsool.tech/CCPA), and a [Saudi PDPL notice](https://mawsool.tech/PDPL). You are the controller of your outreach or ad audience. You confirm a lawful basis before the run. This Actor does not send the email and does not upload the list to an ad platform for you.\r\n\r\n### Is the matching patented?\r\n\r\nThe matching, sourcing, and verification system is USPTO patent pending, application 63/756,973. That is a filed application, not a granted patent.\r\n\r\n### How do I check that the email really matches this profile?\r\n\r\nPaste the returned personal email into [Email to LinkedIn](https://apify.com/oday/mawsool-email-linkedin-lookup). That reverse lookup is the quality check. `hasLinkedIn: true` plus the same profile URL means the exact match holds. Use this Actor when you have the profile and want the personal mailbox. Use [Email to LinkedIn](https://apify.com/oday/mawsool-email-linkedin-lookup) when you have the mailbox and want the profile.\r\n\r\n### Can I buy a flat file or a very large volume?\r\n\r\nYes, as a separate delivery. Email [info@mawsool.tech](mailto:info@mawsool.tech). Runs you start on Apify stay on the prices above.\r\n\r\n### Does a long list keep going?\r\n\r\nYes. Up to 50,000 URLs. A list over 200 resumes on the next run. After 15 lookup outages in a row the run stops so finished rows stay saved. A failed lookup is not charged, so you can run it again.\r\n\r\n## Related Actors\r\n\r\n[Email to LinkedIn](https://apify.com/oday/mawsool-email-linkedin-lookup) when you start from the mailbox, or when you want to check the exact-match quality of an email this Actor just returned. Company Website and Firmographics when you need the employer domain. [Current Company Checker](https://apify.com/oday/mawsool-linkedin-company-checker) when you only need to know if they still work there.\r\n\r\n**Support:** [info@mawsool.tech](mailto:info@mawsool.tech)\r\n",
    "actorDefinition": {
      "$schema": "https://apify.com/schemas/v1/actor.ide.json",
      "actorSpecification": 1,
      "name": "mawsool-linkedin-personal-email-finder",
      "title": "LinkedIn Email Finder | Exact Personal Match",
      "description": "LinkedIn email finder for a profile URL you already have. A personal Gmail, Outlook, Yahoo, or Hotmail only on a 100% exact match. No match, no charge. Starting from $30 per 1,000 found. No LinkedIn login and no cookies.",
      "seoTitle": "LinkedIn Email Finder, Exact Match Only",
      "seoDescription": "LinkedIn email finder for a profile URL. Personal Gmail, Outlook, Yahoo, or Hotmail on a 100% exact match. No match, no charge. Starting from $30 per 1,000.",
      "categories": [
        "LEAD_GENERATION",
        "SOCIAL_MEDIA",
        "AUTOMATION"
      ],
      "version": "1.0",
      "buildTag": "latest",
      "minMemoryMbytes": 256,
      "maxMemoryMbytes": 2048,
      "defaultRunOptions": {
        "build": "latest",
        "timeoutSecs": 86400,
        "memoryMbytes": 512
      },
      "environmentVariables": {
        "CHARGE_EVENT": "profile-personal-email",
        "EXACT_API_BASE_URL": "https://api-v2.mawsool.tech",
        "EXACT_API_KEY": "@mawsoolExactLookupKey"
      },
      "meta": {
        "templateId": "ts-empty",
        "generatedBy": "Cursor Agent"
      },
      "input": {
        "title": "LinkedIn Email Finder | Exact Personal Match",
        "type": "object",
        "schemaVersion": 1,
        "description": "LinkedIn email finder for a profile URL you already have. Returns a personal Gmail, Outlook, Yahoo, or Hotmail only when the match is 100% exact. No match, no charge. 400M+ records, Starting from $30 per 1,000 found. You supply the URL. Mawsool is not affiliated with LinkedIn.",
        "properties": {
          "lawfulUse": {
            "title": "Professional use and lawful basis",
            "type": "boolean",
            "description": "This run is for professional outreach, recruiting, or account-based marketing, and you have a lawful basis to use a match. Mawsool does not send the email for you. Leaving this off does not stop the run.",
            "default": true
          },
          "urls": {
            "title": "LinkedIn profile URLs",
            "type": "array",
            "description": "Profile URLs you already have, such as linkedin.com/in/.... After a match, check quality in Email to LinkedIn: https://apify.com/oday/mawsool-email-linkedin-lookup",
            "editor": "stringList",
            "prefill": [
              "https://www.linkedin.com/in/example"
            ],
            "items": {
              "type": "string"
            }
          },
          "urlsCsv": {
            "title": "Or paste CSV",
            "type": "string",
            "description": "A url or linkedinUrl column. One URL per row is also accepted.",
            "editor": "textarea",
            "prefill": "url\nhttps://www.linkedin.com/in/example"
          },
          "fileUrl": {
            "title": "Or upload a CSV file",
            "type": "string",
            "description": "CSV with a url or linkedinUrl column. HubSpot, Salesforce, Clay, and recruiter exports all work.",
            "editor": "fileupload"
          },
          "maxUrls": {
            "title": "Maximum URLs",
            "type": "integer",
            "default": 100,
            "minimum": 1,
            "maximum": 50000,
            "description": "Cost-control cap. Maximum 50,000. You pay only for profiles that return a personal email."
          },
          "concurrency": {
            "title": "Concurrent lookups",
            "type": "integer",
            "description": "How many profiles to look up at the same time.",
            "default": 8,
            "minimum": 1,
            "maximum": 20
          },
          "resumeId": {
            "title": "Resume ID (optional)",
            "type": "string",
            "description": "Reuse this ID to skip profiles that already returned an email.",
            "editor": "textfield"
          },
          "freshStart": {
            "title": "Look up finished profiles again",
            "type": "boolean",
            "description": "Turn this on to ignore saved progress and look up the whole list again.",
            "default": false
          }
        }
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Results",
        "properties": {
          "results": {
            "type": "string",
            "title": "Results",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          },
          "matches": {
            "type": "string",
            "title": "Emails found",
            "template": "{{links.apiDefaultDatasetUrl}}/items?view=matches"
          },
          "runSummary": {
            "type": "string",
            "title": "Run summary",
            "template": "{{links.apiDefaultKeyValueStoreUrl}}/records/OUTPUT"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "title": "LinkedIn to Personal Email Finder",
          "description": "One profile URL is one row. You are charged only when a personal email is found.",
          "fields": {
            "type": "object",
            "properties": {
              "inputUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "inputUrl"
              },
              "hasPersonalEmail": {
                "type": "boolean",
                "title": "hasPersonalEmail"
              },
              "personalEmail": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "personalEmail"
              },
              "personalEmails": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "personalEmails"
              },
              "emailCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "emailCount"
              },
              "emailProvider": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "emailProvider"
              },
              "matchType": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "matchType"
              },
              "success": {
                "type": "boolean",
                "title": "success"
              }
            }
          },
          "views": {
            "flat": {
              "title": "All rows",
              "transformation": {
                "fields": [
                  "inputUrl",
                  "hasPersonalEmail",
                  "personalEmail",
                  "emailProvider",
                  "emailCount",
                  "matchType",
                  "success"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            },
            "matches": {
              "title": "Emails found",
              "transformation": {
                "fields": [
                  "inputUrl",
                  "personalEmail",
                  "personalEmails",
                  "emailProvider",
                  "emailCount"
                ],
                "filter": "hasPersonalEmail == true"
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "pricing": "./pay_per_event.json",
      "dockerfile": "../Dockerfile",
      "readme": "# LinkedIn Email Finder | Exact Personal Match\r\n\r\n**LinkedIn email finder.** Paste a profile URL you already have. Get the personal email when the match is 100% exact. No match, no charge. Starting from $30 per 1,000 emails found.\r\n\r\n## If you need a different Mawsool Actor\r\n\r\n| If this is what you need | Open |\r\n| --- | --- |\r\n| You have an email and want the LinkedIn profile. | [Reverse Email Lookup](https://apify.com/oday/mawsool-email-linkedin-lookup) |\r\n| You have a name and company and want the profile URL. | [LinkedIn Profile Finder](https://apify.com/oday/mawsool-linkedin-profile-finder) |\r\n| You only need the current employer, before paying for a full profile. | [Current Company Checker](https://apify.com/oday/mawsool-linkedin-company-checker) |\r\n| You want the current company and headline, and you will compare them to your CRM yourself. | [Profile Freshness Check](https://apify.com/oday/mawsool-linkedin-profile-freshness) |\r\n| You want an alert when the employer or headline changes. | [Job Change Tracker](https://apify.com/oday/mawsool-linkedin-job-change-watch) |\r\n| You have a profile URL and want the full profile. | [LinkedIn Profile Scraper](https://apify.com/oday/mawsool-linkedin-profile-details) |\r\n| You have a large file of profile URLs. | [Mass Profile Scraper](https://apify.com/oday/mawsool-mass-linkedin-profile-scraper) |\r\n| You want the current employer's website from a profile URL. | [Profile to Company Website](https://apify.com/oday/mawsool-linkedin-profile-to-company-website) |\r\n| You want the job history only. | [Work Experience](https://apify.com/oday/mawsool-linkedin-profile-experience) |\r\n| You want schools and degrees only. | [Education](https://apify.com/oday/mawsool-linkedin-profile-education) |\r\n| You want a yes or no for one certificate. | [Certification Checker](https://apify.com/oday/mawsool-linkedin-certification-checker) |\r\n| You want certificates, patents, courses, and publications. | [Certifications and Patents](https://apify.com/oday/mawsool-linkedin-profile-credentials) |\r\n| You want likes and comments for outreach. | [Profile Activity](https://apify.com/oday/mawsool-linkedin-profile-activity) |\r\n| You have a company URL and want the full company record. | [Company Details](https://apify.com/oday/mawsool-linkedin-company-details) |\r\n| You have a large file of company URLs. | [Mass Company Scraper](https://apify.com/oday/mawsool-mass-linkedin-company-scraper) |\r\n| You want the website, industry, and employee range. | [Firmographics and Website](https://apify.com/oday/mawsool-linkedin-company-firmographics) |\r\n| You want office addresses. | [Company Locations](https://apify.com/oday/mawsool-linkedin-company-locations) |\r\n| You want lookalike companies. | [Similar Companies](https://apify.com/oday/mawsool-linkedin-similar-companies) |\r\n| You want the recent posts on a company page. | [Company Posts](https://apify.com/oday/mawsool-linkedin-company-posts) |\r\n| You want only new posts on the next scheduled run. | [Company Post Monitor](https://apify.com/oday/mawsool-linkedin-company-post-watch) |\r\n\r\nThe same list is on [Mawsool's Apify profile](https://apify.com/oday).\r\n\r\n## Use with AI agents\r\n\r\nApify exposes this Actor to ChatGPT, Claude, Gemini, Grok, and other agents through the Apify MCP server. Tell the agent the input you have, the fields you want back, and the starting price on this page. If you already have profile URLs and only need the current company and headline, use [Profile Freshness Check](https://apify.com/oday/mawsool-linkedin-profile-freshness) first and compare the result to your CRM yourself.\r\n\r\n A visitor who starts on one Actor can open the rest from that page.\r\n\r\n\r\nThis is a personal mailbox on record: Gmail, Outlook, Hotmail, Yahoo, and the same kind of address people keep for years. It is not a guessed `first.last@company.com`. A 99% match is dropped. You never pay for it, and it never appears in the dataset.\r\n\r\nMawsool holds **400M+ LinkedIn profiles with an exact personal email on record**. Most matches are Gmail, Outlook, Yahoo, or Hotmail.\r\n\r\nMawsool is not affiliated with LinkedIn. You supply the profile URL. This Actor does not log into LinkedIn, does not crawl LinkedIn pages, and does not ask you for a LinkedIn cookie or password.\r\n\r\n## Who this is for\r\n\r\nSales and GTM teams who already have the profile URL and need a mailbox that still works after the person changes jobs.\r\n\r\nRecruiters, HR, and headhunters who should not write to the company inbox. A message to the work address can land with the current employer. A personal mailbox reaches the person.\r\n\r\nRevOps cleaning a list after the work email bounced.\r\n\r\nAccount-based marketing teams who already know the buying committee and need a personal address for a lawful customer list on an ad platform. Building that audience from a search is a later Mawsool Actor. This one enriches URLs you already have.\r\n\r\n## Why a personal email beats a work email\r\n\r\nA work address belongs to the employer. It dies on the day they leave, and it is the wrong door for a recruiter.\r\n\r\nA primary personal address is different. People open their bank, their phone, their recovery codes, and ten years of accounts on that Gmail, Outlook, Yahoo, or Hotmail. They almost never retire it. The address stays the person, while the job title and the company domain change.\r\n\r\nThe second reason it is priced starting from $30 per 1,000 found, not like a pattern-guess tool: the address is exact-matched to that LinkedIn profile. It is not a formula. If we are not certain, we return nothing and we do not charge.\r\n\r\n## How to run it\r\n\r\nAdd the profile URLs you already have. The professional-use box is on by default and does not block the run.\r\n\r\n```json\r\n{\r\n  \"lawfulUse\": true,\r\n  \"urls\": [\"https://www.linkedin.com/in/example\"]\r\n}\r\n```\r\n\r\nPaste a CSV with a `url` or `linkedinUrl` column, or upload the export from HubSpot, Salesforce, Clay, or a recruiter tool. Lists over 200 continue if the run stops. Set `resumeId` to skip profiles that already returned an email.\r\n\r\n## What a row looks like\r\n\r\nA match. You are charged once for this profile. Extra addresses on the same profile are included in that charge.\r\n\r\n```json\r\n{\r\n  \"inputUrl\": \"https://www.linkedin.com/in/example\",\r\n  \"hasPersonalEmail\": true,\r\n  \"personalEmail\": \"person@gmail.com\",\r\n  \"personalEmails\": \"person@gmail.com\",\r\n  \"emailCount\": 1,\r\n  \"emailProvider\": \"Gmail\",\r\n  \"matchType\": \"exact\",\r\n  \"success\": true\r\n}\r\n```\r\n\r\nNo exact match. The row is successful, the email is empty, and you are not charged.\r\n\r\n```json\r\n{\r\n  \"inputUrl\": \"https://www.linkedin.com/in/example\",\r\n  \"hasPersonalEmail\": false,\r\n  \"personalEmail\": null,\r\n  \"emailCount\": 0,\r\n  \"emailProvider\": null,\r\n  \"matchType\": \"none\",\r\n  \"success\": true\r\n}\r\n```\r\n\r\nFilter the dataset to `hasPersonalEmail` = true. That is the list you load into the sequence, the ATS, or the ad platform.\r\n\r\n## Check the exact match\r\n\r\nTake `personalEmail` from a row where `hasPersonalEmail` is true and paste it into [Email to LinkedIn](https://apify.com/oday/mawsool-email-linkedin-lookup) ([reverse email lookup demo](https://apify.com/oday/mawsool-email-linkedin-lookup/examples/reverse-email-lookup-demo)).\r\n\r\nThat Actor goes the other way: mailbox to profile. When `hasLinkedIn` is true and the profile URL is the one you started with, the exact match checks out. A miss on that lookup means this Actor had no certain personal email for that URL, so you were not charged here.\r\n\r\n## Price\r\n\r\nYou pay only when a personal email is found. One profile is one charge, even if that profile has more than one address on record. Starting from $30 per 1,000. Gold, Platinum, and Diamond are $30. The free plan is $50.\r\n\r\n| Plan | Per 1,000 emails found |\r\n| --- | --- |\r\n| Free | $50 |\r\n| Bronze | $46 |\r\n| Silver | $42 |\r\n| Gold, Platinum, and Diamond | $30 |\r\n\r\nPaid Apify plans get the lower price automatically. A list of 1,000 URLs that matches 400 profiles costs 400 charges, not 1,000.\r\n\r\nRuns of this Actor on Apify are billed here. A flat file, a private deployment, or a volume contract is a separate delivery, not a way to skip Store charges for the same runs. For that separate delivery, email [info@mawsool.tech](mailto:info@mawsool.tech).\r\n\r\n## Where each team uses the match\r\n\r\n**GTM and sales.** The work email bounced, or the champion changed jobs. You still have the LinkedIn URL. This Actor returns the mailbox they actually read.\r\n\r\n**Recruiting, HR, and headhunting.** Do not send a confidential approach to the company domain. The personal address is the one that does not notify the current employer.\r\n\r\n**Account-based marketing and marketing intelligence.** You already have the LinkedIn URLs of a buying committee. The personal emails can be uploaded as a customer list on Google Ads, Meta, LinkedIn Campaign Manager, or X, where that platform allows a customer list and you have a lawful basis. This Actor does not build the audience. It enriches the URLs you bring. A search Actor for net-new accounts can come later.\r\n\r\n**Clay, HubSpot, Salesforce, Make, Zapier.** Put this step after a profile-URL column. Map `personalEmail` when `hasPersonalEmail` is true.\r\n\r\n## Example tasks\r\n\r\nOpen one, press Start, then replace the example URL with your own list.\r\n\r\n| Task | Search it answers |\r\n| --- | --- |\r\n| LinkedIn URL to Gmail demo | linkedin url to gmail |\r\n| Find personal email from LinkedIn profile URLs | find personal email from linkedin |\r\n| Sales list after the work email bounced | linkedin email for outreach |\r\n| Recruiter and headhunter shortlist | linkedin email finder recruiting |\r\n| HR outreach off the company inbox | personal email for recruiting |\r\n| Clay waterfall step | clay linkedin personal email |\r\n| HubSpot or Salesforce backfill | hubspot linkedin email |\r\n| Customer list for Google and Meta | linkedin emails for custom audience |\r\n| ABM buying committee | account based marketing personal email |\r\n| Saudi and GCC list, PDPL-aware | linkedin email saudi arabia |\r\n\r\n## FAQ\r\n\r\n### How do I find a personal email from a LinkedIn URL?\r\n\r\nPaste `linkedin.com/in/...` URLs you already have and run. If Mawsool has a 100% exact match, `personalEmail` is filled and you are charged once.\r\n\r\n### Do you charge when there is no email?\r\n\r\nNo. `success` is true, `hasPersonalEmail` is false, and that row is free.\r\n\r\n### Do you return guessed addresses?\r\n\r\nNo. `first.last@company.com` and any match under 100% are dropped. They are not a row.\r\n\r\n### Is this a LinkedIn scraper?\r\n\r\nNo. Mawsool is not affiliated with LinkedIn. There is no LinkedIn login, no cookie, and no page crawl. You provide a profile URL. The Actor looks that URL up in Mawsool’s own exact-match records.\r\n\r\n### Why do these emails stay valid?\r\n\r\nThey are primary personal mailboxes. People build the rest of their accounts on them, so they rarely change. A work email often dies at the next job.\r\n\r\n### Why is a personal email better for recruiting?\r\n\r\nA recruiter who writes to the company address can expose the approach to the current employer. The personal mailbox reaches the candidate.\r\n\r\n### What is the coverage?\r\n\r\n400M+ LinkedIn profiles with an exact personal email on record. Most returned mailboxes are Gmail, Outlook, Yahoo, or Hotmail.\r\n\r\n### Is this GDPR, CCPA, and PDPL compliant?\r\n\r\nMawsool publishes a [privacy policy](https://mawsool.tech/privacy-policy), a [CCPA notice](https://mawsool.tech/CCPA), and a [Saudi PDPL notice](https://mawsool.tech/PDPL). You are the controller of your outreach or ad audience. You confirm a lawful basis before the run. This Actor does not send the email and does not upload the list to an ad platform for you.\r\n\r\n### Is the matching patented?\r\n\r\nThe matching, sourcing, and verification system is USPTO patent pending, application 63/756,973. That is a filed application, not a granted patent.\r\n\r\n### How do I check that the email really matches this profile?\r\n\r\nPaste the returned personal email into [Email to LinkedIn](https://apify.com/oday/mawsool-email-linkedin-lookup). That reverse lookup is the quality check. `hasLinkedIn: true` plus the same profile URL means the exact match holds. Use this Actor when you have the profile and want the personal mailbox. Use [Email to LinkedIn](https://apify.com/oday/mawsool-email-linkedin-lookup) when you have the mailbox and want the profile.\r\n\r\n### Can I buy a flat file or a very large volume?\r\n\r\nYes, as a separate delivery. Email [info@mawsool.tech](mailto:info@mawsool.tech). Runs you start on Apify stay on the prices above.\r\n\r\n### Does a long list keep going?\r\n\r\nYes. Up to 50,000 URLs. A list over 200 resumes on the next run. After 15 lookup outages in a row the run stops so finished rows stay saved. A failed lookup is not charged, so you can run it again.\r\n\r\n## Related Actors\r\n\r\n[Email to LinkedIn](https://apify.com/oday/mawsool-email-linkedin-lookup) when you start from the mailbox, or when you want to check the exact-match quality of an email this Actor just returned. Company Website and Firmographics when you need the employer domain. [Current Company Checker](https://apify.com/oday/mawsool-linkedin-company-checker) when you only need to know if they still work there.\r\n\r\n**Support:** [info@mawsool.tech](mailto:info@mawsool.tech)\r\n"
    },
    "buildNumber": "1.0.6",
    "imageDigest": "d43847fed9c4a6572875fc1ca3916a2804b3e51fb087320e5ded7d100f4f1b76",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.008095555555555555
    }
  }
}