<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://mayankchaba.github.io/data-slayer-tutorials/feed.xml" rel="self" type="application/atom+xml" /><link href="https://mayankchaba.github.io/data-slayer-tutorials/" rel="alternate" type="text/html" /><updated>2026-10-03T04:00:18+00:00</updated><id>https://mayankchaba.github.io/data-slayer-tutorials/feed.xml</id><title type="html">Data Slayer Tutorials</title><subtitle>Step-by-step tutorials for scraping and automating LinkedIn, Instagram, Facebook, TikTok and X with Apify actors — no login, no proxies to manage.</subtitle><author><name>Mayank Chaba</name></author><entry><title type="html">Build an Instagram creator lead list from keywords</title><link href="https://mayankchaba.github.io/data-slayer-tutorials/tutorials/build-an-instagram-creator-lead-list-from-keywords/" rel="alternate" type="text/html" title="Build an Instagram creator lead list from keywords" /><published>2026-09-29T13:00:00+00:00</published><updated>2026-09-29T13:00:00+00:00</updated><id>https://mayankchaba.github.io/data-slayer-tutorials/tutorials/build-an-instagram-creator-lead-list-from-keywords</id><content type="html" xml:base="https://mayankchaba.github.io/data-slayer-tutorials/tutorials/build-an-instagram-creator-lead-list-from-keywords/"><![CDATA[<p>You want creators for a campaign — micro-influencers in specialty coffee, fitness
coaches in Austin, wedding photographers who use film. The manual workflow is a
grind: search a hashtag, open profiles one by one, check follower counts, look for
emails in bios, paste into a spreadsheet… and repeat until your eyes bleed.</p>

<p>This tutorial shows the automated version: keywords and hashtags in, an
evidence-backed creator lead list out — with the source post that found each
creator, their public profile facts, contact signals when they publish them, and
a clear reason for every qualify/reject decision.</p>

<p><strong>The tool:</strong> <a href="https://apify.com/data-slayer/instagram-creator-lead-finder?utm_source=github&amp;utm_medium=content&amp;utm_campaign=instagram-creator-lead-finder">Instagram Creator Lead Finder</a>
on the Apify Store. No Instagram login.</p>

<h2 id="what-makes-it-different-from-search-posts">What makes it different from “search posts”</h2>

<p>Searching posts is easy. Turning posts into a <em>clean outreach list</em> is the slow
part: the same creator appears in many posts, filters reject profiles after you’ve
already inspected them, and a high result limit doesn’t mean qualified leads.</p>

<p>This actor combines bounded discovery, creator deduplication, public-profile
checks, and transparent qualification in one run. You control the niche, the
filters, and the budget.</p>

<h2 id="step-1--choose-your-searches">Step 1 — Choose your searches</h2>

<p>Use plain text for Reel keyword discovery and a leading <code class="language-plaintext highlighter-rouge">#</code> for hashtag discovery.
1–10 searches, one discovery page each — so use several precise searches rather
than one broad one:</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"searches"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
    </span><span class="s2">"specialty coffee"</span><span class="p">,</span><span class="w">
    </span><span class="s2">"#specialtycoffee"</span><span class="p">,</span><span class="w">
    </span><span class="s2">"third wave coffee"</span><span class="w">
  </span><span class="p">],</span><span class="w">
  </span><span class="nl">"hashtagFeed"</span><span class="p">:</span><span class="w"> </span><span class="s2">"top"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">hashtagFeed</code> options: <strong>top</strong> posts, <strong>recent</strong> posts, or <strong>Reels only</strong>.</p>

<h2 id="step-2--set-your-budgets">Step 2 — Set your budgets</h2>

<p>Two ceilings, both under your control:</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"maxLeads"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w">
  </span><span class="nl">"maxProfileLookups"</span><span class="p">:</span><span class="w"> </span><span class="mi">25</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<ul>
  <li><strong><code class="language-plaintext highlighter-rouge">maxLeads</code></strong> (1–50) — the maximum <em>qualified</em> creators delivered. A ceiling,
not a guarantee.</li>
  <li><strong><code class="language-plaintext highlighter-rouge">maxProfileLookups</code></strong> (1–100) — the maximum creator profiles the run may
inspect, including ones later rejected. Must be at least the lead limit.</li>
</ul>

<p>You’re billed per <strong>completed profile check</strong> — whether the creator passes your
filters or not, you get the audit row.</p>

<h2 id="step-3--set-qualification-filters">Step 3 — Set qualification filters</h2>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"minFollowers"</span><span class="p">:</span><span class="w"> </span><span class="mi">1000</span><span class="p">,</span><span class="w">
  </span><span class="nl">"excludePrivateAccounts"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
  </span><span class="nl">"professionalAccountsOnly"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
  </span><span class="nl">"contactRequirement"</span><span class="p">:</span><span class="w"> </span><span class="s2">"none"</span><span class="p">,</span><span class="w">
  </span><span class="nl">"excludeUsernames"</span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<ul>
  <li><strong>Follower range</strong> — minimum (and optional maximum) followers.</li>
  <li><strong>Private accounts</strong> — exclude or allow.</li>
  <li><strong>Professional accounts</strong> — require or allow any.</li>
  <li><strong>Contact requirement</strong> — none, any public contact/bio link, or a public email.</li>
  <li><strong><code class="language-plaintext highlighter-rouge">excludeUsernames</code></strong> — up to 10,000 usernames/URLs already in your CRM, so
you never re-pay for creators you already have.</li>
</ul>

<p>Optionally add recent-Reels analysis: sample 1–12 recent Reels per creator and
apply a minimum sampled engagement rate — <code class="language-plaintext highlighter-rouge">(avg likes + avg comments) ÷ followers × 100</code>.</p>

<h2 id="step-4--run-and-export">Step 4 — Run and export</h2>

<p>Every completed profile check produces an auditable row:</p>

<table>
  <thead>
    <tr>
      <th>Evidence</th>
      <th>What you get</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Creator identity</td>
      <td>Username, account ID, display name, profile URL, privacy/verification</td>
    </tr>
    <tr>
      <td>Discovery evidence</td>
      <td>The keyword/hashtag that found them, source post URL, caption, timestamp, engagement</td>
    </tr>
    <tr>
      <td>Profile evidence</td>
      <td>Bio, follower/following/post counts, category, public bio links</td>
    </tr>
    <tr>
      <td>Contact signals</td>
      <td>Public email, phone, or bio link — only when the creator publishes them</td>
    </tr>
    <tr>
      <td>Decision</td>
      <td><code class="language-plaintext highlighter-rouge">qualified</code> or <code class="language-plaintext highlighter-rouge">rejected</code> + every applied rule in plain language</td>
    </tr>
  </tbody>
</table>

<p>Use the <strong>qualified-leads view</strong> for outreach and the full view to understand
where the rest were rejected. Missing values stay missing — the actor never
invents contacts or audience estimates.</p>

<h2 id="what-this-is-good-for">What this is good for</h2>

<ul>
  <li><strong>Influencer campaigns</strong> — build a niche creator shortlist with evidence, not vibes.</li>
  <li><strong>Creator-led sales</strong> — find creators who already post about your product category.</li>
  <li><strong>Market research</strong> — who is actually producing content in a niche, at what scale.</li>
</ul>

<h2 id="going-further">Going further</h2>

<ul>
  <li>Vet the shortlist’s actual engagement with the
<a href="https://dataslayer.dev/tutorials/instagram-post-and-reel-analytics-by-url/">post/reel analytics tutorial</a>.</li>
  <li>Push qualified leads straight into a sheet or CRM with n8n — see the
<a href="https://dataslayer.dev/">automation templates</a>.</li>
</ul>

<h2 id="pricing">Pricing</h2>

<p>Pay-per-event: about <strong>$2 per 1,000 creator profile checks</strong> (Reel-analysis events
billed only when completed with a usable sample). New Apify accounts include free
platform credit.</p>

<h2 id="faq">FAQ</h2>

<p><strong>Do I need an Instagram login?</strong> No — public data only, no login.</p>

<p><strong>Does it find email addresses for everyone?</strong> No — only public contact signals a
creator chose to publish (bio email/phone/link). No guessed or scraped-private emails.</p>

<p><strong>Why did I get fewer leads than <code class="language-plaintext highlighter-rouge">maxLeads</code>?</strong> It’s a ceiling, not a guarantee —
qualification filters and your lookup budget both apply. The run summary reports
exactly how many were checked and rejected by which rule.</p>]]></content><author><name>Mayank Chaba</name></author><category term="instagram" /><summary type="html"><![CDATA[Turn niche keywords and hashtags into a qualified Instagram creator outreach list — with source posts, follower counts, public contact signals, and transparent pass/reject reasons.]]></summary></entry><entry><title type="html">Find warm intro paths into any LinkedIn account</title><link href="https://mayankchaba.github.io/data-slayer-tutorials/tutorials/find-warm-intro-paths-into-any-linkedin-account/" rel="alternate" type="text/html" title="Find warm intro paths into any LinkedIn account" /><published>2026-09-29T12:00:00+00:00</published><updated>2026-09-29T12:00:00+00:00</updated><id>https://mayankchaba.github.io/data-slayer-tutorials/tutorials/find-warm-intro-paths-into-any-linkedin-account</id><content type="html" xml:base="https://mayankchaba.github.io/data-slayer-tutorials/tutorials/find-warm-intro-paths-into-any-linkedin-account/"><![CDATA[<p>Cold outreach to a company you have zero connection with converts badly. The
fix everyone knows: find the person on your team who knows someone there. The
problem is actually <em>finding</em> that path — cross-referencing your team’s
networks against a target account by hand is hours of LinkedIn clicking per deal.</p>

<p>This tutorial shows the automated version: give it your people and your targets,
get back ranked introduction paths — shared employers, overlapping tenure,
shared schools — plus the single best connector to ask.</p>

<p><strong>The tool:</strong> <a href="https://apify.com/data-slayer/linkedin-warm-path-finder?utm_source=github&amp;utm_medium=content&amp;utm_campaign=linkedin-warm-path-finder">LinkedIn Warm Path Finder</a>
on the Apify Store. No LinkedIn cookies, no login.</p>

<h2 id="how-it-works">How it works</h2>

<p>The actor takes two lists:</p>

<ol>
  <li><strong>Connectors</strong> — your people: teammates, alumni, advisors, investors. Anyone
whose network could contain a path to your targets.</li>
  <li><strong>Targets</strong> — either specific people (<code class="language-plaintext highlighter-rouge">target_urls</code>) or entire companies
(<code class="language-plaintext highlighter-rouge">target_company_urls</code>).</li>
</ol>

<p>It then walks the public overlap between the two lists and returns ranked warm
paths with the evidence behind each one.</p>

<h2 id="step-1--collect-connector-urls">Step 1 — Collect connector URLs</h2>

<p>List the LinkedIn profile URLs of your team, your alumni network, your advisors —
the people willing to make an introduction for you:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://www.linkedin.com/in/your-teammate/
https://www.linkedin.com/in/your-alumni-friend/
</code></pre></div></div>

<h2 id="step-2--add-targets">Step 2 — Add targets</h2>

<p>Either specific people:</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"connector_urls"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
    </span><span class="s2">"https://www.linkedin.com/in/your-teammate/"</span><span class="p">,</span><span class="w">
    </span><span class="s2">"https://www.linkedin.com/in/your-alumni-friend/"</span><span class="w">
  </span><span class="p">],</span><span class="w">
  </span><span class="nl">"target_urls"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
    </span><span class="s2">"https://www.linkedin.com/in/target-buyer/"</span><span class="w">
  </span><span class="p">]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p>…or whole companies (used when target profile URLs are empty):</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"connector_urls"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
    </span><span class="s2">"https://www.linkedin.com/in/your-teammate/"</span><span class="w">
  </span><span class="p">],</span><span class="w">
  </span><span class="nl">"target_company_urls"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
    </span><span class="s2">"https://www.linkedin.com/company/target-account/"</span><span class="w">
  </span><span class="p">]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p>Company mode finds paths to <em>people at those companies</em> — useful when you don’t
know yet who the right buyer is.</p>

<h2 id="step-3--run-and-read-the-paths">Step 3 — Run and read the paths</h2>

<p>Each result is a ranked warm path: who connects you, to whom, and why the path
is real — shared employer, overlapping tenure, shared school. The actor also
names the <strong>best connector to ask</strong> for each target, so you start with the
strongest ask instead of guessing.</p>

<p>Typical use:</p>

<ul>
  <li><strong>Account-based sales</strong> — run your top 10 target accounts, get the intro map,
then sequence warm asks before any cold email goes out.</li>
  <li><strong>Fundraising</strong> — find which of your advisors overlaps with which funds.</li>
  <li><strong>Recruiting</strong> — which teammate can intro us to this candidate?</li>
</ul>

<h2 id="why-warm-paths-beat-cold-outreach">Why warm paths beat cold outreach</h2>

<p>A warm intro converts several times better than a cold email because the
recipient’s trust starts pre-loaded. The expensive part was never the <em>asking</em> —
it was the <em>finding</em>. This makes the finding a five-minute job instead of an
afternoon of clicking.</p>

<h2 id="going-further">Going further</h2>

<ul>
  <li>Combine with the <a href="https://dataslayer.dev/tutorials/refresh-your-crm-with-fresh-linkedin-profile-data/">CRM refresh tutorial</a>
to keep your connector list current.</li>
  <li>See <a href="https://dataslayer.dev/tutorials/scrape-linkedin-company-posts-without-cookies/">what a target account is posting</a>
so your intro message references something timely.</li>
</ul>

<h2 id="pricing">Pricing</h2>

<p>Pay-per-event on the Apify platform. New accounts include free platform credit —
a typical single-account path-finding run costs cents. See the
<a href="https://apify.com/data-slayer/linkedin-warm-path-finder?utm_source=github&amp;utm_medium=content&amp;utm_campaign=linkedin-warm-path-finder">actor page</a>
for current pricing.</p>

<h2 id="faq">FAQ</h2>

<p><strong>Do I need to log in to LinkedIn?</strong> No — the actor works from public data without cookies or login.</p>

<p><strong>Does it message anyone?</strong> No. It only <em>finds</em> paths; the introduction ask is always made by a human.</p>

<p><strong>What counts as a path?</strong> Public, verifiable overlap: shared employers, overlapping
tenure, shared schools. It doesn’t infer “they might know each other” from nothing.</p>]]></content><author><name>Mayank Chaba</name></author><category term="linkedin" /><summary type="html"><![CDATA[Stop cold-emailing targets you have connections to. Enter your team's LinkedIn profiles and your target accounts — get ranked warm-intro paths with the best connector to ask.]]></summary></entry><entry><title type="html">Refresh your CRM with fresh LinkedIn profile data</title><link href="https://mayankchaba.github.io/data-slayer-tutorials/tutorials/refresh-your-crm-with-fresh-linkedin-profile-data/" rel="alternate" type="text/html" title="Refresh your CRM with fresh LinkedIn profile data" /><published>2026-09-29T11:00:00+00:00</published><updated>2026-09-29T11:00:00+00:00</updated><id>https://mayankchaba.github.io/data-slayer-tutorials/tutorials/refresh-your-crm-with-fresh-linkedin-profile-data</id><content type="html" xml:base="https://mayankchaba.github.io/data-slayer-tutorials/tutorials/refresh-your-crm-with-fresh-linkedin-profile-data/"><![CDATA[<p>Every CRM decays. People change jobs, companies rename, titles go stale. The
fix is simple in theory: open each contact’s LinkedIn profile, copy the current
role, update the record. At 500 contacts that’s a full week of tab-hopping.</p>

<p>This tutorial shows the automated version: export stale profile URLs from your
CRM, refresh them in bulk, and import clean, current records back — no LinkedIn
login, no cookies, no browser automation.</p>

<p><strong>The tool:</strong> <a href="https://apify.com/data-slayer/linkedin-profile-scraper?utm_source=github&amp;utm_medium=content&amp;utm_campaign=linkedin-profile-scraper">LinkedIn Profile Scraper · Fresh · No Cookies</a>
on the Apify Store. Paste hundreds or thousands of profile URLs, get structured
people records back. Priced at roughly $4 per 1,000 profiles.</p>

<h2 id="what-you-get">What you get</h2>

<p>Each profile URL returns a structured record:</p>

<table>
  <thead>
    <tr>
      <th>Field group</th>
      <th>Contents</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Identity</td>
      <td>Name, headline, profile URL, profile ID</td>
    </tr>
    <tr>
      <td>Current role</td>
      <td>Job title, company, company URL, employment type</td>
    </tr>
    <tr>
      <td>Experience</td>
      <td>Full position history — titles, companies, date ranges</td>
    </tr>
    <tr>
      <td>Education</td>
      <td>Schools, degrees, fields of study</td>
    </tr>
    <tr>
      <td>Skills</td>
      <td>Listed skills</td>
    </tr>
    <tr>
      <td>Location</td>
      <td>City/region, country</td>
    </tr>
    <tr>
      <td>Contact</td>
      <td>Public profile facts only — no invented emails</td>
    </tr>
  </tbody>
</table>

<p>Missing values stay missing — the actor never guesses a title or company.</p>

<h2 id="step-1--export-stale-records-from-your-crm">Step 1 — Export stale records from your CRM</h2>

<p>Export your contacts with their LinkedIn profile URLs. Most CRMs (HubSpot,
Salesforce, Pipedrive, Airtable, even a Google Sheet) can export a CSV with a
“LinkedIn URL” column. That column is all you need.</p>

<p>If you’re missing URLs, start from the ones you have — this flow is designed
for refreshing known contacts, not discovering new ones.</p>

<h2 id="step-2--run-the-actor-on-the-url-list">Step 2 — Run the actor on the URL list</h2>

<p>Open
<a href="https://apify.com/data-slayer/linkedin-profile-scraper?utm_source=github&amp;utm_medium=content&amp;utm_campaign=linkedin-profile-scraper">LinkedIn Profile Scraper</a>
and paste your URLs — one per row, standard LinkedIn or Sales Navigator links
both work. Duplicates are handled automatically.</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"linkedin_urls"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
    </span><span class="s2">"https://www.linkedin.com/in/jane-doe-1234a5b/"</span><span class="p">,</span><span class="w">
    </span><span class="s2">"https://www.linkedin.com/in/john-smith-678c9d/"</span><span class="w">
  </span><span class="p">]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p>Optionally add <code class="language-plaintext highlighter-rouge">enrich_flags</code> for extra data (billed only when a flag returns
data — about $8 per 1,000 flags).</p>

<p>Click <strong>Run</strong>. A few hundred profiles finish in minutes.</p>

<h2 id="step-3--map-the-output-back-to-crm-fields">Step 3 — Map the output back to CRM fields</h2>

<p>Export the dataset as CSV and map it onto your CRM’s import format:</p>

<table>
  <thead>
    <tr>
      <th>Actor output</th>
      <th>CRM field</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">full_name</code></td>
      <td>First + last name</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">headline</code></td>
      <td>Description / persona note</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">current_title</code> + <code class="language-plaintext highlighter-rouge">current_company</code></td>
      <td>Job title, Company</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">location</code></td>
      <td>Region</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">skills</code></td>
      <td>Tags / segmentation</td>
    </tr>
  </tbody>
</table>

<p>The exact field names depend on your CRM’s import template — the actor gives you
clean values; your CRM maps them.</p>

<h2 id="step-4--import-and-verify">Step 4 — Import and verify</h2>

<p>Import the CSV into your CRM (most CRMs upsert on email or LinkedIn URL). Spot-check
five records against the live profiles. Then schedule it: run the refresh monthly
or quarterly and your CRM stops decaying.</p>

<h2 id="variations">Variations</h2>

<ul>
  <li><strong>Champion tracking</strong> — run the same URL list twice, months apart, and diff the
<code class="language-plaintext highlighter-rouge">current_title</code>/<code class="language-plaintext highlighter-rouge">current_company</code> fields to catch champions who changed jobs.</li>
  <li><strong>Event enrichment</strong> — paste a conference’s speaker list URLs and build a
research table in one run.</li>
  <li><strong>Recruiting</strong> — refresh candidate records without opening a hundred tabs.</li>
</ul>

<h2 id="going-further">Going further</h2>

<ul>
  <li>Feed the refreshed records straight into a sheet or CRM with n8n — see the
<a href="https://dataslayer.dev/">automation templates</a>.</li>
  <li>Build an account stakeholder map from the same data — see the
<a href="https://dataslayer.dev/tutorials/scrape-linkedin-company-posts-without-cookies/">company posts tutorial</a>
for the account-level view.</li>
</ul>

<h2 id="pricing">Pricing</h2>

<p>Pay-per-event at roughly <strong>$4 per 1,000 profiles</strong> (enrichment flags extra, billed
only on returned data). New Apify accounts include free platform credit.</p>

<h2 id="faq">FAQ</h2>

<p><strong>Do I need LinkedIn Sales Navigator?</strong> No — standard public profile URLs work,
and Sales Navigator URLs are also accepted.</p>

<p><strong>Is this compliant with my CRM’s terms?</strong> You’re importing public profile facts
you could read manually; the actor just reads them faster. As always, respect the
platforms’ terms and your local privacy law (GDPR etc.) when storing personal data.</p>

<p><strong>What if a profile is gone or private?</strong> The actor reports it as unavailable —
no row is silently dropped, so you can clean those records deliberately.</p>]]></content><author><name>Mayank Chaba</name></author><category term="linkedin" /><summary type="html"><![CDATA[Turn a column of LinkedIn profile URLs into current titles, companies, skills, and locations — then push the clean records back into your CRM. No LinkedIn login, no cookies.]]></summary></entry><entry><title type="html">Pull Instagram post and reel analytics by URL — no login</title><link href="https://mayankchaba.github.io/data-slayer-tutorials/tutorials/instagram-post-and-reel-analytics-by-url/" rel="alternate" type="text/html" title="Pull Instagram post and reel analytics by URL — no login" /><published>2026-09-29T10:00:00+00:00</published><updated>2026-09-29T10:00:00+00:00</updated><id>https://mayankchaba.github.io/data-slayer-tutorials/tutorials/instagram-post-and-reel-analytics-by-url</id><content type="html" xml:base="https://mayankchaba.github.io/data-slayer-tutorials/tutorials/instagram-post-and-reel-analytics-by-url/"><![CDATA[<p>You found twenty Reels that matter — from a competitor, a creator you want to
sponsor, or your own campaign. Now you need the numbers: views, likes, comments,
shares, saves. Opening each post and copying numbers into a spreadsheet doesn’t scale.</p>

<p>This tutorial shows how to turn a list of Instagram post/Reel URLs into structured
engagement data in one run — no Instagram login, no browser automation.</p>

<p><strong>The tool:</strong></p>

<ul>
  <li><a href="https://apify.com/data-slayer/instagram-post-details?utm_source=github&amp;utm_medium=content&amp;utm_campaign=instagram-post-details">Instagram Post &amp; Reel Details Scraper</a> — full detail per post (up to 128 fields), bulk URLs, no login. It also returns an explicit per-URL metric-availability report, so you always know which metrics are real and which Instagram didn’t expose.</li>
</ul>

<p>It runs on Apify — you pay per post checked, not per minute of compute.</p>

<h2 id="step-1--collect-your-urls">Step 1 — Collect your URLs</h2>

<p>Grab the post/Reel URLs (or shortcodes) you care about:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://www.instagram.com/p/DFxYzAbCdEf/
https://www.instagram.com/reel/DGhIjKlMnOp/
</code></pre></div></div>

<p>Shortcodes and media IDs work too — paste whatever you have.</p>

<h2 id="step-2--run-the-actor-with-a-bulk-list">Step 2 — Run the actor with a bulk list</h2>

<p>Open
<a href="https://apify.com/data-slayer/instagram-post-details?utm_source=github&amp;utm_medium=content&amp;utm_campaign=instagram-post-details">Instagram Post &amp; Reel Details Scraper</a>
and paste your URLs into the bulk input, one per line:</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"postUrls"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
    </span><span class="s2">"https://www.instagram.com/p/DFxYzAbCdEf/"</span><span class="p">,</span><span class="w">
    </span><span class="s2">"https://www.instagram.com/reel/DGhIjKlMnOp/"</span><span class="w">
  </span><span class="p">]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p>Bulk input is the recommended mode — it keeps the per-post overhead low, which
matters when you process hundreds of URLs.</p>

<p>Click <strong>Run</strong>.</p>

<h2 id="step-3--read-the-analytics">Step 3 — Read the analytics</h2>

<p>Each URL returns a full record. The analytics-relevant fields:</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"like_count"</span><span class="p">:</span><span class="w"> </span><span class="mi">18432</span><span class="p">,</span><span class="w">
  </span><span class="nl">"comment_count"</span><span class="p">:</span><span class="w"> </span><span class="mi">214</span><span class="p">,</span><span class="w">
  </span><span class="nl">"view_count"</span><span class="p">:</span><span class="w"> </span><span class="mi">412907</span><span class="p">,</span><span class="w">
  </span><span class="nl">"share_count"</span><span class="p">:</span><span class="w"> </span><span class="mi">1058</span><span class="p">,</span><span class="w">
  </span><span class="nl">"save_count"</span><span class="p">:</span><span class="w"> </span><span class="mi">3961</span><span class="p">,</span><span class="w">
  </span><span class="nl">"repost_count"</span><span class="p">:</span><span class="w"> </span><span class="mi">87</span><span class="p">,</span><span class="w">
  </span><span class="nl">"caption"</span><span class="p">:</span><span class="w"> </span><span class="s2">"…"</span><span class="p">,</span><span class="w">
  </span><span class="nl">"taken_at"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2026-09-21T16:03:00.000Z"</span><span class="p">,</span><span class="w">
  </span><span class="nl">"video_url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"…"</span><span class="p">,</span><span class="w">
  </span><span class="nl">"creator"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nl">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"…"</span><span class="p">,</span><span class="w"> </span><span class="nl">"follower_count"</span><span class="p">:</span><span class="w"> </span><span class="mi">128400</span><span class="w"> </span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p>Notes on the numbers:</p>

<ul>
  <li><strong><code class="language-plaintext highlighter-rouge">repost_count</code> is included</strong> — a field Apify’s own Instagram scraper doesn’t return.</li>
  <li><strong>Views</strong> appear for Reels and videos. <strong>Shares and saves</strong> appear when Instagram
exposes them for that post.</li>
  <li>Need just the metrics for a batch of URLs? The same
<a href="https://apify.com/data-slayer/instagram-post-details?utm_source=github&amp;utm_medium=content&amp;utm_campaign=instagram-post-details">Instagram Post &amp; Reel Details Scraper</a>
returns them with an explicit per-URL availability report — useful for
benchmarking hundreds of posts cheaply.</li>
</ul>

<h2 id="step-4--export-and-analyze">Step 4 — Export and analyze</h2>

<p>Export the dataset as CSV/Excel and drop it into your analytics stack, or pull it
via the API:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="s2">"https://api.apify.com/v2/datasets/&lt;DATASET_ID&gt;/items?format=json"</span>
</code></pre></div></div>

<p>Typical analyses:</p>

<ul>
  <li><strong>Engagement rate</strong> = (likes + comments) ÷ creator followers, per post.</li>
  <li><strong>Content benchmarking</strong> — median views/likes across a competitor’s last 30 Reels.</li>
  <li><strong>Sponsorship vetting</strong> — does the creator’s engagement match their follower count?</li>
</ul>

<h2 id="going-further">Going further</h2>

<ul>
  <li>Find <em>which</em> creators to analyze in the first place — see
<a href="https://dataslayer.dev/tutorials/build-an-instagram-creator-lead-list-from-keywords/">how to build an Instagram creator lead list from keywords</a>.</li>
  <li>Automate the pull weekly into Google Sheets with n8n or Make — see
<a href="https://dataslayer.dev/">the automation templates</a>.</li>
</ul>

<h2 id="pricing">Pricing</h2>

<p>The actor is pay-per-event — you pay per post checked, not per minute of
compute. It has run 1M+ times. New Apify accounts include free
platform credit for the first runs.</p>

<h2 id="faq">FAQ</h2>

<p><strong>Do I need an Instagram login?</strong> No. The actor works from public data without any login.</p>

<p><strong>Do shares and saves always come back?</strong> Only when Instagram exposes them for that
post. The actor reports metric availability explicitly per URL, so
you always know what’s real and what’s missing.</p>

<p><strong>Can I track the same URLs over time?</strong> Yes — schedule the run (Apify supports
schedules, or use n8n/Make) and append each export to a sheet to build a time series.</p>]]></content><author><name>Mayank Chaba</name></author><category term="instagram" /><summary type="html"><![CDATA[Get likes, comments, views, shares, and saves from any Instagram post or Reel URL in bulk — no Instagram login. Export engagement data to JSON, CSV, or Excel.]]></summary></entry><entry><title type="html">How to scrape LinkedIn company posts without cookies or a login</title><link href="https://mayankchaba.github.io/data-slayer-tutorials/tutorials/scrape-linkedin-company-posts-without-cookies/" rel="alternate" type="text/html" title="How to scrape LinkedIn company posts without cookies or a login" /><published>2026-09-29T09:00:00+00:00</published><updated>2026-09-29T09:00:00+00:00</updated><id>https://mayankchaba.github.io/data-slayer-tutorials/tutorials/scrape-linkedin-company-posts-without-cookies</id><content type="html" xml:base="https://mayankchaba.github.io/data-slayer-tutorials/tutorials/scrape-linkedin-company-posts-without-cookies/"><![CDATA[<p>Scraping LinkedIn company posts is the fastest way to answer real competitive questions:
what is a competitor posting, how often, and what actually gets engagement?</p>

<p>The problem is that most approaches need a logged-in LinkedIn session — which means
cookies, session rotation, and account bans. This tutorial shows the cookieless way:
one company URL in, structured post data out.</p>

<p><strong>The tool:</strong> <a href="https://apify.com/data-slayer/linkedin-company-posts-scraper?utm_source=github&amp;utm_medium=content&amp;utm_campaign=linkedin-company-posts-scraper">LinkedIn Company Posts Scraper</a>
on the Apify Store. No LinkedIn login, no cookies, no proxy setup — the actor runs on
Apify’s infrastructure and returns clean, structured data.</p>

<h2 id="what-you-get">What you get</h2>

<p>Every run returns one row per company post (or repost) with the fields you actually need:</p>

<table>
  <thead>
    <tr>
      <th>Field</th>
      <th>What it is</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">text</code></td>
      <td>The full post text</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">likes</code>, <code class="language-plaintext highlighter-rouge">comments</code>, <code class="language-plaintext highlighter-rouge">shares</code></td>
      <td>Engagement counts</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">created_at</code></td>
      <td>When the post was published</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">url</code></td>
      <td>Direct link to the post</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">is_repost</code></td>
      <td>Whether the company reposted someone else’s content</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">author</code></td>
      <td>Who published it (company or employee)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">attachments</code></td>
      <td>Images, videos, documents, links</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">mentions</code></td>
      <td>@-mentioned people and companies</td>
    </tr>
  </tbody>
</table>

<p>Export as JSON, CSV, or Excel — or pull the dataset through the Apify API.</p>

<h2 id="step-1--get-the-company-page-url">Step 1 — Get the company page URL</h2>

<p>Open the company’s LinkedIn page and copy the URL from the address bar:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://www.linkedin.com/company/apify/
</code></pre></div></div>

<p>Any public company page works. You don’t need to be logged in to LinkedIn, and the
company doesn’t need to be in your network.</p>

<h2 id="step-2--run-the-actor">Step 2 — Run the actor</h2>

<p>Open
<a href="https://apify.com/data-slayer/linkedin-company-posts-scraper?utm_source=github&amp;utm_medium=content&amp;utm_campaign=linkedin-company-posts-scraper">LinkedIn Company Posts Scraper</a>
and fill in the two input fields:</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"linkedin_url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://www.linkedin.com/company/apify/"</span><span class="p">,</span><span class="w">
  </span><span class="nl">"maxPages"</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<ul>
  <li><strong><code class="language-plaintext highlighter-rouge">linkedin_url</code></strong> (required) — the company page URL from step 1.</li>
  <li><strong><code class="language-plaintext highlighter-rouge">maxPages</code></strong> — how many pages of posts to fetch. Pagination is handled
automatically; 5 pages is usually the last several months of posts for an
active page.</li>
</ul>

<p>Click <strong>Run</strong>. A run typically finishes in a couple of minutes.</p>

<h2 id="step-3--export-the-results">Step 3 — Export the results</h2>

<p>When the run finishes, open the <strong>Data</strong> tab. You get one row per post:</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"text"</span><span class="p">:</span><span class="w"> </span><span class="s2">"We just released something new..."</span><span class="p">,</span><span class="w">
  </span><span class="nl">"likes"</span><span class="p">:</span><span class="w"> </span><span class="mi">342</span><span class="p">,</span><span class="w">
  </span><span class="nl">"comments"</span><span class="p">:</span><span class="w"> </span><span class="mi">27</span><span class="p">,</span><span class="w">
  </span><span class="nl">"shares"</span><span class="p">:</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span><span class="w">
  </span><span class="nl">"created_at"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2026-09-14T10:22:00.000Z"</span><span class="p">,</span><span class="w">
  </span><span class="nl">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://www.linkedin.com/posts/apify_something-new-activity-1234"</span><span class="p">,</span><span class="w">
  </span><span class="nl">"is_repost"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
  </span><span class="nl">"author"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Apify"</span><span class="w"> </span><span class="p">},</span><span class="w">
  </span><span class="nl">"attachments"</span><span class="p">:</span><span class="w"> </span><span class="p">[],</span><span class="w">
  </span><span class="nl">"mentions"</span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p>Export the whole dataset as <strong>JSON</strong>, <strong>CSV</strong>, or <strong>Excel</strong> from the dataset view,
or download it programmatically:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="s2">"https://api.apify.com/v2/datasets/&lt;DATASET_ID&gt;/items?format=json"</span>
</code></pre></div></div>

<h2 id="what-this-is-good-for">What this is good for</h2>

<ul>
  <li><strong>Competitor content audits</strong> — what topics a competitor posts, how often, and which posts over-perform.</li>
  <li><strong>Engagement benchmarking</strong> — median likes/comments per post across 5–10 competitors.</li>
  <li><strong>Content calendar research</strong> — see what a target audience responds to before you plan your own posts.</li>
  <li><strong>Sales triggers</strong> — hiring posts, product launches, and event announcements from target accounts.</li>
</ul>

<h2 id="going-further">Going further</h2>

<ul>
  <li>Track the <em>people</em> engaging with these posts — see the
<a href="https://dataslayer.dev/tutorials/refresh-your-crm-with-fresh-linkedin-profile-data/">LinkedIn profile scraper CRM-refresh tutorial</a>.</li>
  <li>Want warm-intro paths into a target company? See
<a href="https://dataslayer.dev/tutorials/find-warm-intro-paths-into-any-linkedin-account/">how to find warm paths into any LinkedIn account</a>.</li>
</ul>

<h2 id="pricing">Pricing</h2>

<p>The actor is pay-per-event — you pay for the posts actually scraped, not for
compute time. New Apify accounts include free platform credit, so your first
runs cost nothing out of pocket. See the
<a href="https://apify.com/data-slayer/linkedin-company-posts-scraper?utm_source=github&amp;utm_medium=content&amp;utm_campaign=linkedin-company-posts-scraper">actor page</a>
for the current per-event price.</p>

<h2 id="faq">FAQ</h2>

<p><strong>Do I need a LinkedIn account?</strong> No. The actor works without any LinkedIn login or cookies.</p>

<p><strong>Will my IP get flagged?</strong> No — the scraping runs on Apify’s infrastructure, not your machine.</p>

<p><strong>Can I scrape multiple companies?</strong> Run the actor once per company, or use Apify’s
API to chain runs. For a scheduled, multi-company monitor, wire it into n8n or Make
with our <a href="https://dataslayer.dev/">automation templates</a>.</p>]]></content><author><name>Mayank Chaba</name></author><category term="linkedin" /><summary type="html"><![CDATA[Step-by-step: scrape any LinkedIn company page's posts — text, likes, comments, shares, dates — without LinkedIn cookies, a login, or proxies. Export to JSON, CSV, or Excel.]]></summary></entry></feed>