An autonomous, self-hosted machine powered by Local Multimodal AI (Qwen2.5-VL). Drop raw images into a folder → the local model analyzes the visual content → writes audited SEO metadata → and publishes them directly to Pinterest via the official v5 API. Zero cloud AI bills.
Most Pinterest automation tools charge $20 to $50/month for simple wrappers that send your images to paid cloud APIs. This project replaces that entirely with a private, high-speed, local pipeline.
Powered by Qwen2.5-VL (3B) running locally via Ollama. It reads the graphic text, colors, diagrams, and visual themes right on your GPU/CPU with zero cloud API fees.
Ollama โข qwen2.5vl:3bInstead of dumping all pins into one board, the AI dynamically compares your graphic against all 5 configured Pinterest boards and routes it to the single best board with reasoned intent.
Step 8 ClassificationPinterest strictly penalizes truncated metadata. Step 9 runs an automated rewrite loop that audits every title (≤100 chars), description (≤500 chars), and alt text (≤500 chars) before upload.
Up to 3x Rewrite Loops
Automated cron engine schedules pins for fixed high-engagement slots (17:30, 19:30, 21:30, 23:30, and 01:30 IST). Never spamming or triggering spam flags.
Images dropped in your local folder are immediately pre-processed and synced to Supabase Storage & Database queue, letting you schedule dozens of pins in advance without leaving your PC awake.
Supabase S3 & pg_cronEvery publish attempt and success is automatically appended to a 10-column Google Spreadsheet (Date, Post Name, Time, Tries, Title, Description, Alt Text, Board, Board ID, Status).
Official Google Sheets APISocial platforms like Pinterest inspect uploaded files for hidden AI generator tags, prompt parameters, Midjourney/DALL-E software markers, C2PA credentials, and EXIF camera data. Before uploading to Supabase Storage or Pinterest API, our high-speed Sharp engine automatically scrubs all EXIF, XMP, IPTC, and generator chunks โ leaving only 100% clean, native pixel data.
Sharp Pipeline โข Zero AI Tags PreservedBefore you hit run, ensure you have these 4 tools ready. Everything is 100% free or uses standard developer tiers.
The core engine is built on modern ESM Node.js using native fetch, file watchers, and Express.
Download Ollama (free local LLM runner) and pull the high-speed 3B multimodal vision model.
Register a free developer app at developers.pinterest.com to get your App ID, Secret, and Access Token for the official v5 API.
A free Supabase account for cloud storage and the pin_queue Postgres table. Lets you queue pins 24/7.
If you want live 10-column spreadsheet tracking for clients or analytics, provide your Google Spreadsheet ID and service account credentials in .env.
Setup takes less than 3 minutes. Follow these simple steps to start publishing pins automatically.
You can either clone the repo with Git or click the ZIP download button below.
git clone https://github.com/witrfaruk/Pinterest.git
cd Pinterest/code
Navigate inside the code/ folder and install the required npm libraries.
npm install
.env)Copy .env.example to .env in the code/ folder and add your credentials:
PORT=3000
PINTEREST_APP_ID=your_pinterest_app_id
PINTEREST_APP_SECRET=your_pinterest_app_secret
PINTEREST_ACCESS_TOKEN=your_token
OLLAMA_HOST=http://127.0.0.1:11434
OLLAMA_MODEL=qwen2.5vl:3b
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your_supabase_key
PUBLISH_SLOTS=17:30,19:30,21:30,23:30,01:30
boards.json)In code/backend/boards.json, paste your 5 Pinterest board IDs, names, and topics. The AI uses this to route every pin to the right place.
Launch the machine. Drop any batch of images into the Images/ folder. The auto-watcher detects them within 5 seconds and handles the entire workflow.
npm start
Open http://localhost:3000 in your browser to view your live visual dashboard!
To let Supabase Edge Functions and cron workers publish pins on schedule even when your computer is shut down, push your secrets to Supabase Cloud:
# 1. Login to Supabase CLI
npx supabase login
# 2. Link your project (find project-ref in your Supabase project URL)
npx supabase link --project-ref your_project_ref_id
# 3. Push all secrets from your .env in one single command!
npx supabase secrets set --env-file code/.env
1. Open your project on supabase.com/dashboard.
2. Go to Project Settings → Edge Functions → Secrets.
3. Click "Add new secret" and save:
PINTEREST_ACCESS_TOKEN=your_pinterest_token
PINTEREST_APP_ID=your_app_id
PINTEREST_APP_SECRET=your_app_secret
DASHBOARD_PASSWORD=your_dashboard_password