Rodrigo Junqueiro - AI Automation | Contra
Work by Rodrigo Junqueiro
Sign Up
Post a job
Sign Up
Log In
pro
Rodrigo Junqueiro
Backend & full-stack dev: APIs, automation, AI integration
Message
Follow
New to Contra
Rodrigo is ready for their next project!
Lisbon, Portugal
Work
About
Lisbon, Portugal
0
Uptime + SSL Monitor What it is A small monitoring service that pings a list of URLs on a schedule, keeps a rolling history of the results, and watches each site's TLS certificate expiry — posting a Discord alert when something goes down, comes back up, or a certificate is about to expire. Components & how it works Scheduler — an in-process scheduler gives each monitor its own interval timer at whatever check frequency you set, no cron syntax required for "every N minutes." Checks — two independent signals per check: an HTTP request (status code, response time, 10-second timeout) via fetch, and — for HTTPS targets — a raw TLS handshake (node:tls) that reads the certificate's expiry date directly, so certificate expiry is still caught even if the app behind it is down. Alerting — a Discord webhook integration that fires only on a state change (healthy → down, down → healthy, or crossing the certificate-expiry warning threshold), rather than on every single check, so it never spams the channel. Storage — a JSON file capped at the last 200 checks per monitor; no database needed at this scale. Frontend — a React dashboard polling the API to reflect checks the scheduler ran in the background, with per-monitor status, uptime %, response time, and a color-coded certificate countdown.
0
6
0
Job Fit Tracker What it is A Kanban board for job applications (Wishlist → Applied → Interview → Offer, with Rejected off to the side) that scores how well a posting actually fits you: paste the job description, and Claude reads it against your own profile to return a fit score, concrete strengths and gaps, and the specific points to lead with in a cover letter. Components & how it works Frontend — React (Vite), with cards dragged between columns using native HTML5 drag-and-drop events — no extra library. Backend — a small Express API storing applications and your profile in a JSON file; enough for one person's job search, with no database to stand up or maintain. Fit scoring — POST /api/applications/:id/score sends your profile text plus the job description to the Anthropic Messages API and asks for a structured JSON verdict (score, strengths, gaps, talking points), which gets saved onto the application record. Data model — each application tracks company, role, job description, status, applied date, notes, and its most recent fit-score result, so the AI's reasoning stays attached to the card, not just a one-off popup.
0
10
1
Flowfolio What it is A Notion template for freelancers who bill through Stripe: two linked databases (Clients, Deals) with Kanban, Calendar, and List views, kept in sync automatically — when a client pays, the deal card moves itself to "Paid" instead of you dragging it by hand. Components & how it works The product itself lives in Notion — no separate app to log into. Deals has a Status select (Proposal → Sent → Paid / Failed / Refunded), a relation to Clients, and date/amount properties; the same data drives all three views (Board grouped by status, Calendar keyed on payment date, List sorted by value) for free, since they're just different lenses on one database. The relay — a single Next.js API route (/api/stripe-webhook) deployed as a Vercel serverless function, on the buyer's own free Vercel account. Event handling — Stripe's SDK (stripe.webhooks.constructEvent) verifies each request's signature before anything else runs (anything unsigned gets a 401); a small dispatcher routes four event types — checkout.session.completed, invoice.paid, invoice.payment_failed, charge.refunded — to their own handler. Notion API (@notionhq/client) — each handler looks up the matching Deal page by its stored Stripe Invoice ID and updates its Status and Payment Date properties directly. Idempotency — an in-memory set of processed Stripe event IDs prevents a re-delivered webhook (Stripe retries if it doesn't get a fast 200) from double-updating the same deal. No database of its own — the relay is stateless glue between Stripe and Notion; it runs entirely inside the buyer's own Stripe, Notion, and Vercel accounts, so no third party (including the seller) ever touches their payment data.
1
28
1
Congress Trading Monitor What it is A dashboard that tracks every stock trade disclosed by members of the U.S. Congress and senior executive-branch officials, cross-references it against real market prices, and runs two autonomous, AI-driven paper-trading engines that act on those signals — one on Trading 212 (stocks), one on Capital.com (http://Capital.com) (leveraged CFDs on metals, oil, FX, and Nasdaq 100). Components & how it works Frontend — React (Vite) SPA styled with Tailwind CSS on top of a re-skinned GOV.UK (http://GOV.UK) Frontend component set (tables, tags, summary lists, breadcrumbs) for dense financial data; a custom "kit" library adds the buttons, nav bar, and data tables. Dark "terminal" theme by default, with a light mode toggle driven entirely by CSS custom properties. Data pipeline — server-side scrapers (houseScraper.js, senateScraper.js) pull disclosures directly from the Clerk of the House, the Office of Government Ethics, and the Senate's eFD system, normalize them, and pre-render static per-filer and per-ticker JSON that the SPA fetches on demand. Market data — Yahoo Finance and Financial Modeling Prep feed live prices, used to compute each disclosed trade's return and excess return vs. SPY from trade date to today. AI decision layer — a thin proxy (server/ai.js) forwards prompts to the Anthropic Messages API; the model reasons over each disclosure plus live chart data to produce BUY/SELL/HOLD decisions with written rationale, which a human can review before (or instead of) letting the engine execute automatically. Trading engines — two independent, mutually-exclusive loops (autoTradeLoop.js for Trading 212 stocks, capitalcomTradeLoop.js for Capital.com (http://Capital.com) CFDs), each with its own risk sizing, stop-loss/take-profit tiers, trailing stops, and daily/weekly circuit breakers; both trade on demo/paper accounts only. Everything else — a command palette (⌘K) for fast navigation, a follow/watchlist system for specific filers or tickers, and a chat page that lets you ask the AI questions directly over the underlying dataset.
1
31