Use this skill for service operations only. DO NOT use this skill for CLI implementation lifecycle work such as creating, testing, updating, troubleshooting, validating, removing, or documenting the CLI tool itself; delegate those tasks to cli-tool-expert. MANDATORY: Execute nextdoor operations using the `nextdoor` CLI tool. CLI interface for Nextdoor (browser automation) -- feed, For Sale & Free classifieds, notifications, me, and content search. Triggers: nextdoor, nextdoor cli, nextdoor feed, nextdoor classifieds, for sale and free, nextdoor listings, nextdoor notifications, nextdoor search, nextdoor login, nextdoor auth profiles, check nextdoor auth
Resources
1Install
npx skillscat add adbertram/cli-tools/nextdoor-cli Install via the SkillsCat registry.
| Task | Command |
|---|---|
| Check auth status | nextdoor auth status |
| Login to Nextdoor | nextdoor auth login |
| View feed | nextdoor feed --limit 25 |
| Browse For Sale & Free listings | nextdoor classifieds list --limit 25 |
| Keyword-search listings | nextdoor classifieds list "lego" --limit 25 --filter "type:eq:ORGANIC,title:contains:lego" |
| Get one listing's full detail | nextdoor classifieds get <listing-uuid> |
| Search all Nextdoor content | nextdoor search "<query>" --limit 25 |
| View notifications | nextdoor notifications --table |
| Get current user | nextdoor me --table |
| List profiles | nextdoor auth profiles list |
All data commands support --table/-t, --properties/-p, and (except me)--filter/-f and --limit/-l. feed and classifieds list also support--sort/-s (newest default, relevance) and --desc/-d.
</quick_start>
feed rows also carry url, the post's permalink
(https://nextdoor.com/p/<slug>?view=detail). These slugs are opaque and exist
only in the API response — never construct a Nextdoor URL from an id.
PROMO rows have no permalink and report url: null.
The general feed mixes classifieds in with neighborhood news at roughly
5-10% of items and has no classified type filter, so do not use it to harvest
listings — use classifieds list.
</listing_urls>
The query IS wired through — it is sent verbatim asclassifiedSearchArgs.query on Nextdoor's own For Sale & Free search. That is
proven, not assumed: a nonsense token returns zero rows.
nextdoor classifieds list "zzzzznotarealthing" # -> 0 rows (query reaches the server)What Nextdoor does with it is the problem. Its classifieds search ranks by
relevance and applies no relevance floor, so it pads thin result sets with
unrelated listings instead of returning fewer rows:
| Query | What comes back |
|---|---|
wheelchair (real local inventory) |
"Electric Wheelchair", "Lightweight Transport Wheelchair" — plus "Burgundy Sofa", "Chicago Cubs Office Chair" |
lego / legos (no local inventory) |
100% padding: "Vintage Secretary Desk", "New Xbox Series S Bundle", "Everest & Jennings Transport Wheelchair" |
The padding is also unstable: the same keyword returned 2, 3, and 4 rows on
consecutive runs. Nextdoor exposes no exact-match flag and no relevance
threshold on this operation, so there is nothing to turn off.
Post-filter every keyword search, and put the conditions in ONE --filter:
nextdoor classifieds list "lego" --limit 50 \
--filter "type:eq:ORGANIC,title:contains:lego"Repeating --filter is OR, not AND — --filter "type:eq:ORGANIC" --filter "title:contains:lego" keeps every sponsored-free row regardless of title.
Comma-separated conditions inside a single --filter are AND.
A keyword search that returns zero rows after post-filtering is the honest
answer: Nextdoor has no local listing for that term. Do not read the unfiltered
padding as inventory.
</keyword_search_is_not_a_filter>