🕷️ Crawler Inspector

URL Lookup

Direct Parameter Lookup

Raw Queries and Responses

1. Shard Calculation

Query:
Response:
Calculated Shard: 76 (from laksa145)

2. Crawled Status Check

Query:
Response:

3. Robots.txt Check

Query:
Response:

4. Spam/Ban Check

Query:
Response:

5. Seen Status Check

ℹ️ Skipped - page is already crawled

📄
INDEXABLE
✅
CRAWLED
2 days ago
🤖
ROBOTS ALLOWED

Page Info Filters

FilterStatusConditionDetails
HTTP statusPASSdownload_http_code = 200HTTP 200
Age cutoffPASSdownload_stamp > now() - 6 MONTH0.1 months ago
History dropPASSisNull(history_drop_reason)No drop reason
Spam/banPASSfh_dont_index != 1 AND ml_spam_score = 0ml_spam_score=0
CanonicalPASSmeta_canonical IS NULL OR = '' OR = src_unparsedNot set

Page Details

PropertyValue
URLhttps://annamills.substack.com/p/automating-linkedin-search-by-getting
Last Crawled2026-04-09 00:41:10 (2 days ago)
First Indexed2026-03-04 11:47:03 (1 month ago)
HTTP Status Code200
Meta TitleAutomating LinkedIn search by getting Claude to build and test a new skill
Meta DescriptionAn exploration in agentic AI use
Meta Canonicalnull
Boilerpipe Text
To further my explorations of agentic AI uses that might help educators , I decided to see if I could automate an annoyingly slow task that comes up as I try to keep track of and respond to conversations about AI in education. I’ve been frustrated with the slowness of LinkedIn’s search filter system; for example, you can’t just search for posts by a particular person that reference particular keywords; you have to do a general search on keywords and then narrow down by “post” and then by “member.” Google doesn’t index LinkedIn posts reliably. I love connecting people who are talking about the same topics and cross-referencing conversations. I often think of a post where someone talked about something and want to review it or link to it but give up because I don’t have time or patience for the excruciating search process it would take to dig it up. I knew that you could save instructions on how to complete particular tasks as “skills” in a Claude account. I decided to see if Claude could develop a reliable way to search LinkedIn with the Claude in Chrome browser extension. I interviewed it about LinkedIn search strategies, and it interviewed me about what search capabilities and kinds of outputs I wanted (see the whole chat transcript ). It drafted a skill. I asked it to test. There were some false starts, as when Claude got no results and I did get results with the same search terms. But when I pointed this out, it was able to figure out the problem with its view of the site and update the skill. It started working. In one test, I asked it to “Look for recent posts from Joel Gladd where he describes his use of Claude Code.” It surfaced two posts I remembered and one I hadn’t seen, then offered to keep going; I asked it to summarize all of Joel Gladd’s uses, and I was delighted to read its summaries as well as the posts themselves and discover quite a few experiments of his that I had missedit did. True, I could have searched myself or scrolled through his post history, but the thought of the user interface experience that would involve makes me shudder. In another test in a fresh chat session, I wanted to find a particular post by Bonni Stachowiak from the Teaching in Higher Ed podcast and see if Jon Ippolito has posted separately on the same topic. In the chat , Claude first attempted to search LinkedIn without the skill and failed to find Bonni Stachowiak’s post. Then I told it to use the skill, and it succeeded. I’m excited to keep using this and hopeful that Claude with the LinkedIn search skill will help me more easily learn more and help connect conversations and people on LInkedIn. If this sounds useful to you, please try it and let me know if it works! You’ll see that it includes a process for searching comments; I haven’t tested that yet. Maybe the skill will need futher tweaking. Below is the text of the skill (a skill is just text instructions, not code). Again, this was generated and refined by Claude and depends on the Claude in Chrome browser extension having access to a LinkedIn account. To use it, Go to “Cusotmize” in Claude, “Create new skill,” call it “LinkedIn Search” and copy this text in. (See Anthropic’s guides What are Skills? and Use Skills in Claude .) LinkedIn Post & Comment Search Search LinkedIn for posts or comments using keyword and author filters via Chrome browser automation, with a Google site-search fallback. Prerequisites The user must be logged into LinkedIn in their Chrome browser. The Claude in Chrome extension must be active and connected. Confirm both before beginning the workflow. Do not attempt to log in on the user’s behalf. Gathering the Search Request Before searching, clarify the following with the user. Items marked with a default can be skipped if the user doesn’t specify them. ParameterRequired?Default Keywords Yes— Search scope No Posts onlyAuthor (person’s name)NoAny author Company (posted by company, or author’s company)NoAny Date range NoAny time Content type (video, image, document, newsletter, carousel)NoAny Connection degree (1st, 2nd, 3rd+)NoAny Output format No URLs only Search scope options Posts only (default): Search post content using LinkedIn native search + filters Comments by a person : Search a specific person’s comment history (see Comment Search section below) Both : Search posts first, then comments Output format options URLs only (default): Return just the LinkedIn post URL(s) Summary : URL + brief description of post content Extracted text : URL + full text of each post Screenshot : URL + screenshot of each post in the browser Primary Method: LinkedIn Native Search Step 1: Build the search URL Construct a URL to skip straight to filtered post results where possible: https://www.linkedin.com/search/results/content/?keywords=ENCODED_KEYWORDS URL-encode the keywords. If the user wants an exact phrase, wrap it in quotes before encoding (LinkedIn supports quoted phrase search). Use navigate to go to this URL. Step 2: Take a screenshot and verify the page loaded Use computer with action screenshot to confirm: The page loaded (not a login wall or error) The Posts tab / content results are visible If a login wall appears, stop and remind the user of the prerequisite. Step 3: Apply filters Click “All filters” (use find to locate the button, then computer to click it). The filter panel includes these fields relevant to post search: FilterHow to useTool Sort by “Relevance” or “Latest” form_input or computer click Date posted Past 24 hours / Past week / Past month computer click Content type Video, Image, Document, Newsletter, Carousel computer click From member Type person’s name, select from autocomplete form_input then computer to select From company Type company name, select from autocomplete form_input then computer to select Author company Filter by where the author works form_input then computer to select Author industry Filter by author’s industry form_input then computer to select Connection degree Not directly in “All filters” — see Step 3a— After setting filters, click “Show results” (use find to locate, then computer to click). Step 3a: Connection degree filtering LinkedIn’s Posts search does not always expose a direct “Connections” filter in All Filters. Two approaches: Posted by filter: In All Filters, look for “Posted by” which may include options like “People you follow” or “1st connections.” Use this if available. Boolean + profile cross-reference : If connection filtering isn’t available in the filter panel, note this limitation to the user. You can check individual authors’ connection degree from their profile if needed. Step 4: Read and extract results Use read_page or get_page_text to extract post results from the page. For each result, extract: Post URL : Look for links in the results that follow the pattern linkedin.com/feed/update/ or linkedin.com/posts/ . Use read_page to find link elements within each result card. Author name : Typically displayed above each post. Post snippet : The preview text shown in search results. Date : Relative timestamp (e.g., “3d”, “1w”). If extracting URLs from the accessibility tree is difficult, use javascript_tool to run: javascript Array.from(document.querySelectorAll('a[href*="/feed/update/"], a[href*="/posts/"]')).map(a => a.href) Step 5: Scroll for more results if needed If the user needs more results than are initially visible, use computer with scroll action (direction: “down”) and repeat Step 4. Step 6: Deliver results Based on the requested output format: URLs only (default): List the post URLs in chat. Summary : For each URL, include the author, date, and a 1-2 sentence description of the post content from the snippet. Extracted text : Navigate to each post URL, use get_page_text to extract the full post text, and present it. Screenshot : Use computer with screenshot action on each post. Fallback Method: Google Site Search Use this method if: LinkedIn’s native search isn’t returning results The browser automation encounters issues (UI changes, loading problems) The user prefers a faster, less interactive approach How to construct the Google search Use the web_search tool with queries structured as: Posts by a specific person on a topic: site:linkedin.com/posts "Person Name" "keyword or phrase" Articles/newsletters by a specific person: site:linkedin.com/pulse "Person Name" "keyword or phrase" Posts from a specific company: site:linkedin.com/posts "Company Name" "keyword" Limitations of the fallback Only finds publicly indexed posts (not posts with restricted visibility) Cannot filter by connection degree, content type, or date range with precision May return profile pages or other LinkedIn content mixed in with posts Less reliable for recent posts (indexing lag) Tips for Effective LinkedIn Post Search Short, specific keywords work better than long queries in LinkedIn’s native search. Boolean operators work in LinkedIn’s search bar: AND, OR, NOT, and quoted phrases for exact match. Example: "agentic AI" AND "academic integrity" . “From member” autocomplete requires a few characters before suggesting names. Type at least the first name and wait for suggestions. “Mentioning member” is different from “From member” — use it to find posts that tag someone, not posts written by them. If searching for a person with a common name, adding the “From member” filter is far more reliable than including their name in the keyword search. Troubleshooting ProblemSolutionLogin wall appearsRemind user they must be logged into LinkedIn. Do not attempt login.”No results found”Try broader keywords, remove filters one at a time, or switch to fallback method.Filter panel layout has changedTake a screenshot, use read_page to inspect current UI elements, and adapt. LinkedIn frequently updates its UI.Autocomplete not showing the right personTry typing more of their name, or their full name. If still not found, the person may have restricted their profile visibility.Cannot extract URLs from resultsUse javascript_tool to query the DOM directly for link elements.Rate limiting or CAPTCHAStop and inform the user. Do not attempt to bypass. Comment Search LinkedIn does not provide any native search for comments — not through the search bar, filters, or API. Comment search requires a browser-based workaround with significant limitations. Method: Activity Page Scroll + JavaScript Search Step 1: Navigate to the person’s comment activity page Construct the URL using their LinkedIn profile slug: https://www.linkedin.com/in/PROFILE_SLUG/recent-activity/comments/ If searching the logged-in user’s own comments, their profile slug can be found in the URL when viewing their profile. Use navigate to go to this page. Step 2: Verify the page loaded Use computer with screenshot to confirm the Activity page loaded with the “Comments” tab selected. If not, click the “Comments” tab. Step 3: Scroll and search with JavaScript Use javascript_tool to scroll down and search for the keyword in loaded content. This loads comments via infinite scroll and checks for the keyword after each scroll: javascript async function scrollAndSearch(keyword, maxScrolls = 30) { for (let i = 0; i < maxScrolls; i++) { window.scrollTo(0, document.body.scrollHeight); await new Promise(r => setTimeout(r, 1500)); if (document.body.innerText.toLowerCase().includes(keyword.toLowerCase())) { const text = document.body.innerText; const idx = text.toLowerCase().indexOf(keyword.toLowerCase()); const start = Math.max(0, idx - 300); const end = Math.min(text.length, idx + 300); return { found: true, scrolls: i + 1, context: text.substring(start, end) }; } } return { found: false, scrolls: maxScrolls }; } scrollAndSearch('your keyword here') Adjust maxScrolls based on how far back the user thinks the comment might be. Each scroll loads roughly 3-5 comments. 30 scrolls covers roughly 90-150 comments. Step 4: If found, extract the post URL When the keyword is found, take a screenshot to see the context. Use find or read_page to identify the parent post that was commented on. The parent post’s link can be extracted from the result card. Critical Limitations of Comment Search Truncation problem : The activity page shows comment previews that are truncated with “...more” links. Keywords that appear later in a comment will not be found by the JavaScript text search unless the “...more” link is clicked to expand each comment. Clicking every “...more” link is possible but extremely slow. No date filtering : There is no way to jump to a specific date range. The only approach is scrolling from most recent backward. Only shows the person’s own comments : This view only shows comments by the profile owner. You cannot search across all comments on a particular post without opening that post directly. Incomplete history : LinkedIn may not load the complete comment history for very active users. The infinite scroll may stop loading at some point. Parent post context : The activity page shows the parent post the user commented on, but the parent post text is also truncated — the keyword might appear in either the comment or the parent post preview. When to suggest the Data Export alternative If the scroll-and-search approach fails or is too slow (e.g., the user has a very long comment history or the comment is old), suggest the LinkedIn Data Export method instead. Alternative: LinkedIn Data Export LinkedIn allows users to download an archive of their data, including all their comments. This is the most thorough method for searching old comments. How to guide the user Tell the user to go to Settings & Privacy > Data privacy > Get a copy of your data (or navigate to https://www.linkedin.com/mypreferences/d/download-my-data ). The user should select at minimum “Comments” (they can also include “Posts” and other data). LinkedIn will prepare the archive and email a download link — this can take up to 24 hours but often arrives within minutes for smaller requests. The downloaded archive is a ZIP file containing CSV files. Once downloaded, the user can open the Comments CSV and use Ctrl+F or any text editor to search for their keyword. Important : Claude cannot initiate this data request on the user’s behalf — it requires clicking through LinkedIn’s privacy settings and potentially re-authenticating. Guide the user through the steps verbally, or navigate them to the settings page and let them complete it. What the data export includes Full text of every comment (not truncated) Date and time of each comment URL of the post that was commented on The export does not include comments by others on the user’s posts — only the user’s own comments on any posts
Markdown
[![Anna Mills’ Substack](https://substackcdn.com/image/fetch/$s_!UcZy!,w_40,h_40,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F183aa0fa-02e5-496b-94c2-dd2167d2cc9e_133x133.png)](https://annamills.substack.com/) # [Anna Mills’ Substack](https://annamills.substack.com/) Subscribe Sign in # Automating LinkedIn search by getting Claude to build and test a new skill ### An exploration in agentic AI use [![Anna Mills's avatar](https://substackcdn.com/image/fetch/$s_!ZFDk!,w_36,h_36,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfa48567-b90f-477e-8fe9-c3d622c9e446_2320x3088.jpeg)](https://substack.com/@annamills) [Anna Mills](https://substack.com/@annamills) Mar 01, 2026 20 12 1 Share To further my explorations of [agentic AI uses that might help educators](https://annamills.substack.com/p/should-educators-use-agentic-ai-if), I decided to see if I could automate an annoyingly slow task that comes up as I try to keep track of and respond to conversations about AI in education. I’ve been frustrated with the slowness of LinkedIn’s search filter system; for example, you can’t just search for posts by a particular person that reference particular keywords; you have to do a general search on keywords and then narrow down by “post” and then by “member.” Google doesn’t index LinkedIn posts reliably. Anna Mills’ Substack is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber. I love connecting people who are talking about the same topics and cross-referencing conversations. I often think of a post where someone talked about something and want to review it or link to it but give up because I don’t have time or patience for the excruciating search process it would take to dig it up. I knew that you could save instructions on how to complete particular tasks as “skills” in a Claude account. I decided to see if Claude could develop a reliable way to search LinkedIn with the Claude in Chrome browser extension. I interviewed it about LinkedIn search strategies, and it interviewed me about what search capabilities and kinds of outputs I wanted (see the [whole chat transcript](https://claude.ai/share/89ab6460-f3a1-46c7-8c68-d013adbe3951)). It drafted a skill. I asked it to test. There were some false starts, as when Claude got no results and I did get results with the same search terms. But when I pointed this out, it was able to figure out the problem with its view of the site and update the skill. It started working. In one test, I asked it to “Look for recent posts from Joel Gladd where he describes his use of Claude Code.” It surfaced two posts I remembered and one I hadn’t seen, then offered to keep going; I asked it to summarize all of Joel Gladd’s uses, and I was delighted to read its summaries as well as the posts themselves and discover quite a few experiments of his that I had missedit did. True, I could have searched myself or scrolled through his post history, but the thought of the user interface experience that would involve makes me shudder. In another test in a fresh chat session, I wanted to find a particular post by Bonni Stachowiak from the Teaching in Higher Ed podcast and see if Jon Ippolito has posted separately on the same topic. In the [chat](https://claude.ai/share/747b7851-c70e-4279-9829-57f9440f4df0), Claude first attempted to search LinkedIn without the skill and failed to find Bonni Stachowiak’s post. Then I told it to use the skill, and it succeeded. I’m excited to keep using this and hopeful that Claude with the LinkedIn search skill will help me more easily learn more and help connect conversations and people on LInkedIn. If this sounds useful to you, please try it and let me know if it works! You’ll see that it includes a process for searching comments; I haven’t tested that yet. Maybe the skill will need futher tweaking. Below is the text of the skill (a skill is just text instructions, not code). Again, this was generated and refined by Claude and depends on the Claude in Chrome browser extension having access to a LinkedIn account. To use it, Go to “Cusotmize” in Claude, “Create new skill,” call it “LinkedIn Search” and copy this text in. (See Anthropic’s guides [What are Skills?](https://support.claude.com/en/articles/12512176-what-are-skills#h_c858f8fc74) and [Use Skills in Claude](https://support.claude.com/en/articles/12512180-use-skills-in-claude).) > # LinkedIn Post & Comment Search > Search LinkedIn for posts or comments using keyword and author filters via Chrome browser automation, with a Google site-search fallback. > > ## Prerequisites > - The user must be **logged into LinkedIn** in their Chrome browser. > - The **Claude in Chrome** extension must be active and connected. > - Confirm both before beginning the workflow. Do not attempt to log in on the user’s behalf. > ## Gathering the Search Request > Before searching, clarify the following with the user. Items marked with a default can be skipped if the user doesn’t specify them. > > ParameterRequired?Default**Keywords**Yes—**Search scope**No**Posts onlyAuthor** (person’s name)NoAny author**Company** (posted by company, or author’s company)NoAny**Date range**NoAny time**Content type** (video, image, document, newsletter, carousel)NoAny**Connection degree** (1st, 2nd, 3rd+)NoAny**Output format**No**URLs only** > > ### Search scope options > - **Posts only** (default): Search post content using LinkedIn native search + filters > - **Comments by a person**: Search a specific person’s comment history (see Comment Search section below) > - **Both**: Search posts first, then comments > ### Output format options > - **URLs only** (default): Return just the LinkedIn post URL(s) > - **Summary**: URL + brief description of post content > - **Extracted text**: URL + full text of each post > - **Screenshot**: URL + screenshot of each post in the browser > ## Primary Method: LinkedIn Native Search > ### Step 1: Build the search URL > Construct a URL to skip straight to filtered post results where possible: > ``` > https://www.linkedin.com/search/results/content/?keywords=ENCODED_KEYWORDS > ``` > URL-encode the keywords. If the user wants an exact phrase, wrap it in quotes before encoding (LinkedIn supports quoted phrase search). > > Use `navigate` to go to this URL. > > ### Step 2: Take a screenshot and verify the page loaded > Use `computer` with action `screenshot` to confirm: > > - The page loaded (not a login wall or error) > - The Posts tab / content results are visible > > If a login wall appears, stop and remind the user of the prerequisite. > > ### Step 3: Apply filters > Click **“All filters”** (use `find` to locate the button, then `computer` to click it). > > The filter panel includes these fields relevant to post search: > > FilterHow to useTool**Sort by**“Relevance” or “Latest”`form_input` or `computer` click**Date posted**Past 24 hours / Past week / Past month`computer` click**Content type**Video, Image, Document, Newsletter, Carousel`computer` click**From member**Type person’s name, select from autocomplete`form_input` then `computer` to select**From company**Type company name, select from autocomplete`form_input` then `computer` to select**Author company**Filter by where the author works`form_input` then `computer` to select**Author industry**Filter by author’s industry`form_input` then `computer` to select**Connection degree**Not directly in “All filters” — see Step 3a— > > After setting filters, click **“Show results”** (use `find` to locate, then `computer` to click). > > #### Step 3a: Connection degree filtering > LinkedIn’s Posts search does not always expose a direct “Connections” filter in All Filters. Two approaches: > > 1. **Posted by** filter: In All Filters, look for “Posted by” which may include options like “People you follow” or “1st connections.” Use this if available. > 2. **Boolean + profile cross-reference**: If connection filtering isn’t available in the filter panel, note this limitation to the user. You can check individual authors’ connection degree from their profile if needed. > ### Step 4: Read and extract results > Use `read_page` or `get_page_text` to extract post results from the page. > > For each result, extract: > > - **Post URL**: Look for links in the results that follow the pattern `linkedin.com/feed/update/` or `linkedin.com/posts/`. Use `read_page` to find link elements within each result card. > - **Author name**: Typically displayed above each post. > - **Post snippet**: The preview text shown in search results. > - **Date**: Relative timestamp (e.g., “3d”, “1w”). > > If extracting URLs from the accessibility tree is difficult, use `javascript_tool` to run: > > javascript > ``` > Array.from(document.querySelectorAll('a[href*="/feed/update/"], a[href*="/posts/"]')).map(a => a.href) > ``` > ### Step 5: Scroll for more results if needed > If the user needs more results than are initially visible, use `computer` with `scroll` action (direction: “down”) and repeat Step 4. > > ### Step 6: Deliver results > Based on the requested output format: > > - **URLs only** (default): List the post URLs in chat. > - **Summary**: For each URL, include the author, date, and a 1-2 sentence description of the post content from the snippet. > - **Extracted text**: Navigate to each post URL, use `get_page_text` to extract the full post text, and present it. > - **Screenshot**: Use `computer` with `screenshot` action on each post. > ## Fallback Method: Google Site Search > Use this method if: > > - LinkedIn’s native search isn’t returning results > - The browser automation encounters issues (UI changes, loading problems) > - The user prefers a faster, less interactive approach > ### How to construct the Google search > Use the `web_search` tool with queries structured as: > > **Posts by a specific person on a topic:** > ``` > site:linkedin.com/posts "Person Name" "keyword or phrase" > ``` > **Articles/newsletters by a specific person:** > ``` > site:linkedin.com/pulse "Person Name" "keyword or phrase" > ``` > **Posts from a specific company:** > ``` > site:linkedin.com/posts "Company Name" "keyword" > ``` > ### Limitations of the fallback > - Only finds publicly indexed posts (not posts with restricted visibility) > - Cannot filter by connection degree, content type, or date range with precision > - May return profile pages or other LinkedIn content mixed in with posts > - Less reliable for recent posts (indexing lag) > ## Tips for Effective LinkedIn Post Search > - **Short, specific keywords** work better than long queries in LinkedIn’s native search. > - **Boolean operators** work in LinkedIn’s search bar: AND, OR, NOT, and quoted phrases for exact match. Example: `"agentic AI" AND "academic integrity"`. > - **“From member” autocomplete** requires a few characters before suggesting names. Type at least the first name and wait for suggestions. > - **“Mentioning member”** is different from “From member” — use it to find posts that *tag* someone, not posts *written by* them. > - If searching for a person with a common name, adding the “From member” filter is far more reliable than including their name in the keyword search. > ## Troubleshooting > ProblemSolutionLogin wall appearsRemind user they must be logged into LinkedIn. Do not attempt login.”No results found”Try broader keywords, remove filters one at a time, or switch to fallback method.Filter panel layout has changedTake a screenshot, use `read_page` to inspect current UI elements, and adapt. LinkedIn frequently updates its UI.Autocomplete not showing the right personTry typing more of their name, or their full name. If still not found, the person may have restricted their profile visibility.Cannot extract URLs from resultsUse `javascript_tool` to query the DOM directly for link elements.Rate limiting or CAPTCHAStop and inform the user. Do not attempt to bypass. > > ## Comment Search > LinkedIn does **not** provide any native search for comments — not through the search bar, filters, or API. Comment search requires a browser-based workaround with significant limitations. > > ### Method: Activity Page Scroll + JavaScript Search > #### Step 1: Navigate to the person’s comment activity page > Construct the URL using their LinkedIn profile slug: > ``` > https://www.linkedin.com/in/PROFILE_SLUG/recent-activity/comments/ > ``` > If searching the logged-in user’s own comments, their profile slug can be found in the URL when viewing their profile. Use `navigate` to go to this page. > > #### Step 2: Verify the page loaded > Use `computer` with `screenshot` to confirm the Activity page loaded with the “Comments” tab selected. If not, click the “Comments” tab. > > #### Step 3: Scroll and search with JavaScript > Use `javascript_tool` to scroll down and search for the keyword in loaded content. This loads comments via infinite scroll and checks for the keyword after each scroll: > > javascript > ``` > > ``` > Adjust `maxScrolls` based on how far back the user thinks the comment might be. Each scroll loads roughly 3-5 comments. 30 scrolls covers roughly 90-150 comments. > > #### Step 4: If found, extract the post URL > When the keyword is found, take a screenshot to see the context. Use `find` or `read_page` to identify the parent post that was commented on. The parent post’s link can be extracted from the result card. > > ### Critical Limitations of Comment Search > **Truncation problem**: The activity page shows comment previews that are **truncated** with “...more” links. Keywords that appear later in a comment will not be found by the JavaScript text search unless the “...more” link is clicked to expand each comment. Clicking every “...more” link is possible but extremely slow. > > **No date filtering**: There is no way to jump to a specific date range. The only approach is scrolling from most recent backward. > > **Only shows the person’s own comments**: This view only shows comments by the profile owner. You cannot search across all comments on a particular post without opening that post directly. > > **Incomplete history**: LinkedIn may not load the complete comment history for very active users. The infinite scroll may stop loading at some point. > > **Parent post context**: The activity page shows the parent post the user commented on, but the parent post text is also truncated — the keyword might appear in either the comment or the parent post preview. > > ### When to suggest the Data Export alternative > If the scroll-and-search approach fails or is too slow (e.g., the user has a very long comment history or the comment is old), suggest the LinkedIn Data Export method instead. > > ## Alternative: LinkedIn Data Export > LinkedIn allows users to download an archive of their data, including all their comments. This is the most thorough method for searching old comments. > > ### How to guide the user > 1. Tell the user to go to **Settings & Privacy \> Data privacy \> Get a copy of your data** (or navigate to `https://www.linkedin.com/mypreferences/d/download-my-data`). > 2. The user should select at minimum **“Comments”** (they can also include “Posts” and other data). > 3. LinkedIn will prepare the archive and email a download link — this can take **up to 24 hours** but often arrives within minutes for smaller requests. > 4. The downloaded archive is a ZIP file containing CSV files. > 5. Once downloaded, the user can open the Comments CSV and use Ctrl+F or any text editor to search for their keyword. > > **Important**: Claude cannot initiate this data request on the user’s behalf — it requires clicking through LinkedIn’s privacy settings and potentially re-authenticating. Guide the user through the steps verbally, or navigate them to the settings page and let them complete it. > > ### What the data export includes > - Full text of every comment (not truncated) > - Date and time of each comment > - URL of the post that was commented on > - The export does **not** include comments by others on the user’s posts — only the user’s own comments on any posts Anna Mills’ Substack is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber. [![Alex Rockey's avatar](https://substackcdn.com/image/fetch/$s_!nl1g!,w_32,h_32,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d7b8995-b633-4702-86d0-07b7be7b1e7b_144x144.png)](https://substack.com/profile/281508846-alex-rockey) [![Alecia Blackwood's avatar](https://substackcdn.com/image/fetch/$s_!4dWI!,w_32,h_32,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa8cd0d6-b868-4bdb-832b-ebd694fa5742_144x144.png)](https://substack.com/profile/241830934-alecia-blackwood) [![Jacob Forward's avatar](https://substackcdn.com/image/fetch/$s_!f9Eo!,w_32,h_32,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F213843ab-a28d-42c8-9505-196f227ccb0e_1024x1024.jpeg)](https://substack.com/profile/218035183-jacob-forward) [![Susan Ray's avatar](https://substackcdn.com/image/fetch/$s_!mL9C!,w_32,h_32,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ace3c8-0a11-49bc-9814-4d62fbe5508d_445x579.jpeg)](https://substack.com/profile/268163950-susan-ray) [![Lisa Green's avatar](https://substackcdn.com/image/fetch/$s_!vtU7!,w_32,h_32,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F468294a9-2609-464d-9a2c-d1196fd481d8_144x144.png)](https://substack.com/profile/15361640-lisa-green) [20 Likes]()∙ [1 Restack](https://substack.com/note/p-189525260/restacks?utm_source=substack&utm_content=facepile-restacks) 20 12 1 Share #### Discussion about this post Comments Restacks [![Mickey Schafer's avatar](https://substackcdn.com/image/fetch/$s_!gpnK!,w_32,h_32,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa966b5fe-4c11-451b-8304-a221540992d5_144x144.png)](https://substack.com/profile/244712-mickey-schafer?utm_source=comment) [Mickey Schafer](https://substack.com/profile/244712-mickey-schafer?utm_source=substack-feed-item) [Mar 1](https://annamills.substack.com/p/automating-linkedin-search-by-getting/comment/221604912 "Mar 1, 2026, 10:19 PM") Liked by Anna Mills I've just started exploring Claude skills for important but time consuming tasks. The first one is verify the veracity and correctness of bibliographies in student papers. Right now, I look up every single source myself! Claude believes that he can build a good skill for that. I haven't finished the session yet so have nothing to report, but I will let you know\! [Like (2)]() [Reply]() [Share]() [3 replies by Anna Mills and others](https://annamills.substack.com/p/automating-linkedin-search-by-getting/comment/221604912) [![Susan Ray's avatar](https://substackcdn.com/image/fetch/$s_!mL9C!,w_32,h_32,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ace3c8-0a11-49bc-9814-4d62fbe5508d_445x579.jpeg)](https://substack.com/profile/268163950-susan-ray?utm_source=comment) [Susan Ray](https://substack.com/profile/268163950-susan-ray?utm_source=substack-feed-item) [Mar 2](https://annamills.substack.com/p/automating-linkedin-search-by-getting/comment/221656058 "Mar 2, 2026, 12:36 AM") Liked by Anna Mills This is so helpful. Thank you for diving in with AI agents so the rest of us can wade in with confidence\! [Like (1)]() [Reply]() [Share]() [2 replies by Anna Mills and others](https://annamills.substack.com/p/automating-linkedin-search-by-getting/comment/221656058) [10 more comments...](https://annamills.substack.com/p/automating-linkedin-search-by-getting/comments) Top Latest Discussions [The time to reckon with AI agents in digital learning spaces is now](https://annamills.substack.com/p/the-time-to-reckon-with-ai-agents) [We need ed tech and AI companies collaborating to prevent widespread fraud](https://annamills.substack.com/p/the-time-to-reckon-with-ai-agents) Oct 19, 2025 • [Anna Mills](https://substack.com/@annamills) 65 41 12 ![](https://substackcdn.com/image/fetch/$s_!Rip8!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f236458-cdbb-40b0-8c2c-4e0f56727ae0_498x521.jpeg) [Why I'm using AI detection after all, alongside many other strategies](https://annamills.substack.com/p/why-im-using-ai-detection-after-all) [I'm incorporating Turnitin alongside process tracking, writing process assignments, social annotation, lots of student choice, peer review and tutoring…](https://annamills.substack.com/p/why-im-using-ai-detection-after-all) Feb 13, 2025 • [Anna Mills](https://substack.com/@annamills) 49 17 9 ![](https://substackcdn.com/image/fetch/$s_!Dfb8!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7493639e-8396-442d-a0d3-48c94780c997_4288x2848.jpeg) [Agentic AI: Considerations for Educators](https://annamills.substack.com/p/agentic-ai-considerations-for-educators) [A brief slide-deck style introduction to where we are now, based on recent presentations](https://annamills.substack.com/p/agentic-ai-considerations-for-educators) Feb 5 • [Anna Mills](https://substack.com/@annamills) 32 3 11 ![](https://substackcdn.com/image/fetch/$s_!bIxc!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea97988-04ad-4e46-868f-c8ed166aeae1_1242x704.png) See all ### Ready for more? © 2026 Anna Mills · [Privacy](https://substack.com/privacy) ∙ [Terms](https://substack.com/tos) ∙ [Collection notice](https://substack.com/ccpa#personal-data-collected) [Start your Substack](https://substack.com/signup?utm_source=substack&utm_medium=web&utm_content=footer) [Get the app](https://substack.com/app/app-store-redirect?utm_campaign=app-marketing&utm_content=web-footer-button) [Substack](https://substack.com/) is the home for great culture This site requires JavaScript to run correctly. Please [turn on JavaScript](https://enable-javascript.com/) or unblock scripts
Readable Markdown
To further my explorations of [agentic AI uses that might help educators](https://annamills.substack.com/p/should-educators-use-agentic-ai-if), I decided to see if I could automate an annoyingly slow task that comes up as I try to keep track of and respond to conversations about AI in education. I’ve been frustrated with the slowness of LinkedIn’s search filter system; for example, you can’t just search for posts by a particular person that reference particular keywords; you have to do a general search on keywords and then narrow down by “post” and then by “member.” Google doesn’t index LinkedIn posts reliably. I love connecting people who are talking about the same topics and cross-referencing conversations. I often think of a post where someone talked about something and want to review it or link to it but give up because I don’t have time or patience for the excruciating search process it would take to dig it up. I knew that you could save instructions on how to complete particular tasks as “skills” in a Claude account. I decided to see if Claude could develop a reliable way to search LinkedIn with the Claude in Chrome browser extension. I interviewed it about LinkedIn search strategies, and it interviewed me about what search capabilities and kinds of outputs I wanted (see the [whole chat transcript](https://claude.ai/share/89ab6460-f3a1-46c7-8c68-d013adbe3951)). It drafted a skill. I asked it to test. There were some false starts, as when Claude got no results and I did get results with the same search terms. But when I pointed this out, it was able to figure out the problem with its view of the site and update the skill. It started working. In one test, I asked it to “Look for recent posts from Joel Gladd where he describes his use of Claude Code.” It surfaced two posts I remembered and one I hadn’t seen, then offered to keep going; I asked it to summarize all of Joel Gladd’s uses, and I was delighted to read its summaries as well as the posts themselves and discover quite a few experiments of his that I had missedit did. True, I could have searched myself or scrolled through his post history, but the thought of the user interface experience that would involve makes me shudder. In another test in a fresh chat session, I wanted to find a particular post by Bonni Stachowiak from the Teaching in Higher Ed podcast and see if Jon Ippolito has posted separately on the same topic. In the [chat](https://claude.ai/share/747b7851-c70e-4279-9829-57f9440f4df0), Claude first attempted to search LinkedIn without the skill and failed to find Bonni Stachowiak’s post. Then I told it to use the skill, and it succeeded. I’m excited to keep using this and hopeful that Claude with the LinkedIn search skill will help me more easily learn more and help connect conversations and people on LInkedIn. If this sounds useful to you, please try it and let me know if it works! You’ll see that it includes a process for searching comments; I haven’t tested that yet. Maybe the skill will need futher tweaking. Below is the text of the skill (a skill is just text instructions, not code). Again, this was generated and refined by Claude and depends on the Claude in Chrome browser extension having access to a LinkedIn account. To use it, Go to “Cusotmize” in Claude, “Create new skill,” call it “LinkedIn Search” and copy this text in. (See Anthropic’s guides [What are Skills?](https://support.claude.com/en/articles/12512176-what-are-skills#h_c858f8fc74) and [Use Skills in Claude](https://support.claude.com/en/articles/12512180-use-skills-in-claude).) ## LinkedIn Post & Comment Search Search LinkedIn for posts or comments using keyword and author filters via Chrome browser automation, with a Google site-search fallback. ## Prerequisites - The user must be **logged into LinkedIn** in their Chrome browser. - The **Claude in Chrome** extension must be active and connected. - Confirm both before beginning the workflow. Do not attempt to log in on the user’s behalf. ## Gathering the Search Request Before searching, clarify the following with the user. Items marked with a default can be skipped if the user doesn’t specify them. ParameterRequired?Default**Keywords**Yes—**Search scope**No**Posts onlyAuthor** (person’s name)NoAny author**Company** (posted by company, or author’s company)NoAny**Date range**NoAny time**Content type** (video, image, document, newsletter, carousel)NoAny**Connection degree** (1st, 2nd, 3rd+)NoAny**Output format**No**URLs only** ### Search scope options - **Posts only** (default): Search post content using LinkedIn native search + filters - **Comments by a person**: Search a specific person’s comment history (see Comment Search section below) - **Both**: Search posts first, then comments ### Output format options - **URLs only** (default): Return just the LinkedIn post URL(s) - **Summary**: URL + brief description of post content - **Extracted text**: URL + full text of each post - **Screenshot**: URL + screenshot of each post in the browser ## Primary Method: LinkedIn Native Search ### Step 1: Build the search URL Construct a URL to skip straight to filtered post results where possible: ``` https://www.linkedin.com/search/results/content/?keywords=ENCODED_KEYWORDS ``` URL-encode the keywords. If the user wants an exact phrase, wrap it in quotes before encoding (LinkedIn supports quoted phrase search). Use `navigate` to go to this URL. ### Step 2: Take a screenshot and verify the page loaded Use `computer` with action `screenshot` to confirm: - The page loaded (not a login wall or error) - The Posts tab / content results are visible If a login wall appears, stop and remind the user of the prerequisite. ### Step 3: Apply filters Click **“All filters”** (use `find` to locate the button, then `computer` to click it). The filter panel includes these fields relevant to post search: FilterHow to useTool**Sort by**“Relevance” or “Latest”`form_input` or `computer` click**Date posted**Past 24 hours / Past week / Past month`computer` click**Content type**Video, Image, Document, Newsletter, Carousel`computer` click**From member**Type person’s name, select from autocomplete`form_input` then `computer` to select**From company**Type company name, select from autocomplete`form_input` then `computer` to select**Author company**Filter by where the author works`form_input` then `computer` to select**Author industry**Filter by author’s industry`form_input` then `computer` to select**Connection degree**Not directly in “All filters” — see Step 3a— After setting filters, click **“Show results”** (use `find` to locate, then `computer` to click). #### Step 3a: Connection degree filtering LinkedIn’s Posts search does not always expose a direct “Connections” filter in All Filters. Two approaches: 1. **Posted by** filter: In All Filters, look for “Posted by” which may include options like “People you follow” or “1st connections.” Use this if available. 2. **Boolean + profile cross-reference**: If connection filtering isn’t available in the filter panel, note this limitation to the user. You can check individual authors’ connection degree from their profile if needed. ### Step 4: Read and extract results Use `read_page` or `get_page_text` to extract post results from the page. For each result, extract: - **Post URL**: Look for links in the results that follow the pattern `linkedin.com/feed/update/` or `linkedin.com/posts/`. Use `read_page` to find link elements within each result card. - **Author name**: Typically displayed above each post. - **Post snippet**: The preview text shown in search results. - **Date**: Relative timestamp (e.g., “3d”, “1w”). If extracting URLs from the accessibility tree is difficult, use `javascript_tool` to run: javascript ``` Array.from(document.querySelectorAll('a[href*="/feed/update/"], a[href*="/posts/"]')).map(a => a.href) ``` ### Step 5: Scroll for more results if needed If the user needs more results than are initially visible, use `computer` with `scroll` action (direction: “down”) and repeat Step 4. ### Step 6: Deliver results Based on the requested output format: - **URLs only** (default): List the post URLs in chat. - **Summary**: For each URL, include the author, date, and a 1-2 sentence description of the post content from the snippet. - **Extracted text**: Navigate to each post URL, use `get_page_text` to extract the full post text, and present it. - **Screenshot**: Use `computer` with `screenshot` action on each post. ## Fallback Method: Google Site Search Use this method if: - LinkedIn’s native search isn’t returning results - The browser automation encounters issues (UI changes, loading problems) - The user prefers a faster, less interactive approach ### How to construct the Google search Use the `web_search` tool with queries structured as: **Posts by a specific person on a topic:** ``` site:linkedin.com/posts "Person Name" "keyword or phrase" ``` **Articles/newsletters by a specific person:** ``` site:linkedin.com/pulse "Person Name" "keyword or phrase" ``` **Posts from a specific company:** ``` site:linkedin.com/posts "Company Name" "keyword" ``` ### Limitations of the fallback - Only finds publicly indexed posts (not posts with restricted visibility) - Cannot filter by connection degree, content type, or date range with precision - May return profile pages or other LinkedIn content mixed in with posts - Less reliable for recent posts (indexing lag) ## Tips for Effective LinkedIn Post Search - **Short, specific keywords** work better than long queries in LinkedIn’s native search. - **Boolean operators** work in LinkedIn’s search bar: AND, OR, NOT, and quoted phrases for exact match. Example: `"agentic AI" AND "academic integrity"`. - **“From member” autocomplete** requires a few characters before suggesting names. Type at least the first name and wait for suggestions. - **“Mentioning member”** is different from “From member” — use it to find posts that *tag* someone, not posts *written by* them. - If searching for a person with a common name, adding the “From member” filter is far more reliable than including their name in the keyword search. ## Troubleshooting ProblemSolutionLogin wall appearsRemind user they must be logged into LinkedIn. Do not attempt login.”No results found”Try broader keywords, remove filters one at a time, or switch to fallback method.Filter panel layout has changedTake a screenshot, use `read_page` to inspect current UI elements, and adapt. LinkedIn frequently updates its UI.Autocomplete not showing the right personTry typing more of their name, or their full name. If still not found, the person may have restricted their profile visibility.Cannot extract URLs from resultsUse `javascript_tool` to query the DOM directly for link elements.Rate limiting or CAPTCHAStop and inform the user. Do not attempt to bypass. ## Comment Search LinkedIn does **not** provide any native search for comments — not through the search bar, filters, or API. Comment search requires a browser-based workaround with significant limitations. ### Method: Activity Page Scroll + JavaScript Search #### Step 1: Navigate to the person’s comment activity page Construct the URL using their LinkedIn profile slug: ``` https://www.linkedin.com/in/PROFILE_SLUG/recent-activity/comments/ ``` If searching the logged-in user’s own comments, their profile slug can be found in the URL when viewing their profile. Use `navigate` to go to this page. #### Step 2: Verify the page loaded Use `computer` with `screenshot` to confirm the Activity page loaded with the “Comments” tab selected. If not, click the “Comments” tab. #### Step 3: Scroll and search with JavaScript Use `javascript_tool` to scroll down and search for the keyword in loaded content. This loads comments via infinite scroll and checks for the keyword after each scroll: javascript ``` ``` Adjust `maxScrolls` based on how far back the user thinks the comment might be. Each scroll loads roughly 3-5 comments. 30 scrolls covers roughly 90-150 comments. #### Step 4: If found, extract the post URL When the keyword is found, take a screenshot to see the context. Use `find` or `read_page` to identify the parent post that was commented on. The parent post’s link can be extracted from the result card. ### Critical Limitations of Comment Search **Truncation problem**: The activity page shows comment previews that are **truncated** with “...more” links. Keywords that appear later in a comment will not be found by the JavaScript text search unless the “...more” link is clicked to expand each comment. Clicking every “...more” link is possible but extremely slow. **No date filtering**: There is no way to jump to a specific date range. The only approach is scrolling from most recent backward. **Only shows the person’s own comments**: This view only shows comments by the profile owner. You cannot search across all comments on a particular post without opening that post directly. **Incomplete history**: LinkedIn may not load the complete comment history for very active users. The infinite scroll may stop loading at some point. **Parent post context**: The activity page shows the parent post the user commented on, but the parent post text is also truncated — the keyword might appear in either the comment or the parent post preview. ### When to suggest the Data Export alternative If the scroll-and-search approach fails or is too slow (e.g., the user has a very long comment history or the comment is old), suggest the LinkedIn Data Export method instead. ## Alternative: LinkedIn Data Export LinkedIn allows users to download an archive of their data, including all their comments. This is the most thorough method for searching old comments. ### How to guide the user 1. Tell the user to go to **Settings & Privacy \> Data privacy \> Get a copy of your data** (or navigate to `https://www.linkedin.com/mypreferences/d/download-my-data`). 2. The user should select at minimum **“Comments”** (they can also include “Posts” and other data). 3. LinkedIn will prepare the archive and email a download link — this can take **up to 24 hours** but often arrives within minutes for smaller requests. 4. The downloaded archive is a ZIP file containing CSV files. 5. Once downloaded, the user can open the Comments CSV and use Ctrl+F or any text editor to search for their keyword. **Important**: Claude cannot initiate this data request on the user’s behalf — it requires clicking through LinkedIn’s privacy settings and potentially re-authenticating. Guide the user through the steps verbally, or navigate them to the settings page and let them complete it. ### What the data export includes - Full text of every comment (not truncated) - Date and time of each comment - URL of the post that was commented on - The export does **not** include comments by others on the user’s posts — only the user’s own comments on any posts
Shard76 (laksa)
Root Hash14862242593741677076
Unparsed URLcom,substack!annamills,/p/automating-linkedin-search-by-getting s443