Checks a blog, job board or news feed you follow every six hours and turns each new item into a Trello card, never the same one twice.
Uses
Claude
Google Sheets
Trello
Turn new posts from a site you follow into Trello cards
feedUrl to blank.Set feedUrl to blank.trelloBoardName to blank.Set trelloBoardName to blank.trelloListName to blank.Set trelloListName to blank.logSpreadsheetUrl to blank.Set logSpreadsheetUrl to blank.logTabName to Feed log.Set logTabName to Feed log.maxCardsPerRun to 10.Set maxCardsPerRun to 10.feedText to blank.Set feedText to blank.feedReached to false.Set feedReached to false.failureNote to blank.Set failureNote to blank.fetchErrorIf a step below fails, save the error as fetchErrorTry
feedUrl and save it as response.Fetch feedUrl and save it as response.feedReached to response.ok.Change feedReached to response.ok.response.body and save it as feedText.Trim response.body and save it as feedText.On error
feedUrl with the feed address in fetchError.message and save it as failureNote.Replace feedUrl with the feed address in fetchError.message and save it as failureNote.failureNote contains :// (ignoring case)If failureNote contains :// (ignoring case)Yes
failureNote to it could not be reached.Change failureNote to it could not be reached.No
No steps
feedUrl with https:// replaced by with http:// replaced by split by / and save it as feedHost.Get the first item of feedUrl with https:// replaced by with http:// replaced by split by / and save it as feedHost.feedReached is no or feedText is emptyIf feedReached is no or feedText is emptyYes
feedHost. failureNote.Stop and report a problem: Nothing could be read from the feed at feedHost. failureNote.No
No steps
boards.List your boards. Save it as boards.trelloBoardId to blank.Set trelloBoardId to blank.board in boards.boards:For each board in boards.boards:board.name is trelloBoardNameIf board.name is trelloBoardNameYes
board.id and save it as trelloBoardId.Trim board.id and save it as trelloBoardId.No
No steps
trelloBoardId is emptyIf trelloBoardId is emptyYes
No
No steps
trelloBoardId. Save it as lists.List the lists on trelloBoardId. Save it as lists.trelloListId to blank.Set trelloListId to blank.boardList in lists.lists:For each boardList in lists.lists:boardList.name is trelloListNameIf boardList.name is trelloListNameYes
boardList.id and save it as trelloListId.Trim boardList.id and save it as trelloListId.No
No steps
trelloListId is emptyIf trelloListId is emptyYes
No
No steps
loggedLinks to an empty list.Set loggedLinks to an empty list.logReadable to false.Set logReadable to false.logErrorIf a step below fails, save the error as logErrorTry
logSpreadsheetUrl. Save it as log.Read the rows of logSpreadsheetUrl. Save it as log.logReadable to true.Change logReadable to true.logRow in log.rows:For each logRow in log.rows:logRow.Link and save it as loggedLink. Trim logRow.Link and save it as loggedLink.loggedLink isn't empty If loggedLink isn't emptyYes
loggedLink to the end of loggedLinks and save it as loggedLinks.Add loggedLink to the end of loggedLinks and save it as loggedLinks.No
No steps
On error
The log tab could not be read, so no cards were made this run..Show in the output: The log tab could not be read, so no cards were made this run..logReadable is noIf logReadable is noYes
No
No steps
prompt to The text below is the raw source of a feed. List the newest items in it, one per line, as: title ||| linkSet prompt to The text below is the raw source of a feed. List the newest items in it, one per line, as: title ||| link
Copy the title and the link exactly as they appear in the text. Do not invent, complete, tidy or translate either of them, and do not add items that are not in the text. If the text holds no items at all, reply with the single word NONE.
Feed source:
feedText truncated to 6000 characters.answerText to blank.Set answerText to blank.readItemsErrorIf a step below fails, save the error as readItemsErrorTry
answerText.Trim the response text from the Claude “Ask Claude” step and save it as answerText.On error
The step that lists the feed's items did not answer this run..Show in the output: The step that lists the feed's items did not answer this run..answerText is emptyIf answerText is emptyYes
feedHost did not answer this run, so no cards were made.Stop and report a problem: The step that lists the items in the feed at feedHost did not answer this run, so no cards were made.No
No steps
cardsCreated to 0.Set cardsCreated to 0.itemsRejected to 0.Set itemsRejected to 0.answerLine in answerText split by a new line:For each answerLine in answerText split by a new line:answerLine and save it as entry.Trim answerLine and save it as entry.entry is emptyIf entry is emptyYes
No
No steps
cardsCreated is greater than or equal to maxCardsPerRun multiplied by 1If cardsCreated is greater than or equal to maxCardsPerRun multiplied by 1Yes
No
No steps
entry by ||| and save it as parts.Split entry by ||| and save it as parts.parts is less than 2If the length of parts is less than 2Yes
No
No steps
parts and save it as itemTitle.Trim the first item of parts and save it as itemTitle.parts and save it as itemLink.Trim the last item of parts and save it as itemLink.itemTitle is empty or itemLink is emptyIf itemTitle is empty or itemLink is emptyYes
No
No steps
itemLink doesn't start with http (ignoring case)If itemLink doesn't start with http (ignoring case)Yes
itemsRejected.Add 1 to itemsRejected.No
No steps
feedText doesn't contain itemTitle (ignoring case) or feedText doesn't…If feedText doesn't contain itemTitle (ignoring case) or feedText doesn't…Yes
itemsRejected.Add 1 to itemsRejected.No
No steps
loggedLinks contains itemLinkIf loggedLinks contains itemLinkYes
No
No steps
trelloListId. Save it as createdCard.Add the card '@itemTitle truncated to 240 characters' to trelloListId. Save it as createdCard.From the feed you follow.
itemLinkcreatedCard.card.url and save it as cardUrl.Trim createdCard.card.url and save it as cardUrl.logTabName in logSpreadsheetUrl.Add a row to logTabName in logSpreadsheetUrl.itemLink to the end of loggedLinks and save it as loggedLinks.Add itemLink to the end of loggedLinks and save it as loggedLinks.cardsCreated.Add 1 to cardsCreated.cardsCreated card(s). itemsRejected suggested item(s) were dropped because they were not in the feed word for word.Show in the output: Made cardsCreated card(s). itemsRejected suggested item(s) were dropped because they were not in the feed word for word.