Skip to content
All work
Available for new projects
  • Zapier
  • Claude Vision API
  • Adobe Lightroom API
  • Slack API
  • JavaScript
  • XMP Metadata
  • OAuth 2.0
  • Real project

AI Photo Auto-Tagging Pipeline for US Nonprofit /Real Project

Slack photos tagged by Claude Vision and filed in Lightroom

Designed and built a fully automated photo management pipeline for Uptown Stories, a nonprofit creative writing program for youth in New York. The system monitors their Slack workspace for new photos, uses Claude Vision AI to analyze each image alongside the staff caption for context, generates accurate keywords, embeds them directly into the image metadata, and uploads the tagged photo to their Adobe Lightroom Cloud catalog — all within seconds of a photo being posted.

Timeline
2 weeks
Rating
★ 5.0
Category
AI Agents

At a glance

Problem
Uptown Stories staff post 6-10 photos per workshop session across multiple weekly sessions.
What I built
Built a multi-step Zapier automation triggered by Slack file uploads.
Tools
Zapier, Claude Vision API, Adobe Lightroom API, Slack API, JavaScript, XMP Metadata, OAuth 2.0
Result
Client rating ★ 5.0 out of 5
Loading walkthrough…

The problem

Uptown Stories staff post 6-10 photos per workshop session across multiple weekly sessions. Every photo had to be manually downloaded, tagged with workshop name, age group, activity type, and composition details, and uploaded to Lightroom. With a tag list of 17 categories and a growing library of thousands of photos, the manual overhead was unsustainable. There was also no retroactive tagging on the existing library, making search nearly impossible.

How it works

  1. 01Staff post photos in #social-media Slack channel with a caption describing the session
  2. 02Zapier trigger fires instantly on each new file uploaded to the channel
  3. 03Caption fetch step reads the message posted just before the photos for activity context
  4. 04Image is downloaded from Slack using bot token authentication
  5. 05Image and caption are sent to Claude Vision API with the full 17-tag classification prompt
  6. 06Claude returns tags (Workshop, Group, Outside, Middle School etc.) plus a descriptive filename
  7. 07Keywords are injected directly into the JPEG XMP metadata bytes before upload
  8. 08Adobe OAuth token is refreshed automatically from Zapier Storage on every run
  9. 09Asset is created in Lightroom Cloud catalog via Adobe partner REST API
  10. 10Tagged image is uploaded — keywords appear instantly in Lightroom without any manual entry
  11. 11Fallback path handles oversized images by using 1024px thumbnail for classification while uploading full resolution to Lightroom

What I built

Built a multi-step Zapier automation triggered by Slack file uploads. The pipeline fetches the staff caption posted alongside the photos for context, downloads each image using the Slack bot API, sends both image and caption to Claude Vision API for intelligent classification, injects the returned keywords directly into the JPEG XMP metadata before upload, and pushes the fully tagged photo to Adobe Lightroom Cloud via the partner REST API — with a descriptive AI-generated filename replacing the original camera filename.

Stack

  • Zapier
  • Claude Vision API
  • Adobe Lightroom API
  • Slack API
  • JavaScript
  • XMP Metadata
  • OAuth 2.0
Available for new projects

Have a process to automate?

Tell me where your team loses hours each week. I'll come back with a plan for what to automate first.