01 Oct 2022 · 5 min read

Hoarding automation: an n8n workflow for free second-hand things

One of my hobbies at the time was collecting free second-hand things - partly for the flat, partly to flip. The problem with giveaway apps is that everything good is claimed within minutes, so being fast matters more than being picky. That's an automation problem.

Three pieces: n8n as the engine, Airtable as the database, and Geev as the data source for free items nearby.

n8n workflow: cron, fetch API, function, split in batches, lookup, filter, append to Airtable, Gmail notification
The whole thing: cron → fetch → normalise → dedupe against Airtable → append → email me.

Step 1 - Define the search

Set up the filters in the app itself first. I wasn't interested in large furniture; I was interested in tech and small items. Narrowing here means less filtering logic later.

The app's own filter UI: categories, item condition and a 3km distance slider
Filters set in the app first: categories, condition, radius. Fewer records to reason about later.

Step 2 - Reverse-engineer the API

Developer tools, network tab, find the request the front end makes when you search. In this case it was a plain POST with basic authentication - which meant replicating it in an HTTP node was trivial. Same request, same JSON, no browser needed.

Chrome network tab showing the POST search request and its 200 status
The request the site makes to itself: POST /v2/search/items/geo, status 200.
The request payload showing categories, distance, coordinates and item state
The payload - exactly the filters from the UI, now something I can send on a schedule.
n8n HTTP request node configured with a POST to the search endpoint
The HTTP node - a POST to the search endpoint the app's own front end calls.
The JSON request body with coordinates, distance and category filters
The body carries the filters: coordinates, radius, and the categories worth collecting.
The request headers including the auth token, user agent, origin and referer
Headers matter as much as the body - token, user agent, origin, referer. Miss one and you get a 403.

Step 3 - Daily feed into Airtable

A scheduled n8n workflow calls the endpoint, compares against what's already stored, and appends new items to Airtable. Deduplication on the item ID so the same listing doesn't notify twice.

Step 4 - Go and get things

The haul included a chair, a raclette machine and a chocolate fondue set, which is a very specific portrait of a student in France.

An office chair collected for free, covered with an orange and red patterned throw
One of the results. Free chair, claimed within minutes of the listing going up.
A boxed six-person raclette set collected for free
A raclette set, boxed, free.
A boxed chocolate fondue set collected for free
And a chocolate fondue set. The algorithm has taste.

Over-engineered for a hobby? Absolutely. But the shape is the same shape as a lead-sourcing pipeline: find the source, replicate the request, dedupe, store, notify. If it works for free furniture it works for prospects.

Share this

← All writing